1#![cfg_attr(docsrs, feature(doc_cfg))]
24
25#[macro_use]
26mod macros;
27
28mod append;
29mod client;
30mod common;
31mod credentials;
32mod endpoints;
33mod image;
34mod param;
35#[cfg(feature = "stream")]
36pub mod stream;
37#[cfg(feature = "v4")]
38mod v4;
39
40pub use append::Append;
41pub use client::Client;
42pub use common::*;
43#[cfg(feature = "v4")]
44pub use credentials::AccessToken;
45pub use credentials::{GuestSessionId, SessionId};
46pub use endpoints::account::*;
47pub use endpoints::authentication::*;
48pub use endpoints::certification::*;
49pub use endpoints::collection::*;
50pub use endpoints::company::*;
51pub use endpoints::configuration::*;
52pub use endpoints::credit::*;
53pub use endpoints::discover::*;
54pub use endpoints::find::*;
55pub use endpoints::genre::*;
56pub use endpoints::keyword::*;
57pub use endpoints::list::*;
58pub use endpoints::movie::*;
59pub use endpoints::network::*;
60pub use endpoints::person::*;
61pub use endpoints::review::*;
62pub use endpoints::search::*;
63pub use endpoints::trending::*;
64pub use endpoints::tv::*;
65pub use endpoints::watch_provider::*;
66pub use image::{Backdrop, Logo, Poster, Profile, Still};
67pub use isocountry::CountryCode;
68pub use isolang::Language;
69pub use param::ToParam;
70pub use time::Date;
71#[cfg(feature = "v4")]
72pub use v4::*;
73
74#[derive(Debug, thiserror::Error)]
76pub enum Error {
77 #[error("transport: {0}")]
78 Transport(#[from] reqwest::Error),
79 #[error("tmdb error {code}: {message}")]
81 Tmdb { code: i32, message: String },
82 #[error("not found")]
84 NotFound,
85 #[error("rate limited; retry after {retry_after:?}")]
87 RateLimited {
88 retry_after: Option<std::time::Duration>,
89 },
90 #[error("requested append `{0}` missing from the response")]
92 MissingAppend(&'static str),
93 #[error("decode: {0}")]
94 Decode(#[from] serde_json::Error),
95}
96
97pub type Result<T> = std::result::Result<T, Error>;