figma-api 0.31.4

This is the OpenAPI specification for the [Figma REST API](https://www.figma.com/developers/api). Note: we are releasing the OpenAPI specification as a beta given the large surface area and complexity of the REST API. If you notice any inaccuracies with the specification, please [file an issue](https://github.com/figma/rest-api-spec/issues).
Documentation
/*
 * Figma API
 *
 * This is the OpenAPI specification for the [Figma REST API](https://www.figma.com/developers/api).  Note: we are releasing the OpenAPI specification as a beta given the large surface area and complexity of the REST API. If you notice any inaccuracies with the specification, please [file an issue](https://github.com/figma/rest-api-spec/issues).
 *
 * The version of the OpenAPI document: 0.31.0
 * Contact: support@figma.com
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

/// EasingType : This type is a string enum with the following possible values:  - `EASE_IN`: Ease in with an animation curve similar to CSS ease-in. - `EASE_OUT`: Ease out with an animation curve similar to CSS ease-out. - `EASE_IN_AND_OUT`: Ease in and then out with an animation curve similar to CSS ease-in-out. - `LINEAR`: No easing, similar to CSS linear. - `EASE_IN_BACK`: Ease in with an animation curve that moves past the initial keyframe's value and then accelerates as it reaches the end. - `EASE_OUT_BACK`: Ease out with an animation curve that starts fast, then slows and goes past the ending keyframe's value. - `EASE_IN_AND_OUT_BACK`: Ease in and then out with an animation curve that overshoots the initial keyframe's value, then accelerates quickly before it slows and overshoots the ending keyframes value. - `CUSTOM_CUBIC_BEZIER`: User-defined cubic bezier curve. - `GENTLE`: Gentle animation similar to react-spring. - `QUICK`: Quick spring animation, great for toasts and notifications. - `BOUNCY`: Bouncy spring, for delightful animations like a heart bounce. - `SLOW`: Slow spring, useful as a steady, natural way to scale up fullscreen content. - `CUSTOM_SPRING`: User-defined spring animation.
/// This type is a string enum with the following possible values:  - `EASE_IN`: Ease in with an animation curve similar to CSS ease-in. - `EASE_OUT`: Ease out with an animation curve similar to CSS ease-out. - `EASE_IN_AND_OUT`: Ease in and then out with an animation curve similar to CSS ease-in-out. - `LINEAR`: No easing, similar to CSS linear. - `EASE_IN_BACK`: Ease in with an animation curve that moves past the initial keyframe's value and then accelerates as it reaches the end. - `EASE_OUT_BACK`: Ease out with an animation curve that starts fast, then slows and goes past the ending keyframe's value. - `EASE_IN_AND_OUT_BACK`: Ease in and then out with an animation curve that overshoots the initial keyframe's value, then accelerates quickly before it slows and overshoots the ending keyframes value. - `CUSTOM_CUBIC_BEZIER`: User-defined cubic bezier curve. - `GENTLE`: Gentle animation similar to react-spring. - `QUICK`: Quick spring animation, great for toasts and notifications. - `BOUNCY`: Bouncy spring, for delightful animations like a heart bounce. - `SLOW`: Slow spring, useful as a steady, natural way to scale up fullscreen content. - `CUSTOM_SPRING`: User-defined spring animation.
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum EasingType {
    #[serde(rename = "EASE_IN")]
    EaseIn,
    #[serde(rename = "EASE_OUT")]
    EaseOut,
    #[serde(rename = "EASE_IN_AND_OUT")]
    EaseInAndOut,
    #[serde(rename = "LINEAR")]
    Linear,
    #[serde(rename = "EASE_IN_BACK")]
    EaseInBack,
    #[serde(rename = "EASE_OUT_BACK")]
    EaseOutBack,
    #[serde(rename = "EASE_IN_AND_OUT_BACK")]
    EaseInAndOutBack,
    #[serde(rename = "CUSTOM_CUBIC_BEZIER")]
    CustomCubicBezier,
    #[serde(rename = "GENTLE")]
    Gentle,
    #[serde(rename = "QUICK")]
    Quick,
    #[serde(rename = "BOUNCY")]
    Bouncy,
    #[serde(rename = "SLOW")]
    Slow,
    #[serde(rename = "CUSTOM_SPRING")]
    CustomSpring,

}

impl std::fmt::Display for EasingType {
    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
        match self {
            Self::EaseIn => write!(f, "EASE_IN"),
            Self::EaseOut => write!(f, "EASE_OUT"),
            Self::EaseInAndOut => write!(f, "EASE_IN_AND_OUT"),
            Self::Linear => write!(f, "LINEAR"),
            Self::EaseInBack => write!(f, "EASE_IN_BACK"),
            Self::EaseOutBack => write!(f, "EASE_OUT_BACK"),
            Self::EaseInAndOutBack => write!(f, "EASE_IN_AND_OUT_BACK"),
            Self::CustomCubicBezier => write!(f, "CUSTOM_CUBIC_BEZIER"),
            Self::Gentle => write!(f, "GENTLE"),
            Self::Quick => write!(f, "QUICK"),
            Self::Bouncy => write!(f, "BOUNCY"),
            Self::Slow => write!(f, "SLOW"),
            Self::CustomSpring => write!(f, "CUSTOM_SPRING"),
        }
    }
}

impl Default for EasingType {
    fn default() -> EasingType {
        Self::EaseIn
    }
}