diff options
author | metamuffin <metamuffin@disroot.org> | 2024-01-20 00:50:20 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-01-20 00:50:20 +0100 |
commit | 46c251655db7bb3d9aa814b1a5dde85336b0b9b1 (patch) | |
tree | ab0696f2c92e8854ce6aa0737877cc15184bd8b6 /common/src/lib.rs | |
parent | 1c37d32a0985ff7390313833345b9299f9f0b196 (diff) | |
download | jellything-46c251655db7bb3d9aa814b1a5dde85336b0b9b1.tar jellything-46c251655db7bb3d9aa814b1a5dde85336b0b9b1.tar.bz2 jellything-46c251655db7bb3d9aa814b1a5dde85336b0b9b1.tar.zst |
replace sled with redb
Diffstat (limited to 'common/src/lib.rs')
-rw-r--r-- | common/src/lib.rs | 32 |
1 files changed, 14 insertions, 18 deletions
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<String>, #[serde(default)] pub poster: Option<AssetLocation>, @@ -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<NodeKind>, #[serde(default)] pub title: Option<String>, @@ -48,20 +47,20 @@ pub struct NodePublic { #[serde(default)] pub children: Vec<String>, #[serde(default)] pub tagline: Option<String>, #[serde(default)] pub description: Option<String>, - #[serde(default)] pub release_date: Option<DateTime<Utc>>, + #[serde(default)] pub release_date: Option<i64>, #[serde(default)] pub index: Option<usize>, #[serde(default)] pub media: Option<MediaInfo>, #[serde(default)] pub ratings: BTreeMap<Rating, f64>, #[serde(default)] pub federated: Option<String>, } -#[derive(Debug, Clone, Deserialize, Serialize, Default)] +#[derive(Debug, Clone, Deserialize, Serialize, Default, Encode, Decode)] pub struct ImportOptions { pub id: String, pub sources: Vec<ImportSource>, } -#[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<Vec<u8>>, } -#[derive(Debug, Clone, Deserialize, Serialize)] +#[derive(Debug, Clone, Deserialize, Serialize, Encode, Decode)] pub struct MediaInfo { pub duration: f64, // in seconds pub tracks: Vec<SourceTrack>, @@ -157,7 +151,9 @@ pub struct SourceTrack { pub federated: Vec<String>, } -#[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, |