diff options
Diffstat (limited to 'common/src')
-rw-r--r-- | common/src/lib.rs | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/common/src/lib.rs b/common/src/lib.rs index a5b3f21..1903529 100644 --- a/common/src/lib.rs +++ b/common/src/lib.rs @@ -11,6 +11,7 @@ pub mod seek_index; pub mod stream; pub mod user; +use bincode::{Decode, Encode}; pub use chrono; use chrono::{DateTime, Utc}; @@ -122,7 +123,7 @@ pub enum PublicMediaSource { pub type TrackID = usize; -#[derive(Debug, Clone, Deserialize, Serialize)] +#[derive(Debug, Clone, Deserialize, Serialize, Encode, Decode, Hash)] pub struct LocalTrack { pub path: PathBuf, pub track: TrackID, @@ -137,14 +138,14 @@ pub struct MediaInfo { pub chapters: Vec<Chapter>, } -#[derive(Debug, Clone, Deserialize, Serialize, Default)] +#[derive(Debug, Clone, Deserialize, Serialize, Default, Encode, Decode)] pub struct Chapter { pub time_start: Option<f64>, pub time_end: Option<f64>, pub labels: Vec<(String, String)>, } -#[derive(Debug, Clone, Deserialize, Serialize)] +#[derive(Debug, Clone, Deserialize, Serialize, Encode, Decode)] pub struct SourceTrack { pub kind: SourceTrackKind, pub name: String, @@ -155,7 +156,7 @@ pub struct SourceTrack { pub federated: Vec<String>, } -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq, PartialOrd, Ord)] +#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq, PartialOrd, Ord, Hash)] #[serde(rename_all = "snake_case")] pub enum Rating { Imdb, @@ -167,7 +168,7 @@ pub enum Rating { YoutubeFollowers, } -#[derive(Debug, Clone, Deserialize, Serialize)] +#[derive(Debug, Clone, Deserialize, Serialize, Encode, Decode)] #[serde(rename_all = "snake_case")] pub enum SourceTrackKind { Video { |