use crate::schema::animated_properties::shape_property::ShapeProperty;
use crate::schema::animated_properties::value::FloatValue;
use crate::schema::constants::mask_mode::MaskMode;
use serde::{Deserialize, Serialize};
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
pub struct Mask {
#[serde(rename = "nm")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "mn")]
#[serde(skip_serializing_if = "Option::is_none")]
pub match_name: Option<String>,
#[serde(rename = "inv")]
#[serde(skip_serializing_if = "Option::is_none")]
pub inverted: Option<bool>,
#[serde(rename = "pt")]
#[serde(skip_serializing_if = "Option::is_none")]
pub shape: Option<ShapeProperty>,
#[serde(rename = "o")]
#[serde(skip_serializing_if = "Option::is_none")]
pub opacity: Option<FloatValue>,
#[serde(rename = "mode")]
#[serde(skip_serializing_if = "Option::is_none")]
pub mode: Option<MaskMode>,
#[serde(rename = "x")]
#[serde(skip_serializing_if = "Option::is_none")]
pub expand: Option<FloatValue>,
}