tmdb_rs/endpoints/
trending.rs1use std::fmt;
2
3use crate::endpoints::movie::MovieShort;
4use crate::endpoints::person::PersonShort;
5use crate::endpoints::search::MultiResult;
6use crate::endpoints::tv::TvShort;
7use crate::{Language, Page};
8
9#[derive(Debug, Clone, Copy, PartialEq, Eq)]
11pub enum TimeWindow {
12 Day,
13 Week,
14}
15
16impl fmt::Display for TimeWindow {
17 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
18 f.write_str(match self {
19 Self::Day => "day",
20 Self::Week => "week",
21 })
22 }
23}
24
25endpoint! {
26 trending_movies(window: TimeWindow): GET "/trending/movie/{window}" => Page<MovieShort> {
28 params { language: Language }
29 }
30}
31
32endpoint! {
33 trending_tv(window: TimeWindow): GET "/trending/tv/{window}" => Page<TvShort> {
35 params { language: Language }
36 }
37}
38
39endpoint! {
40 trending_people(window: TimeWindow): GET "/trending/person/{window}" => Page<PersonShort> {
42 params { language: Language }
43 }
44}
45
46endpoint! {
47 trending_all(window: TimeWindow): GET "/trending/all/{window}" => Page<MultiResult> {
49 params { language: Language }
50 }
51}