autogen-stedi 0.3.2

Auto-generated, strongly-typed Rust client for the Stedi APIs
Documentation
/*
 * Stedi Healthcare
 *
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 2024-04-01
 * Contact: healthcare@stedi.com
 * Generated by: https://openapi-generator.tech
 */

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

/// DeliveryOrCalendarPatternQualifier : The name of the `deliveryOrCalendarPatternCode`. For example, `Last Working Day of Period`.  Payers may sometimes return other non-compliant values.
/// The name of the `deliveryOrCalendarPatternCode`. For example, `Last Working Day of Period`.  Payers may sometimes return other non-compliant values.
#[derive(Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum DeliveryOrCalendarPatternQualifier {
    #[serde(rename = "1st Week of the Month")]
    Variant1stWeekOfTheMonth,
    #[serde(rename = "2nd Week of the Month")]
    Variant2ndWeekOfTheMonth,
    #[serde(rename = "3rd Week of the Month")]
    Variant3rdWeekOfTheMonth,
    #[serde(rename = "4th Week of the Month")]
    Variant4thWeekOfTheMonth,
    #[serde(rename = "5th Week of the Month")]
    Variant5thWeekOfTheMonth,
    #[serde(rename = "1st & 3rd Week of the Month")]
    Variant1stAmpersand3rdWeekOfTheMonth,
    #[serde(rename = "2nd & 4th Week of the Month")]
    Variant2ndAmpersand4thWeekOfTheMonth,
    #[serde(rename = "1st Working Day of Period")]
    Variant1stWorkingDayOfPeriod,
    #[serde(rename = "Last Working Day of Period")]
    LastWorkingDayOfPeriod,
    #[serde(rename = "Monday through Friday")]
    MondayThroughFriday,
    #[serde(rename = "Monday through Saturday")]
    MondayThroughSaturday,
    #[serde(rename = "Monday through Sunday")]
    MondayThroughSunday,
    #[serde(rename = "Monday")]
    Monday,
    #[serde(rename = "Tuesday")]
    Tuesday,
    #[serde(rename = "Wednesday")]
    Wednesday,
    #[serde(rename = "Thursday")]
    Thursday,
    #[serde(rename = "Friday")]
    Friday,
    #[serde(rename = "Saturday")]
    Saturday,
    #[serde(rename = "Sunday")]
    Sunday,
    #[serde(rename = "Monday through Thursday")]
    MondayThroughThursday,
    #[serde(rename = "Immediately")]
    Immediately,
    #[serde(rename = "As Directed")]
    AsDirected,
    #[serde(rename = "Daily Mon. Through Fri.")]
    DailyMonThroughFri,
    #[serde(rename = "1/2 Mon. & 1/2 Tues.")]
    Variant1Slash2MonAmpersand1Slash2Tues,
    #[serde(rename = "1/2 Tues. & 1/2 Thurs.")]
    Variant1Slash2TuesAmpersand1Slash2Thurs,
    #[serde(rename = "1/2 Wed. & 1/2 Fri.")]
    Variant1Slash2WedAmpersand1Slash2Fri,
    #[serde(rename = "Once Anytime Mon. through Fri.")]
    OnceAnytimeMonThroughFri,
    #[serde(rename = "Tuesday through Friday")]
    TuesdayThroughFriday,
    #[serde(rename = "Monday, Tuesday and Thursday")]
    MondayCommaTuesdayAndThursday,
    #[serde(rename = "Monday, Tuesday and Friday")]
    MondayCommaTuesdayAndFriday,
    #[serde(rename = "Wednesday and Thursday")]
    WednesdayAndThursday,
    #[serde(rename = "Monday, Wednesday and Thursday")]
    MondayCommaWednesdayAndThursday,
    #[serde(rename = "Tuesday, Thursday and Friday")]
    TuesdayCommaThursdayAndFriday,
    #[serde(rename = "1/2 Tues. & 1/2 Fri.")]
    Variant1Slash2TuesAmpersand1Slash2Fri,
    #[serde(rename = "1/2 Mon. & 1/2 Wed.")]
    Variant1Slash2MonAmpersand1Slash2Wed,
    #[serde(rename = "1/3 Mon., 1/3 Wed., 1/3 Fri.")]
    Variant1Slash3MonComma1Slash3WedComma1Slash3Fri,
    #[serde(rename = "Whenever Necessary")]
    WheneverNecessary,
    #[serde(rename = "1/2 By Wed. Bal. By Fri.")]
    Variant1Slash2ByWedBalByFri,
    #[serde(rename = "None (Also Used to Cancel or Override a Previous Pattern)")]
    NoneLeftParenthesisAlsoUsedToCancelOrOverrideAPreviousPatternRightParenthesis,
    /// Any value not defined in the spec (payers may return non-compliant values).
    #[serde(untagged)]
    UnknownValue(String),

}

