anidb_api/http/models/anime/
character.rs1use 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}