Browse Source

lazy mutex

Johann Woelper 7 years ago
parent
commit
01ee589b05
4 changed files with 25 additions and 7 deletions
  1. 1 0
      .gitignore
  2. 1 0
      Cargo.lock
  3. 2 1
      Cargo.toml
  4. 21 6
      src/main.rs

+ 1 - 0
.gitignore

@@ -14,3 +14,4 @@
 
 /target
 **/*.rs.bk
+.history

+ 1 - 0
Cargo.lock

@@ -206,6 +206,7 @@ dependencies = [
 name = "objectstore"
 version = "0.1.0"
 dependencies = [
+ "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "rocket 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
  "rocket_codegen 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
 ]

+ 2 - 1
Cargo.toml

@@ -5,4 +5,5 @@ authors = ["Johann Woelper <woelper@gmail.com>"]
 
 [dependencies]
 rocket = "*"
-rocket_codegen = "*"
+rocket_codegen = "*"
+lazy_static = "1.1.0"

+ 21 - 6
src/main.rs

@@ -3,17 +3,32 @@
 
 #[macro_use] extern crate rocket;
 
+#[macro_use]
+extern crate lazy_static;
+
+use std::sync::Mutex;
+
+lazy_static! {
+    static ref OBJECT: Mutex<String> = Mutex::new(String::from("{default}"));
+}
+
+
 #[get("/")]
 fn get() -> String {
-    format!("Hello")
+    format!("{:?}", *OBJECT.lock().unwrap())
 }
 
-#[post("/", data = "<var>")]
-fn set(var: String) {
-    println!("{:?}", var);
+
+#[get("/<obj>")]
+fn set(obj: String) {
+    println!("{:?}", obj);
+    let mut data = OBJECT.lock().unwrap();
+    *data = obj;
 }
 
 fn main() {
-    rocket::ignite().mount("/set", routes![set]);
-    rocket::ignite().mount("/get", routes![get]).launch();
+    rocket::ignite()
+    .mount("/set", routes![set])
+    .mount("/get", routes![get])
+    .launch();
 }