Sessions

Sessions provides memory and filesystem sessions and infrastructure for custom session backends.


Crates.io version Download docs.rs docs

Features

Examples

```rust let store = Arc::new(CustomStore::new());

let id = format!("id.{}", 0); // Generates an UID let store = store.clone(); let session = store.get(&id).await.unwrap(); // Fresh Session

session.id().unwrap(); // "" session.status().unwrap(); // SessionStatus::Created session.state().unwrap(); // State

session.set::("counter", 0).unwrap(); // None session.set("number", 233).unwrap(); // None session.get::("counter").unwrap(); // Some(0) session.get::("number").unwrap(); // Some(233)

session.save().await; // Ok(())

let session = store.get(&id).await.unwrap(); // Matches Session

session.id().unwrap(); // "id.len() == 32" session.status().unwrap(); // SessionStatus::Existed

session.remove::("counter").unwrap(); // Some(0) session.remove::("number").unwrap(); // Some(233)

[derive(Debug, Serialize, Deserialize, PartialEq)]

struct User { name: String, no: u32, }

session.remove::("user").is_ok(); // true

session.set("user", User { name: "Yao Ming", no: 11, }).unwrap(); // None

session.get::("user").unwrap(); // Option

session.destroy().await; // Ok(())

session.status().unwrap(); // SessionStatus::Destroyed // or

store.remove(&id).await; // Ok(()) ```

Stores

License

This project is licensed under either of

at your option.