open-library-api-rs 0.1.0

Async Rust client for the Open Library API
Documentation
// v0.0.1
use serde::{Deserialize, Serialize};

use super::common::Key;
use super::work::DateValue;

/// A specific edition of a work (a physical or digital book).
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Edition {
    pub key: String,
    #[serde(default)]
    pub title: Option<String>,
    #[serde(default)]
    pub subtitle: Option<String>,
    #[serde(default)]
    pub full_title: Option<String>,
    #[serde(default)]
    pub authors: Option<Vec<Key>>,
    #[serde(default)]
    pub works: Option<Vec<Key>>,
    #[serde(default)]
    pub publishers: Option<Vec<String>>,
    #[serde(default)]
    pub publish_date: Option<String>,
    #[serde(default)]
    pub publish_places: Option<Vec<String>>,
    #[serde(default)]
    pub publish_country: Option<String>,
    #[serde(default)]
    pub languages: Option<Vec<Key>>,
    #[serde(default)]
    pub isbn_10: Option<Vec<String>>,
    #[serde(default)]
    pub isbn_13: Option<Vec<String>>,
    #[serde(default)]
    pub lccn: Option<Vec<String>>,
    #[serde(default)]
    pub oclc_numbers: Option<Vec<String>>,
    #[serde(default)]
    pub goodreads: Option<Vec<String>>,
    #[serde(default)]
    pub covers: Option<Vec<i64>>,
    #[serde(default)]
    pub number_of_pages: Option<u32>,
    #[serde(default)]
    pub edition_name: Option<String>,
    #[serde(default)]
    pub by_statement: Option<String>,
    #[serde(default)]
    pub description: Option<super::common::TextOrValue>,
    #[serde(default)]
    pub notes: Option<super::common::TextOrValue>,
    #[serde(default)]
    pub series: Option<Vec<String>>,
    #[serde(default)]
    pub subjects: Option<Vec<String>>,
    #[serde(default)]
    pub source_records: Option<Vec<String>>,
    #[serde(default)]
    pub created: Option<DateValue>,
    #[serde(default)]
    pub last_modified: Option<DateValue>,
    #[serde(default)]
    pub latest_revision: Option<i64>,
    #[serde(default)]
    pub revision: Option<i64>,
    #[serde(default)]
    pub physical_format: Option<String>,
    #[serde(default)]
    pub weight: Option<String>,
    #[serde(default)]
    pub physical_dimensions: Option<String>,
}