aboutsummaryrefslogtreecommitdiff
path: root/common/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'common/src/lib.rs')
-rw-r--r--common/src/lib.rs11
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 {