/*
 * MOTIS API
 *
 * This is the MOTIS routing API.
 *
 * The version of the OpenAPI document: v1
 * Contact: felix@triptix.tech
 * Generated by: https://openapi-generator.tech
 */

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

/// 
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum RentalFormFactor {
    #[serde(rename = "BICYCLE")]
    Bicycle,
    #[serde(rename = "CARGO_BICYCLE")]
    CargoBicycle,
    #[serde(rename = "CAR")]
    Car,
    #[serde(rename = "MOPED")]
    Moped,
    #[serde(rename = "SCOOTER_STANDING")]
    ScooterStanding,
    #[serde(rename = "SCOOTER_SEATED")]
    ScooterSeated,
    #[serde(rename = "OTHER")]
    Other,

}

impl std::fmt::Display for RentalFormFactor {
    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
        match self {
            Self::Bicycle => write!(f, "BICYCLE"),
            Self::CargoBicycle => write!(f, "CARGO_BICYCLE"),
            Self::Car => write!(f, "CAR"),
            Self::Moped => write!(f, "MOPED"),
            Self::ScooterStanding => write!(f, "SCOOTER_STANDING"),
            Self::ScooterSeated => write!(f, "SCOOTER_SEATED"),
            Self::Other => write!(f, "OTHER"),
        }
    }
}

impl Default for RentalFormFactor {
    fn default() -> RentalFormFactor {
        Self::Bicycle
    }
}

