open_library/models/
works.rs1use crate::format::KeyedValue;
2use crate::models::authors::{AuthorReference, AuthorType};
3use crate::models::{OpenLibraryModel, OpenLibraryResource};
4use chrono::NaiveDate;
5use serde::{Deserialize, Deserializer, Serialize};
6
7#[derive(Deserialize, Debug, Eq, PartialEq, Serialize)]
13pub struct Work {
14 pub title: String,
15 #[serde(default)]
16 #[serde(skip_serializing_if = "Vec::is_empty")]
17 pub covers: Vec<i32>,
18 #[serde(default)]
19 #[serde(skip_serializing_if = "Vec::is_empty")]
20 pub subject_places: Vec<String>,
21 #[serde(default)]
22 #[serde(skip_serializing_if = "Vec::is_empty")]
23 pub subjects: Vec<String>,
24 pub key: OpenLibraryResource,
25 pub authors: Vec<AuthorReference>,
26 pub latest_revision: u32,
27 pub revision: u32,
28 }
31
32impl OpenLibraryModel for Work {}