use serde::{Deserialize, Serialize}; use std::collections::BTreeMap; #[derive(thiserror::Error, Clone, Debug)] pub enum Error { #[error("user {0} not found in any group")] UserNotFound(String), } #[derive(Clone, Debug, Deserialize, Serialize, Eq, PartialEq)] pub struct Acl { pub acls: Vec, pub groups: BTreeMap>, #[serde(rename = "tagowners")] pub tag_owners: BTreeMap>, pub hosts: BTreeMap, pub tests: Vec, } #[derive(Clone, Debug, Deserialize, Serialize, Eq, PartialEq)] pub struct Rule { pub action: String, pub users: Vec, pub ports: Vec, } #[derive(Clone, Debug, Deserialize, Serialize, Eq, PartialEq)] pub struct Test { pub users: Vec, pub allow: Option>, pub deny: Option>, }