From b689ab47f2260345a03130a2a2e8d9dda0ca25ef Mon Sep 17 00:00:00 2001 From: Andrew Guschin Date: Mon, 26 Sep 2022 03:59:12 +0400 Subject: =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0?= =?UTF-8?q?=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=BD=D0=B5=D0=BA=D0=BE=D1=80=D1=80=D0=B5=D0=BA=D1=82=D0=BD?= =?UTF-8?q?=D0=BE=D0=B3=D0=BE=20=D0=B2=D0=B2=D0=BE=D0=B4=D0=B0=20=D0=B2=20?= =?UTF-8?q?=D1=82=D1=80=D0=B5=D1=82=D1=8C=D0=B5=D0=B9=20=D0=BB=D0=B0=D0=B1?= =?UTF-8?q?=D0=BE=D1=80=D0=B0=D1=82=D0=BE=D1=80=D0=BD=D0=BE=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lab3.rs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'src/lab3.rs') diff --git a/src/lab3.rs b/src/lab3.rs index b4adbf3..7f8edf5 100644 --- a/src/lab3.rs +++ b/src/lab3.rs @@ -4,7 +4,8 @@ use rug::{Complete, Integer}; enum State { Clean, - Done + Done, + Error, } pub struct Window { @@ -36,9 +37,14 @@ impl Lab for Window { } }); if ui.button("Разложить на множители").clicked() { - let number = Integer::parse(&self.str_num).unwrap().complete(); - self.factors.append(&mut factorize(&number)); - self.state = State::Done; + self.factors.clear(); + match Integer::parse(&self.str_num) { + Ok(number) => { + self.factors.append(&mut factorize(&number.complete())); + self.state = State::Done; + }, + Err(_) => self.state = State::Error, + }; } if let State::Done = self.state { if self.factors.len() == 1 { @@ -48,6 +54,9 @@ impl Lab for Window { ui.label(format!("Множители: {:?}", self.factors)); } } + if let State::Error = self.state { + ui.label("В числе имеются недопустимые символы"); + } } } -- cgit v1.2.3