use std::{ fmt::{self, Display}, fs::read_to_string, }; pub fn run(arg: &str) -> String { let content = read_to_string(arg).unwrap(); let result = interpret(&content.to_string()); result.to_string() } #[derive(Debug, PartialEq)] pub enum Value { Num(i32), } impl Display for Value { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { Value::Num(i) => write!(f, "{}", i), } } } fn interpret(_arg: &str) -> Value { Value::Num(1) } #[cfg(test)] mod tests { use super::interpret; use super::Value::Num; #[test] fn it_works() { let result = interpret("1"); assert_eq!(Num(1), result); } }