diff options
Diffstat (limited to 'labs/src/lab6.rs')
| -rw-r--r-- | labs/src/lab6.rs | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/labs/src/lab6.rs b/labs/src/lab6.rs index 9061da7..a2d64bc 100644 --- a/labs/src/lab6.rs +++ b/labs/src/lab6.rs @@ -1,7 +1,7 @@ use crate::lab_trait::Lab; use eframe::egui; -use std::collections::HashSet; use std::collections::HashMap; +use std::collections::HashSet; enum State<'a> { Clean, @@ -31,19 +31,27 @@ impl<'a> Default for Window<'a> { } impl<'a> Lab for Window<'a> { - fn get_name(&self) -> &str { "Задача №6" } + fn get_name(&self) -> &str { + "Задача №6" + } fn update(&mut self, ui: &mut egui::Ui) { ui.horizontal(|ui| { ui.label("Порядок группы Z_n: "); - if ui.add(egui::DragValue::new(&mut self.n).clamp_range(2..=u32::MAX)).changed() { + if ui + .add(egui::DragValue::new(&mut self.n).clamp_range(2..=u32::MAX)) + .changed() + { self.state = State::Clean; self.subgroup.clear(); } }); ui.horizontal(|ui| { ui.label("Порядок q подгруппы: "); - if ui.add(egui::DragValue::new(&mut self.q).clamp_range(1..=self.n)).changed() { + if ui + .add(egui::DragValue::new(&mut self.q).clamp_range(1..=self.n)) + .changed() + { self.state = State::Clean; self.subgroup.clear(); } @@ -52,8 +60,7 @@ impl<'a> Lab for Window<'a> { self.subgroups.clear(); if self.n % self.q != 0 { self.state = State::Error("q не является делителем n"); - } - else { + } else { self.subgroups = calculate_subgroups(self.n); for (_, sg) in &self.subgroups { if sg.len() == self.q as usize { @@ -68,23 +75,24 @@ impl<'a> Lab for Window<'a> { self.subgroups.clear(); if self.n % self.q != 0 { self.state = State::Error("q не является делителем n"); - } - else { + } else { self.subgroups = calculate_subgroups(self.n); self.state = State::Done2; } } match self.state { - State::Clean => {}, + State::Clean => {} State::Done1 => { ui.label(format!("Вычисленная подгруппа: {:?}", self.subgroup)); - }, + } State::Done2 => { for (gen, set) in self.subgroups.iter() { ui.label(format!("Подгруппа {:?} с генератором {}", set, gen)); } - }, - State::Error(msg) => { ui.label(msg); }, + } + State::Error(msg) => { + ui.label(msg); + } } } } |