aurora 0.0.5

A lightweight and extensible data storage library in Rust.
Documentation
use aurora::{InMemoryStorage, Storage};

fn main() {
    let mut storage = InMemoryStorage::<String, String>::create();

    println!("1. Inserting data...");
    storage.insert("user:1".to_string(), "Alice".to_string());
    storage.insert("user:2".to_string(), "Bob".to_string());
    storage.insert("user:3".to_string(), "Charlie".to_string());

    println!("2. Reading data...");
    if let Some(name) = storage.get(&"user:1".to_string()) {
        println!("   Found user:1 = {}", name);
    }
    println!();

    println!("3. Checking if key exists...");
    println!("   user:2 exists? {}", storage.contains_key(&"user:2".to_string()));
    println!("   user:99 exists? {}", storage.contains_key(&"user:99".to_string()));
    println!();

    println!("4. Getting all keys...");

    let keys = storage.keys();
    println!("   Total keys: {}", keys.len());
    for key in keys {
        println!("   - {}", key);
    }
    println!();

    println!("5. Updating data...");
    storage.insert("user:1".to_string(), "Alice Smith".to_string());
    if let Some(name) = storage.get(&"user:1".to_string()) {
        println!("   Updated user:1 = {}", name);
    }
    println!();

    println!("6. Removing data...");
    if let Some(removed) = storage.remove(&"user:2".to_string()) {
        println!("   Removed: {}", removed);
    }
    println!("   Remaining entries: {}", storage.len());
    println!();

    println!("7. Clearing all data...");
    storage.clear();
    
    println!("   Storage is empty: {}", storage.is_empty());
}