/*
* img-src API
*
* Image processing and delivery API. A serverless image processing and delivery API built on Cloudflare Workers with parameter-driven image transformation and on-demand transcoding. ## Features - **Image Upload**: Store original images in R2 with SHA256-based deduplication - **On-Demand Transformation**: Resize, crop, and convert images via URL parameters - **Format Conversion**: WebP, AVIF, JPEG, PNG output formats - **Path Organization**: Organize images into folders with multiple paths per image - **CDN Caching**: Automatic edge caching for transformed images ## Authentication Authenticate using API Keys with `imgsrc_` prefix. Create your API key at https://img-src.io/settings ## Rate Limiting - **Free Plan**: 100 requests/minute - **Pro Plan**: 500 requests/minute Rate limit headers are included in all responses.
*
* The version of the OpenAPI document: 1.0.0
* Contact: taehun@taehun.dev
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ImageMetadata {
/// Full SHA256 hash
#[serde(rename = "hash")]
pub hash: String,
/// Original filename as uploaded
#[serde(rename = "original_filename")]
pub original_filename: String,
/// File size in bytes
#[serde(rename = "size")]
pub size: i64,
/// Upload timestamp
#[serde(rename = "uploaded_at")]
pub uploaded_at: String,
/// MIME type
#[serde(rename = "mime_type")]
pub mime_type: String,
/// Image width in pixels
#[serde(rename = "width", skip_serializing_if = "Option::is_none")]
pub width: Option<i32>,
/// Image height in pixels
#[serde(rename = "height", skip_serializing_if = "Option::is_none")]
pub height: Option<i32>,
/// Dominant color as 6-digit hex (without #)
#[serde(rename = "dominant_color", skip_serializing_if = "Option::is_none")]
pub dominant_color: Option<String>,
}
impl ImageMetadata {
pub fn new(
hash: String,
original_filename: String,
size: i64,
uploaded_at: String,
mime_type: String,
) -> ImageMetadata {
ImageMetadata {
hash,
original_filename,
size,
uploaded_at,
mime_type,
width: None,
height: None,
dominant_color: None,
}
}
}