From 59620922f1ce88e9f243ea13c5589428436ea37b Mon Sep 17 00:00:00 2001
From: Per <Per Lindgren>
Date: Sat, 30 Sep 2017 00:31:36 +0200
Subject: [PATCH] Initial commit

---
 src/main.rs | 22 +++++++++++++++++-----
 1 file changed, 17 insertions(+), 5 deletions(-)

diff --git a/src/main.rs b/src/main.rs
index bf9e546..e369139 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 = "---";
+        }
     }
 }
-- 
GitLab