use std::sync::Arc;
use serde::{Deserialize, Serialize};
use uuid::Uuid;
use crate::crypto::DerivedKey;
#[derive(Clone, Serialize, Deserialize)]
#[non_exhaustive]
pub enum Control {
Settings(Settings),
Namespaces(Namespaces),
}
#[derive(Debug, Hash, Clone, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize)]
pub struct Settings {
pub compression: Option<i32>,
pub max_cache_entries: Option<usize>,
}
#[derive(Clone, Serialize, Deserialize)]
pub struct Namespaces {
pub namespaces: Vec<Namespace>,
}
#[derive(Hash, Clone, Serialize, Deserialize)]
pub struct Namespace {
pub name: String,
pub key: Arc<DerivedKey>,
pub uuid: Uuid,
}