use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct File {
#[serde(rename = "animationStyle", skip_serializing_if = "Option::is_none")]
pub animation_style: Option<models::ImageAnimationStyle>,
#[serde(rename = "extension")]
pub extension: String,
#[serde(rename = "frames", skip_serializing_if = "Option::is_none")]
pub frames: Option<i32>,
#[serde(rename = "framesOverTime", skip_serializing_if = "Option::is_none")]
pub frames_over_time: Option<i32>,
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "loopStyle", skip_serializing_if = "Option::is_none")]
pub loop_style: Option<models::ImageLoopStyle>,
#[serde(rename = "maskTag", skip_serializing_if = "Option::is_none")]
pub mask_tag: Option<models::ImageMask>,
#[serde(rename = "mimeType")]
pub mime_type: models::MimeType,
#[serde(
rename = "modifiedThumbnailFileName",
skip_serializing_if = "Option::is_none"
)]
pub modified_thumbnail_file_name: Option<String>,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "ownerId")]
pub owner_id: String,
#[serde(rename = "tags")]
pub tags: Vec<String>,
#[serde(rename = "versions")]
pub versions: Vec<models::FileVersion>,
}
impl File {
pub fn new(
extension: String,
id: String,
mime_type: models::MimeType,
name: String,
owner_id: String,
tags: Vec<String>,
versions: Vec<models::FileVersion>,
) -> File {
File {
animation_style: None,
extension,
frames: None,
frames_over_time: None,
id,
loop_style: None,
mask_tag: None,
mime_type,
modified_thumbnail_file_name: None,
name,
owner_id,
tags,
versions,
}
}
}