From 877ec04cbed5da97659fb82cba95808dc2f890fe Mon Sep 17 00:00:00 2001 From: Bel LaPointe Date: Thu, 16 Mar 2023 15:00:37 -0600 Subject: [PATCH] more test learn that borrowing means free trait gets --- src/engine.rs | 33 +++++++++++++++++++++++++++++++++ src/main.rs | 1 + 2 files changed, 34 insertions(+) create mode 100644 src/engine.rs diff --git a/src/engine.rs b/src/engine.rs new file mode 100644 index 0000000..9b27d78 --- /dev/null +++ b/src/engine.rs @@ -0,0 +1,33 @@ +pub trait InputEngine { + fn get(&self) -> String; +} + +struct InputEngineStdin {} + +impl InputEngine for InputEngineStdin { + fn get(&self) -> String { + return "hello world".to_string(); + } +} + +#[cfg(test)] +mod test { + use super::*; + + struct InputEngineTest {} + impl InputEngine for InputEngineTest { + fn get(&self) -> String { + return "hello world".to_string(); + } + } + + #[test] + fn test_input_engine_impl() { + let input_engine_test = InputEngineTest{}; + _test_input_engine_impl(&input_engine_test); + } + + fn _test_input_engine_impl(engine: &dyn InputEngine) { + assert_eq!("hello world".to_string(), engine.get()); + } +} diff --git a/src/main.rs b/src/main.rs index 1d8a9b5..64f10b4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,5 @@ pub mod config; +pub mod engine; fn main() { let cfg = config::build_config();