Initial commit

This commit is contained in:
2026-05-15 21:42:15 -07:00
commit ba35808572
8 changed files with 965 additions and 0 deletions
+37
View File
@@ -0,0 +1,37 @@
use serde::{Deserialize,Serialize};
use crate::{User,Group,Role};
#[derive(Serialize,Deserialize,Clone,Debug)]
pub enum StateValue {
String(String),
Binary(Vec<u8>)
}
#[derive(Serialize,Deserialize,Debug,Clone)]
pub enum StateType {
Directory,
String,
Binary
}
#[derive(Serialize,Deserialize,Clone,Hash,Eq,PartialEq,Debug)]
pub enum StatePermissionKey {
User(User),
Group(Group),
Role(Group,Role),
//This is a string for now but could get compiled later into an actual regex
//should be able to match on name and server
UserRegex(String)
}
#[derive(Serialize,Deserialize,Clone,Debug)]
pub enum StatePermissionValue {
None,
Read,
ReadWrite,
// Can only set value, does not allow appending
Write
}
#[derive(Serialize,Deserialize,Clone,Debug)]
pub struct StatePermission(StatePermissionKey,StatePermissionValue);
#[derive(Serialize,Deserialize,Clone,Debug)]
pub struct StatePath(Vec<String>);