anidb_api/http/models/anime/
character.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
4pub(crate) struct CharacterList {
5    #[serde(rename = "character")]
6    pub list: Vec<Character>,
7}
8
9#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
10pub struct Character {
11    #[serde(rename = "id")]
12    pub character_id: String,
13    #[serde(rename = "type")]
14    pub cast_type: Option<CharacterCastType>,
15    #[serde(rename = "update")]
16    pub updated: Option<String>,
17    pub rating: Option<CharacterRating>,
18    pub name: Option<String>,
19    pub gender: Option<String>,
20    #[serde(rename = "charactertype")]
21    pub character_type: Option<String>,
22    pub description: Option<String>,
23    pub picture: Option<String>,
24    pub seiyuu: Option<Seiyuu>,
25}
26
27#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
28pub struct CharacterRating {
29    pub votes: u32,
30    #[serde(rename(deserialize = "$value"))]
31    pub value: f32,
32}
33
34#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
35pub struct Seiyuu {
36    #[serde(rename = "id")]
37    pub creator_id: String,
38    pub picture: Option<String>,
39    #[serde(rename(deserialize = "$value"))]
40    pub name: Option<String>,
41}
42
43#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
44pub enum CharacterCastType {
45    #[serde(rename = "main character in")]
46    Character,
47    #[serde(rename = "secondary cast in")]
48    Secondary,
49    #[serde(rename = "appears in")]
50    AppearsIn,
51    #[serde(rename = "cameo appearance in")]
52    Cameo,
53}