From 46c251655db7bb3d9aa814b1a5dde85336b0b9b1 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sat, 20 Jan 2024 00:50:20 +0100 Subject: replace sled with redb --- common/src/lib.rs | 32 ++++++++++++++------------------ common/src/stream.rs | 3 ++- common/src/user.rs | 13 +++++++------ 3 files changed, 23 insertions(+), 25 deletions(-) (limited to 'common/src') diff --git a/common/src/lib.rs b/common/src/lib.rs index c126e65..a58dc48 100644 --- a/common/src/lib.rs +++ b/common/src/lib.rs @@ -14,14 +14,13 @@ pub mod user; pub use chrono; use bincode::{Decode, Encode}; -use chrono::{DateTime, Utc}; #[cfg(feature = "rocket")] use rocket::{FromFormField, UriDisplayQuery}; use serde::{Deserialize, Serialize}; use std::{collections::BTreeMap, path::PathBuf}; -#[derive(Debug, Clone, Deserialize, Serialize, Default)] +#[derive(Debug, Clone, Deserialize, Serialize, Default, Encode, Decode)] pub struct Node { #[serde(default)] pub public: NodePublic, @@ -30,7 +29,7 @@ pub struct Node { } #[rustfmt::skip] -#[derive(Debug, Clone, Deserialize, Serialize, Default)] +#[derive(Debug, Clone, Deserialize, Serialize, Default, Encode,Decode)] pub struct NodePrivate { #[serde(default)] pub id: Option, #[serde(default)] pub poster: Option, @@ -39,7 +38,7 @@ pub struct NodePrivate { } #[rustfmt::skip] -#[derive(Debug, Clone, Deserialize, Serialize, Default)] +#[derive(Debug, Clone, Deserialize, Serialize, Default, Encode, Decode)] pub struct NodePublic { #[serde(default)] pub kind: Option, #[serde(default)] pub title: Option, @@ -48,20 +47,20 @@ pub struct NodePublic { #[serde(default)] pub children: Vec, #[serde(default)] pub tagline: Option, #[serde(default)] pub description: Option, - #[serde(default)] pub release_date: Option>, + #[serde(default)] pub release_date: Option, #[serde(default)] pub index: Option, #[serde(default)] pub media: Option, #[serde(default)] pub ratings: BTreeMap, #[serde(default)] pub federated: Option, } -#[derive(Debug, Clone, Deserialize, Serialize, Default)] +#[derive(Debug, Clone, Deserialize, Serialize, Default, Encode, Decode)] pub struct ImportOptions { pub id: String, pub sources: Vec, } -#[derive(Debug, Clone, Deserialize, Serialize)] +#[derive(Debug, Clone, Deserialize, Serialize, Encode, Decode)] #[serde(rename_all = "snake_case")] pub enum ImportSource { Override(Node), @@ -85,7 +84,7 @@ pub enum ImportSource { }, } -#[derive(Debug, Clone, Deserialize, Serialize, Hash, PartialEq, Eq)] +#[derive(Debug, Clone, Deserialize, Serialize, Hash, PartialEq, Eq, Encode, Decode)] #[serde(rename_all = "snake_case")] pub enum AssetLocation { Cache(PathBuf), @@ -96,7 +95,7 @@ pub enum AssetLocation { } #[rustfmt::skip] -#[derive(Debug, Clone, Copy, Deserialize, Serialize, PartialEq, Eq, Default)] +#[derive(Debug, Clone, Copy, Deserialize, Serialize, PartialEq, Eq, Default, Encode,Decode)] #[cfg_attr(feature = "rocket", derive(FromFormField, UriDisplayQuery))] #[serde(rename_all = "snake_case")] pub enum NodeKind { @@ -110,18 +109,13 @@ pub enum NodeKind { #[cfg_attr(feature = "rocket", field(value = "episode"))] Episode, } -#[derive(Debug, Clone, Deserialize, Serialize)] +#[derive(Debug, Clone, Deserialize, Serialize, Encode, Decode)] #[serde(rename_all = "snake_case")] pub enum TrackSource { Local(LocalTrack), Remote(usize), } -pub enum PublicMediaSource { - Local, - Remote(String), -} - pub type TrackID = usize; #[derive(Debug, Clone, Deserialize, Serialize, Encode, Decode, Hash)] @@ -131,7 +125,7 @@ pub struct LocalTrack { pub codec_private: Option>, } -#[derive(Debug, Clone, Deserialize, Serialize)] +#[derive(Debug, Clone, Deserialize, Serialize, Encode, Decode)] pub struct MediaInfo { pub duration: f64, // in seconds pub tracks: Vec, @@ -157,7 +151,9 @@ pub struct SourceTrack { pub federated: Vec, } -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[derive( + Debug, Clone, Deserialize, Serialize, PartialEq, Eq, PartialOrd, Ord, Hash, Encode, Decode, +)] #[serde(rename_all = "snake_case")] pub enum Rating { Imdb, @@ -186,7 +182,7 @@ pub enum SourceTrackKind { } #[rustfmt::skip] -#[derive(Debug, Clone, Copy)] +#[derive(Debug, Clone, Copy, Encode, Decode)] #[cfg_attr(feature = "rocket", derive(FromFormField, UriDisplayQuery))] pub enum AssetRole { #[cfg_attr(feature = "rocket", field(value = "poster"))] Poster, diff --git a/common/src/stream.rs b/common/src/stream.rs index 4aa51d3..7b56d0e 100644 --- a/common/src/stream.rs +++ b/common/src/stream.rs @@ -1,3 +1,4 @@ +use bincode::{Decode, Encode}; /* This file is part of jellything (https://codeberg.org/metamuffin/jellything) which is licensed under the GNU Affero General Public License (version 3); see /COPYING. @@ -18,7 +19,7 @@ pub struct StreamSpec { } #[rustfmt::skip] -#[derive(Debug, Clone, Copy, Deserialize, Serialize, PartialEq, Eq, Hash)] +#[derive(Debug, Clone, Copy, Deserialize, Serialize, PartialEq, Eq, Hash, Encode, Decode)] #[serde(rename_all = "snake_case")] #[cfg_attr(feature = "rocket", derive(FromFormField, UriDisplayQuery))] pub enum StreamFormat { 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 */ 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>, } -#[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); -#[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, -- cgit v1.2.3-70-g09d2