impl std::fmt::Display for DeliveryOrCalendarPatternQualifier {
    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
        match self {
            Self::Variant1stWeekOfTheMonth => write!(f, "1st Week of the Month"),
            Self::Variant2ndWeekOfTheMonth => write!(f, "2nd Week of the Month"),
            Self::Variant3rdWeekOfTheMonth => write!(f, "3rd Week of the Month"),
            Self::Variant4thWeekOfTheMonth => write!(f, "4th Week of the Month"),
            Self::Variant5thWeekOfTheMonth => write!(f, "5th Week of the Month"),
            Self::Variant1stAmpersand3rdWeekOfTheMonth => write!(f, "1st & 3rd Week of the Month"),
            Self::Variant2ndAmpersand4thWeekOfTheMonth => write!(f, "2nd & 4th Week of the Month"),
            Self::Variant1stWorkingDayOfPeriod => write!(f, "1st Working Day of Period"),
            Self::LastWorkingDayOfPeriod => write!(f, "Last Working Day of Period"),
            Self::MondayThroughFriday => write!(f, "Monday through Friday"),
            Self::MondayThroughSaturday => write!(f, "Monday through Saturday"),
            Self::MondayThroughSunday => write!(f, "Monday through Sunday"),
            Self::Monday => write!(f, "Monday"),
            Self::Tuesday => write!(f, "Tuesday"),
            Self::Wednesday => write!(f, "Wednesday"),
            Self::Thursday => write!(f, "Thursday"),
            Self::Friday => write!(f, "Friday"),
            Self::Saturday => write!(f, "Saturday"),
            Self::Sunday => write!(f, "Sunday"),
            Self::MondayThroughThursday => write!(f, "Monday through Thursday"),
            Self::Immediately => write!(f, "Immediately"),
            Self::AsDirected => write!(f, "As Directed"),
            Self::DailyMonThroughFri => write!(f, "Daily Mon. Through Fri."),
            Self::Variant1Slash2MonAmpersand1Slash2Tues => write!(f, "1/2 Mon. & 1/2 Tues."),
            Self::Variant1Slash2TuesAmpersand1Slash2Thurs => write!(f, "1/2 Tues. & 1/2 Thurs."),
            Self::Variant1Slash2WedAmpersand1Slash2Fri => write!(f, "1/2 Wed. & 1/2 Fri."),
            Self::OnceAnytimeMonThroughFri => write!(f, "Once Anytime Mon. through Fri."),
            Self::TuesdayThroughFriday => write!(f, "Tuesday through Friday"),
            Self::MondayCommaTuesdayAndThursday => write!(f, "Monday, Tuesday and Thursday"),
            Self::MondayCommaTuesdayAndFriday => write!(f, "Monday, Tuesday and Friday"),
            Self::WednesdayAndThursday => write!(f, "Wednesday and Thursday"),
            Self::MondayCommaWednesdayAndThursday => write!(f, "Monday, Wednesday and Thursday"),
            Self::TuesdayCommaThursdayAndFriday => write!(f, "Tuesday, Thursday and Friday"),
            Self::Variant1Slash2TuesAmpersand1Slash2Fri => write!(f, "1/2 Tues. & 1/2 Fri."),
            Self::Variant1Slash2MonAmpersand1Slash2Wed => write!(f, "1/2 Mon. & 1/2 Wed."),
            Self::Variant1Slash3MonComma1Slash3WedComma1Slash3Fri => write!(f, "1/3 Mon., 1/3 Wed., 1/3 Fri."),
            Self::WheneverNecessary => write!(f, "Whenever Necessary"),
            Self::Variant1Slash2ByWedBalByFri => write!(f, "1/2 By Wed. Bal. By Fri."),
            Self::NoneLeftParenthesisAlsoUsedToCancelOrOverrideAPreviousPatternRightParenthesis => write!(f, "None (Also Used to Cancel or Override a Previous Pattern)"),
            Self::UnknownValue(s) => write!(f, "{s}"),
        }
    }
}

impl Default for DeliveryOrCalendarPatternQualifier {
    fn default() -> DeliveryOrCalendarPatternQualifier {
        Self::Variant1stWeekOfTheMonth
    }
}