modelassetlib_native/util/
error_message.rs1use std::cell::RefCell;
2
3struct Bool {
4 value: bool
5}
6
7pub struct ErrorMessage {
8 occurred: RefCell<Bool>,
9 content: RefCell<String>
10}
11
12impl Bool {
13 fn new(value: bool) -> Self {
14 Self { value }
15 }
16
17 fn set(&mut self, value: bool) {
18 self.value = value;
19 }
20
21 fn get(&self) -> bool {
22 self.value
23 }
24}
25
26impl ErrorMessage {
27 pub fn new() -> Self {
28 Self {
29 occurred: RefCell::new(Bool::new(false)),
30 content: RefCell::new(String::new())
31 }
32 }
33
34 pub fn with_initial(value: &str) -> Self {
35 Self {
36 occurred: RefCell::new(Bool::new(false)),
37 content: RefCell::new(String::from(value))
38 }
39 }
40
41 pub fn mark_occurred(&self) {
42 self.occurred.borrow_mut().set(true);
43 }
44
45 pub fn is_occurred(&self) -> bool {
46 self.occurred.borrow().get()
47 }
48
49 pub fn clear_mark(&self) {
50 self.occurred.borrow_mut().set(false);
51 }
52
53 pub fn get(&self) -> String {
54 self.content.borrow().clone()
55 }
56
57 pub fn set(&self, value: &str) {
58 let mut str = self.content.borrow_mut();
59 str.clear();
60 value.chars().for_each(|c| {
61 str.push(c);
62 })
63 }
64}