From de98bfc28feebfe112a378017c73d0e20dfb2937 Mon Sep 17 00:00:00 2001 From: Arnaud Bailly Date: Mon, 23 Sep 2024 14:36:15 +0200 Subject: Scaffolding of main, library, and tests --- rust/src/lambda.rs | 40 ++++++++++++++++++++++++++++++++++++++++ rust/src/main.rs | 24 +++++------------------- 2 files changed, 45 insertions(+), 19 deletions(-) create mode 100644 rust/src/lambda.rs (limited to 'rust/src') diff --git a/rust/src/lambda.rs b/rust/src/lambda.rs new file mode 100644 index 0000000..a24b031 --- /dev/null +++ b/rust/src/lambda.rs @@ -0,0 +1,40 @@ +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); + } +} diff --git a/rust/src/main.rs b/rust/src/main.rs index e18788e..b6cc9bf 100644 --- a/rust/src/main.rs +++ b/rust/src/main.rs @@ -1,23 +1,9 @@ -fn main() { - println!("Hello, world!"); -} - -#[derive(Debug, PartialEq)] -pub enum Value { - Num(i32), -} +use std::env::args; -pub fn interpret(arg: &str) -> Value { - Value::Num(1) -} +use lambda::run; -#[cfg(test)] -mod tests { - use crate::{interpret, Value::Num}; +mod lambda; - #[test] - fn it_works() { - let result = interpret("1"); - assert_eq!(Num(1), result); - } +fn main() { + run(&args().nth(1).unwrap()); } -- cgit v1.2.3