use serde::{Deserialize, Serialize};
use crate::schema::animated_properties::value::FloatValue;
use crate::schema::constants::composite::Composite;
use crate::schema::shapes::modifier::ModifierShape;
use super::repeater_transform::RepeaterTransformShape;
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
pub struct RepeaterShape {
#[serde(flatten)]
pub modifier: ModifierShape,
#[serde(rename = "c")]
pub copies: FloatValue,
#[serde(rename = "o")]
#[serde(skip_serializing_if = "Option::is_none")]
pub offset: Option<FloatValue>,
#[serde(rename = "m")]
#[serde(skip_serializing_if = "Option::is_none")]
pub composite: Option<Composite>,
#[serde(rename = "tr")]
pub transform: RepeaterTransformShape,
}