asoiaf_api/requester/
filter.rs

1use super::ToUrl;
2
3pub enum BookFilter {
4    Name(String),
5    FromReleaseDate(String),
6    ToReleaseDate(String),
7}
8
9impl ToUrl for BookFilter {
10    fn to_url(&self) -> String {
11        match self {
12            BookFilter::Name(name) => format!("name={name}",),
13            BookFilter::FromReleaseDate(date) => format!("fromReleaseDate={date}"),
14            BookFilter::ToReleaseDate(date) => format!("toReleaseDate={date}"),
15        }
16    }
17}
18
19pub enum CharacterFilter {
20    Name(String),
21    Gender(String),
22    Culture(String),
23    Born(String),
24    Died(String),
25    IsAlive(bool),
26}
27
28impl ToUrl for CharacterFilter {
29    fn to_url(&self) -> String {
30        match self {
31            CharacterFilter::Name(name) => format!("name={name}"),
32            CharacterFilter::Gender(gender) => format!("gender={gender}"),
33            CharacterFilter::Culture(culture) => format!("culture={culture}"),
34            CharacterFilter::Born(born) => format!("born={born}"),
35            CharacterFilter::Died(died) => format!("died={died}"),
36            CharacterFilter::IsAlive(is_alive) => format!("isAlive={is_alive}"),
37        }
38    }
39}
40
41pub enum HouseFilter {
42    Name(String),
43    Region(String),
44    Words(String),
45    HasWords(bool),
46    HasTitles(bool),
47    HasSeats(bool),
48    HasDiedOut(bool),
49    HasAncestralWeapons(bool),
50}
51
52impl ToUrl for HouseFilter {
53    fn to_url(&self) -> String {
54        match self {
55            HouseFilter::Name(name) => format!("name={name}"),
56            HouseFilter::Region(name) => format!("region={name}"),
57            HouseFilter::Words(name) => format!("words={name}"),
58            HouseFilter::HasWords(name) => format!("hasWords={name}"),
59            HouseFilter::HasTitles(name) => format!("hasTitles={name}"),
60            HouseFilter::HasSeats(name) => format!("hasSeats={name}"),
61            HouseFilter::HasDiedOut(name) => format!("hasDiedOut={name}"),
62            HouseFilter::HasAncestralWeapons(name) => format!("hasAncestralWeapons={name}"),
63        }
64    }
65}