workflow_egui/frame/
options.rs1use crate::imports::*;
2
3pub struct Options<T> {
4 pub caption: String,
5 pub canvas_id: String,
6 pub modules: Option<Vec<Module<T>>>,
7 pub default_module: Option<TypeId>,
8
9 #[cfg(not(target_arch = "wasm32"))]
10 pub native_options: eframe::NativeOptions,
11 #[cfg(target_arch = "wasm32")]
12 pub web_options: eframe::WebOptions,
13}
14
15impl<T> Options<T>
16where
17 T: App,
18{
19 pub fn new(caption: String, canvas_id: String) -> Self {
20 Options {
21 caption,
22 canvas_id,
23 modules: None,
24 default_module: None,
25 #[cfg(not(target_arch = "wasm32"))]
26 native_options: Default::default(),
27 #[cfg(target_arch = "wasm32")]
28 web_options: Default::default(), }
30 }
31
32 #[cfg(not(target_arch = "wasm32"))]
33 pub fn with_native_options(mut self, native_options: eframe::NativeOptions) -> Self {
34 self.native_options = native_options;
35 self
36 }
37
38 #[cfg(target_arch = "wasm32")]
39 pub fn with_web_options(mut self, web_options: eframe::WebOptions) -> Self {
40 self.web_options = web_options;
41 self
42 }
43
44 pub fn with_modules(mut self, default_module: TypeId, modules: Vec<Module<T>>) -> Self {
45 self.default_module = Some(default_module);
46 self.modules = Some(modules);
47 self
48 }
49}