use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct NoiseEffect {
#[serde(rename = "blendMode")]
pub blend_mode: models::BlendMode,
#[serde(rename = "noiseSize")]
pub noise_size: f64,
#[serde(rename = "density")]
pub density: f64,
#[serde(rename = "noiseType")]
pub noise_type: NoiseType,
#[serde(rename = "opacity", skip_serializing_if = "Option::is_none")]
pub opacity: Option<f64>,
#[serde(rename = "secondaryColor", skip_serializing_if = "Option::is_none")]
pub secondary_color: Option<Box<models::Rgba>>,
}
impl NoiseEffect {
pub fn new(blend_mode: models::BlendMode, noise_size: f64, density: f64, noise_type: NoiseType) -> NoiseEffect {
NoiseEffect {
blend_mode,
noise_size,
density,
noise_type,
opacity: None,
secondary_color: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum NoiseType {
#[serde(rename = "MONOTONE")]
Monotone,
#[serde(rename = "MULTITONE")]
Multitone,
#[serde(rename = "DUOTONE")]
Duotone,
}
impl Default for NoiseType {
fn default() -> NoiseType {
Self::Monotone
}
}