use anyhow::Result; pub struct Database { pub keys: sled::Tree, pub messages: sled::Tree, pub groups: sled::Tree, pub aliases: sled::Tree, pub tokens: sled::Tree, pub calls: sled::Tree, pub missed_calls: sled::Tree, pub friends: sled::Tree, pub eth_addresses: sled::Tree, _db: sled::Db, } impl Database { pub fn open(data_dir: &str) -> Result { let db = sled::open(data_dir)?; let keys = db.open_tree("keys")?; let messages = db.open_tree("messages")?; let groups = db.open_tree("groups")?; let aliases = db.open_tree("aliases")?; let tokens = db.open_tree("tokens")?; let calls = db.open_tree("calls")?; let missed_calls = db.open_tree("missed_calls")?; let friends = db.open_tree("friends")?; let eth_addresses = db.open_tree("eth_addresses")?; Ok(Database { keys, messages, groups, aliases, tokens, calls, missed_calls, friends, eth_addresses, _db: db, }) } }