tinify/
lib.rs

1//! # Tinify Crate
2//!
3//! `tinify-rs` is a Rust client for the Tinify API.
4//! Used for TinyPNG and TinyJPG. Tinify compresses your images intelligently.
5//!
6//! Read more at `https://tinify.com`
7// --snip--
8
9use 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}