1use convert::Convert;
10use resize::Resize;
11use serde::Deserialize;
12use serde::Serialize;
13use transform::Transform;
14
15#[cfg(feature = "async")]
16pub mod async_bin;
17pub mod convert;
18pub mod error;
19pub mod resize;
20#[cfg(not(feature = "async"))]
21pub mod sync;
22pub mod transform;
23
24pub(crate) const API_ENDPOINT: &str = "https://api.tinify.com";
25
26#[derive(Serialize, Deserialize, Debug)]
27pub(crate) struct SourceUrl {
28 url: String,
29}
30
31#[derive(Serialize, Deserialize, Debug)]
32pub(crate) struct Operations {
33 #[serde(skip_serializing_if = "Option::is_none")]
34 convert: Option<Convert>,
35
36 #[serde(skip_serializing_if = "Option::is_none")]
37 resize: Option<Resize>,
38
39 #[serde(skip_serializing_if = "Option::is_none")]
40 transform: Option<Transform>,
41}