use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum Transition {
SimpleTransition(Box<models::SimpleTransition>),
DirectionalTransition(Box<models::DirectionalTransition>),
}
impl Default for Transition {
fn default() -> Self {
Self::SimpleTransition(Default::default())
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Type {
#[serde(rename = "DISSOLVE")]
Dissolve,
#[serde(rename = "SMART_ANIMATE")]
SmartAnimate,
#[serde(rename = "SCROLL_ANIMATE")]
ScrollAnimate,
#[serde(rename = "MOVE_IN")]
MoveIn,
#[serde(rename = "MOVE_OUT")]
MoveOut,
#[serde(rename = "PUSH")]
Push,
#[serde(rename = "SLIDE_IN")]
SlideIn,
#[serde(rename = "SLIDE_OUT")]
SlideOut,
}
impl Default for Type {
fn default() -> Type {
Self::Dissolve
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Direction {
#[serde(rename = "LEFT")]
Left,
#[serde(rename = "RIGHT")]
Right,
#[serde(rename = "TOP")]
Top,
#[serde(rename = "BOTTOM")]
Bottom,
}
impl Default for Direction {
fn default() -> Direction {
Self::Left
}
}