From 5d65aa5b4282551e6d2a19f5255ba5da84a03fb0 Mon Sep 17 00:00:00 2001 From: bel Date: Wed, 22 Mar 2023 23:56:24 -0600 Subject: [PATCH] baby steps --- .gitignore | 7 +++++++ src/.engine.rs.swp | Bin 24576 -> 0 bytes src/.main.rs.swp | Bin 0 -> 12288 bytes src/engine.rs | 20 ++++++++++---------- src/gui.rs | 2 +- src/main.rs | 4 +--- 6 files changed, 19 insertions(+), 14 deletions(-) delete mode 100644 src/.engine.rs.swp create mode 100644 src/.main.rs.swp diff --git a/.gitignore b/.gitignore index ea8c4bf..a5ff07f 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,8 @@ /target + + +# Added by cargo +# +# already existing elements were commented out + +#/target diff --git a/src/.engine.rs.swp b/src/.engine.rs.swp deleted file mode 100644 index ec956c91a49c855ee723b14b93898aab6ebe0065..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24576 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 literal 0 HcmV?d00001 diff --git a/src/engine.rs b/src/engine.rs index ab92677..a854edf 100644 --- a/src/engine.rs +++ b/src/engine.rs @@ -8,20 +8,20 @@ pub trait InputEngine { fn get(&mut self) -> Vec; } -pub fn build_input_engine(cfg: &Engine) -> impl InputEngine { +pub fn build_input_engine(cfg: &Engine) -> Box { match cfg.name.as_str() { "stdin" => { - return InputEngineStdin{}; + return Box::new(InputEngineStdin{}); }, "kafka" => { - return build_input_engine_kafka(&cfg).unwrap(); + return Box::new(build_input_engine_kafka(&cfg).unwrap()); }, - "udp" => return build_input_engine_udp(&cfg).unwrap(), - "device" => return build_input_engine_device(&cfg).unwrap(), + "udp" => return Box::new(build_input_engine_udp(&cfg).unwrap()), + "device" => return Box::new(build_input_engine_device(&cfg).unwrap()), _ => {}, }; assert!(false); - InputEngineStdin{} + Box::new(InputEngineStdin{}) } struct InputEngineDevice { @@ -191,14 +191,14 @@ pub trait OutputEngine { fn put(&mut self, v: Vec); } -pub fn build_output_engine(cfg: &Engine) -> impl OutputEngine { +pub fn build_output_engine(cfg: &Engine) -> Box { if cfg.name.as_str() == "stdout" { - return OutputEngineStdout{}; + return Box::new(OutputEngineStdout{}); } else if cfg.name.as_str() == "udp" { - return build_output_engine_udp(&cfg).unwrap(); + return Box::new(build_output_engine_udp(&cfg).unwrap()); } assert!(false); - OutputEngineStdout{} + Box::new(OutputEngineStdout{}) } struct OutputEngineStdout {} diff --git a/src/gui.rs b/src/gui.rs index 2c4241a..5669825 100644 --- a/src/gui.rs +++ b/src/gui.rs @@ -7,7 +7,7 @@ use iced::{Alignment, Element, Application, Settings, Subscription, Theme, Comma use crate::engine::OutputEngine; -pub fn main(outputEngine: &impl OutputEngine) -> iced::Result { +pub fn main(outputEngine: &(impl OutputEngine + ?Sized)) -> iced::Result { let settings = Settings{ flags: Flags { //outputEngine: outputEngine, diff --git a/src/main.rs b/src/main.rs index 2d25dc0..3237d89 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,13 +2,11 @@ mod config; mod engine; mod gui; -use crate::engine::{InputEngine, OutputEngine}; - fn main() { let cfg = config::build_config().unwrap(); if cfg.streams.input.engine.name == "gui" { let mut output_engine = engine::build_output_engine(&cfg.streams.output.engine); - gui::main(&output_engine).unwrap(); + gui::main(&*output_engine).unwrap(); } else { main_cli(cfg); }