modelassetlib_native/util/
error_message.rs

1use 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}