Skip to main content

open_library_api_rs/models/
edition.rs

1// v0.0.1
2use serde::{Deserialize, Serialize};
3
4use super::common::Key;
5use super::work::DateValue;
6
7/// A specific edition of a work (a physical or digital book).
8#[derive(Debug, Clone, Serialize, Deserialize)]
9pub struct Edition {
10    pub key: String,
11    #[serde(default)]
12    pub title: Option<String>,
13    #[serde(default)]
14    pub subtitle: Option<String>,
15    #[serde(default)]
16    pub full_title: Option<String>,
17    #[serde(default)]
18    pub authors: Option<Vec<Key>>,
19    #[serde(default)]
20    pub works: Option<Vec<Key>>,
21    #[serde(default)]
22    pub publishers: Option<Vec<String>>,
23    #[serde(default)]
24    pub publish_date: Option<String>,
25    #[serde(default)]
26    pub publish_places: Option<Vec<String>>,
27    #[serde(default)]
28    pub publish_country: Option<String>,
29    #[serde(default)]
30    pub languages: Option<Vec<Key>>,
31    #[serde(default)]
32    pub isbn_10: Option<Vec<String>>,
33    #[serde(default)]
34    pub isbn_13: Option<Vec<String>>,
35    #[serde(default)]
36    pub lccn: Option<Vec<String>>,
37    #[serde(default)]
38    pub oclc_numbers: Option<Vec<String>>,
39    #[serde(default)]
40    pub goodreads: Option<Vec<String>>,
41    #[serde(default)]
42    pub covers: Option<Vec<i64>>,
43    #[serde(default)]
44    pub number_of_pages: Option<u32>,
45    #[serde(default)]
46    pub edition_name: Option<String>,
47    #[serde(default)]
48    pub by_statement: Option<String>,
49    #[serde(default)]
50    pub description: Option<super::common::TextOrValue>,
51    #[serde(default)]
52    pub notes: Option<super::common::TextOrValue>,
53    #[serde(default)]
54    pub series: Option<Vec<String>>,
55    #[serde(default)]
56    pub subjects: Option<Vec<String>>,
57    #[serde(default)]
58    pub source_records: Option<Vec<String>>,
59    #[serde(default)]
60    pub created: Option<DateValue>,
61    #[serde(default)]
62    pub last_modified: Option<DateValue>,
63    #[serde(default)]
64    pub latest_revision: Option<i64>,
65    #[serde(default)]
66    pub revision: Option<i64>,
67    #[serde(default)]
68    pub physical_format: Option<String>,
69    #[serde(default)]
70    pub weight: Option<String>,
71    #[serde(default)]
72    pub physical_dimensions: Option<String>,
73}