database: Implement Hash for public structs

This commit is contained in:
Elias Projahn 2021-10-28 09:53:16 +02:00
parent b17ffc5db9
commit 05b18db18a
6 changed files with 11 additions and 11 deletions

View file

@ -5,7 +5,7 @@ use log::info;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
/// An ensemble that takes part in recordings. /// 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")] #[serde(rename_all = "camelCase")]
pub struct Ensemble { pub struct Ensemble {
pub id: String, pub id: String,

View file

@ -5,7 +5,7 @@ use log::info;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
/// An instrument or any other possible role within a recording. /// 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")] #[serde(rename_all = "camelCase")]
pub struct Instrument { pub struct Instrument {
pub id: String, pub id: String,

View file

@ -7,7 +7,7 @@ use serde::{Deserialize, Serialize};
/// Representation of someting like a physical audio disc or a folder with /// 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). /// 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")] #[serde(rename_all = "camelCase")]
pub struct Medium { pub struct Medium {
/// An unique ID for the medium. /// An unique ID for the medium.
@ -24,7 +24,7 @@ pub struct Medium {
} }
/// A track on a medium. /// A track on a medium.
#[derive(Serialize, Deserialize, Debug, Clone)] #[derive(Serialize, Deserialize, PartialEq, Eq, Hash, Debug, Clone)]
#[serde(rename_all = "camelCase")] #[serde(rename_all = "camelCase")]
pub struct Track { pub struct Track {
/// The recording on this track. /// The recording on this track.

View file

@ -5,7 +5,7 @@ use log::info;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
/// A person that is a composer, an interpret or both. /// 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")] #[serde(rename_all = "camelCase")]
pub struct Person { pub struct Person {
pub id: String, pub id: String,

View file

@ -6,7 +6,7 @@ use log::info;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
/// A specific recording of a work. /// A specific recording of a work.
#[derive(Serialize, Deserialize, Debug, Clone)] #[derive(Serialize, Deserialize, PartialEq, Eq, Hash, Debug, Clone)]
#[serde(rename_all = "camelCase")] #[serde(rename_all = "camelCase")]
pub struct Recording { pub struct Recording {
pub id: String, pub id: String,
@ -40,7 +40,7 @@ impl Recording {
} }
/// How a person or ensemble was involved in a 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")] #[serde(rename_all = "camelCase")]
pub struct Performance { pub struct Performance {
pub performer: PersonOrEnsemble, pub performer: PersonOrEnsemble,
@ -62,7 +62,7 @@ impl Performance {
} }
/// Either a person or an ensemble. /// Either a person or an ensemble.
#[derive(Serialize, Deserialize, Clone, Debug)] #[derive(Serialize, Deserialize, PartialEq, Eq, Hash, Clone, Debug)]
pub enum PersonOrEnsemble { pub enum PersonOrEnsemble {
Person(Person), Person(Person),
Ensemble(Ensemble), Ensemble(Ensemble),

View file

@ -54,14 +54,14 @@ struct WorkSectionRow {
pub before_index: i64, pub before_index: i64,
} }
/// A concrete work part that can be recorded. /// 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")] #[serde(rename_all = "camelCase")]
pub struct WorkPart { pub struct WorkPart {
pub title: String, pub title: String,
} }
/// A heading between work parts. /// A heading between work parts.
#[derive(Serialize, Deserialize, Debug, Clone)] #[derive(Serialize, Deserialize, PartialEq, Eq, Hash, Debug, Clone)]
#[serde(rename_all = "camelCase")] #[serde(rename_all = "camelCase")]
pub struct WorkSection { pub struct WorkSection {
pub title: String, pub title: String,
@ -69,7 +69,7 @@ pub struct WorkSection {
} }
/// A specific work by a composer. /// A specific work by a composer.
#[derive(Serialize, Deserialize, Debug, Clone)] #[derive(Serialize, Deserialize, PartialEq, Eq, Hash, Debug, Clone)]
#[serde(rename_all = "camelCase")] #[serde(rename_all = "camelCase")]
pub struct Work { pub struct Work {
pub id: String, pub id: String,