summaryrefslogtreecommitdiff
path: root/labs/src/main.rs
diff options
context:
space:
mode:
authorAndrew Guschin <guschin.drew@gmail.com>2022-11-13 11:40:34 +0400
committerAndrew Guschin <guschin.drew@gmail.com>2022-11-13 11:40:34 +0400
commit9bbc7b8c31458fbf8c639794531e3d324004d8d5 (patch)
tree7d6128c58518c78da03652e9f4e974e6de5a927f /labs/src/main.rs
parent14fefa99fae1433de08812558c07a0f81c40ab04 (diff)
Реализации лабораторных перенесены во отдельную папку
Diffstat (limited to 'labs/src/main.rs')
-rw-r--r--labs/src/main.rs42
1 files changed, 42 insertions, 0 deletions
diff --git a/labs/src/main.rs b/labs/src/main.rs
new file mode 100644
index 0000000..f672971
--- /dev/null
+++ b/labs/src/main.rs
@@ -0,0 +1,42 @@
+mod lab1;
+mod lab3;
+mod lab6;
+mod lab7;
+mod lab_trait;
+
+use eframe::egui;
+use lab_trait::Lab;
+
+fn main() {
+ let options = eframe::NativeOptions::default();
+ eframe::run_native(
+ "Криптографические методы защиты информации",
+ options,
+ Box::new(|_cc| Box::new(Application::default())),
+ );
+}
+
+struct Application {
+ labs: Vec<Box<dyn Lab>>,
+}
+
+impl Default for Application {
+ fn default() -> Self {
+ Self {
+ labs: vec![
+ Box::new(lab1::Window::default()),
+ Box::new(lab3::Window::default()),
+ Box::new(lab6::Window::default()),
+ Box::new(lab7::Window::default()),
+ ],
+ }
+ }
+}
+
+impl eframe::App for Application {
+ fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) {
+ for window in &mut self.labs {
+ egui::Window::new(window.get_name()).show(ctx, |ui| window.update(ui));
+ }
+ }
+}