From 05b18db18a37cb16de024608585ed538426949f2 Mon Sep 17 00:00:00 2001 From: Elias Projahn Date: Thu, 28 Oct 2021 09:53:16 +0200 Subject: [PATCH] database: Implement Hash for public structs --- database/src/ensembles.rs | 2 +- database/src/instruments.rs | 2 +- database/src/medium.rs | 4 ++-- database/src/persons.rs | 2 +- database/src/recordings.rs | 6 +++--- database/src/works.rs | 6 +++--- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/database/src/ensembles.rs b/database/src/ensembles.rs index dddc302..6d41c0e 100644 --- a/database/src/ensembles.rs +++ b/database/src/ensembles.rs @@ -5,7 +5,7 @@ use log::info; use serde::{Deserialize, Serialize}; /// An ensemble that takes part in recordings. -#[derive(Serialize, Deserialize, Insertable, Queryable, Debug, Clone)] +#[derive(Serialize, Deserialize, Insertable, Queryable, PartialEq, Eq, Hash, Debug, Clone)] #[serde(rename_all = "camelCase")] pub struct Ensemble { pub id: String, diff --git a/database/src/instruments.rs b/database/src/instruments.rs index 725469c..739ad6e 100644 --- a/database/src/instruments.rs +++ b/database/src/instruments.rs @@ -5,7 +5,7 @@ use log::info; use serde::{Deserialize, Serialize}; /// An instrument or any other possible role within a recording. -#[derive(Serialize, Deserialize, Insertable, Queryable, Debug, Clone)] +#[derive(Serialize, Deserialize, Insertable, Queryable, PartialEq, Eq, Hash, Debug, Clone)] #[serde(rename_all = "camelCase")] pub struct Instrument { pub id: String, diff --git a/database/src/medium.rs b/database/src/medium.rs index f1ec431..7887f60 100644 --- a/database/src/medium.rs +++ b/database/src/medium.rs @@ -7,7 +7,7 @@ use serde::{Deserialize, Serialize}; /// Representation of someting like a physical audio disc or a folder with /// audio files (i.e. a collection of tracks for one or more recordings). -#[derive(Serialize, Deserialize, Debug, Clone)] +#[derive(Serialize, Deserialize, PartialEq, Eq, Hash, Debug, Clone)] #[serde(rename_all = "camelCase")] pub struct Medium { /// An unique ID for the medium. @@ -24,7 +24,7 @@ pub struct Medium { } /// A track on a medium. -#[derive(Serialize, Deserialize, Debug, Clone)] +#[derive(Serialize, Deserialize, PartialEq, Eq, Hash, Debug, Clone)] #[serde(rename_all = "camelCase")] pub struct Track { /// The recording on this track. diff --git a/database/src/persons.rs b/database/src/persons.rs index ecc6cdd..594aa27 100644 --- a/database/src/persons.rs +++ b/database/src/persons.rs @@ -5,7 +5,7 @@ use log::info; use serde::{Deserialize, Serialize}; /// A person that is a composer, an interpret or both. -#[derive(Serialize, Deserialize, Insertable, Queryable, Debug, Clone)] +#[derive(Serialize, Deserialize, Insertable, Queryable, PartialEq, Eq, Hash, Debug, Clone)] #[serde(rename_all = "camelCase")] pub struct Person { pub id: String, diff --git a/database/src/recordings.rs b/database/src/recordings.rs index de3ff79..aeec3b5 100644 --- a/database/src/recordings.rs +++ b/database/src/recordings.rs @@ -6,7 +6,7 @@ use log::info; use serde::{Deserialize, Serialize}; /// A specific recording of a work. -#[derive(Serialize, Deserialize, Debug, Clone)] +#[derive(Serialize, Deserialize, PartialEq, Eq, Hash, Debug, Clone)] #[serde(rename_all = "camelCase")] pub struct Recording { pub id: String, @@ -40,7 +40,7 @@ impl Recording { } /// How a person or ensemble was involved in a recording. -#[derive(Serialize, Deserialize, Debug, Clone)] +#[derive(Serialize, Deserialize, PartialEq, Eq, Hash, Debug, Clone)] #[serde(rename_all = "camelCase")] pub struct Performance { pub performer: PersonOrEnsemble, @@ -62,7 +62,7 @@ impl Performance { } /// Either a person or an ensemble. -#[derive(Serialize, Deserialize, Clone, Debug)] +#[derive(Serialize, Deserialize, PartialEq, Eq, Hash, Clone, Debug)] pub enum PersonOrEnsemble { Person(Person), Ensemble(Ensemble), diff --git a/database/src/works.rs b/database/src/works.rs index bc03c13..6512043 100644 --- a/database/src/works.rs +++ b/database/src/works.rs @@ -54,14 +54,14 @@ struct WorkSectionRow { pub before_index: i64, } /// A concrete work part that can be recorded. -#[derive(Serialize, Deserialize, Debug, Clone)] +#[derive(Serialize, Deserialize, PartialEq, Eq, Hash, Debug, Clone)] #[serde(rename_all = "camelCase")] pub struct WorkPart { pub title: String, } /// A heading between work parts. -#[derive(Serialize, Deserialize, Debug, Clone)] +#[derive(Serialize, Deserialize, PartialEq, Eq, Hash, Debug, Clone)] #[serde(rename_all = "camelCase")] pub struct WorkSection { pub title: String, @@ -69,7 +69,7 @@ pub struct WorkSection { } /// A specific work by a composer. -#[derive(Serialize, Deserialize, Debug, Clone)] +#[derive(Serialize, Deserialize, PartialEq, Eq, Hash, Debug, Clone)] #[serde(rename_all = "camelCase")] pub struct Work { pub id: String,