diff options
Diffstat (limited to 'common/src/user.rs')
-rw-r--r-- | common/src/user.rs | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/common/src/user.rs b/common/src/user.rs index 5f012dd..b3360c2 100644 --- a/common/src/user.rs +++ b/common/src/user.rs @@ -4,6 +4,7 @@ Copyright (C) 2023 metamuffin <metamuffin.org> */ use crate::{stream::StreamFormat, user}; +use bincode::{Decode, Encode}; #[cfg(feature = "rocket")] use rocket::{FromFormField, UriDisplayQuery}; use serde::{Deserialize, Serialize}; @@ -12,7 +13,7 @@ use std::{ fmt::Display, }; -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Debug, Clone, Serialize, Deserialize, Encode, Decode)] pub struct User { pub name: String, pub display_name: String, @@ -22,12 +23,12 @@ pub struct User { pub permissions: PermissionSet, } -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Debug, Clone, Serialize, Deserialize, Encode, Decode)] pub struct NodeUserData { pub watched: WatchedState, } -#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Encode, Decode)] #[serde(rename_all = "snake_case")] pub enum WatchedState { None, @@ -44,7 +45,7 @@ pub struct CreateSessionParams { pub drop_permissions: Option<HashSet<UserPermission>>, } -#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq)] +#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Encode, Decode)] #[cfg_attr(feature = "rocket", derive(FromFormField, UriDisplayQuery))] #[serde(rename_all = "snake_case")] pub enum Theme { @@ -61,10 +62,10 @@ impl Theme { ]; } -#[derive(Debug, Clone, Serialize, Deserialize, Default)] +#[derive(Debug, Clone, Serialize, Deserialize, Default, Encode, Decode)] pub struct PermissionSet(pub HashMap<UserPermission, bool>); -#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Hash)] +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Hash, Encode, Decode)] #[serde(rename_all = "snake_case")] pub enum UserPermission { Admin, |