diff --git a/src/main.rs b/src/main.rs index bf9e546585553f76f1a12a762bb5a9100817625f..e369139a370fcd25ef65c360f4d928734fb098e5 100644 --- a/src/main.rs +++ b/src/main.rs @@ -50,7 +50,10 @@ fn main() { let s = Sec::new(1); // s.level = 3; u1.user1(&s); - u2.user2(&s, &mut u1); + u2.user2(&s, &mut u1); // try without key set + u2.enter(&s, "abc"); // + u2.user2(&s, &mut u1); // try with key set + u2.user2(&s, &mut u1); // try with key set }; } @@ -108,16 +111,25 @@ mod u2 { key: &'static str, } - - impl State { pub const fn new() -> Self { - State { key: &*"---" } + State { key: "---" } } + pub fn user2(&mut self, sec: &Sec, u1: &mut u1::State) { println!("user2, level = {}", sec.level()); - let s = auth("abc"); + let s = auth(self.key); println!("user2, data = {:?}", u1.get_data(sec, &s)); } + + pub fn enter(&mut self, sec: &Sec, k: &str) { + println!("enter, level = {}", sec.level()); + self.key = "abc"; + } + + pub fn expire(&mut self, sec: &Sec) { + println!("enter, level = {}", sec.level()); + self.key = "---"; + } } }