azure_storage_queue 0.5.0

Microsoft Azure Queue client library for Rust
Documentation
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
//
// Code generated by Microsoft (R) Rust Code Generator. DO NOT EDIT.

use super::{GeoReplicationStatus, ListQueuesIncludeType};
use azure_core::error::{Error, ErrorKind};
use std::{
    convert::{AsRef, From, Infallible},
    fmt::{Display, Formatter},
    str::FromStr,
};

impl<'a> From<&'a GeoReplicationStatus> for &'a str {
    fn from(e: &'a GeoReplicationStatus) -> Self {
        match e {
            GeoReplicationStatus::Bootstrap => "bootstrap",
            GeoReplicationStatus::Live => "live",
            GeoReplicationStatus::Unavailable => "unavailable",
            GeoReplicationStatus::UnknownValue(s) => s.as_ref(),
        }
    }
}

impl FromStr for GeoReplicationStatus {
    type Err = Infallible;
    fn from_str(s: &str) -> ::core::result::Result<Self, <Self as FromStr>::Err> {
        Ok(match s {
            "bootstrap" => GeoReplicationStatus::Bootstrap,
            "live" => GeoReplicationStatus::Live,
            "unavailable" => GeoReplicationStatus::Unavailable,
            _ => GeoReplicationStatus::UnknownValue(s.to_string()),
        })
    }
}

impl AsRef<str> for GeoReplicationStatus {
    fn as_ref(&self) -> &str {
        match self {
            GeoReplicationStatus::Bootstrap => "bootstrap",
            GeoReplicationStatus::Live => "live",
            GeoReplicationStatus::Unavailable => "unavailable",
            GeoReplicationStatus::UnknownValue(s) => s.as_str(),
        }
    }
}

impl Display for GeoReplicationStatus {
    fn fmt(&self, f: &mut Formatter<'_>) -> ::std::fmt::Result {
        match self {
            GeoReplicationStatus::Bootstrap => f.write_str("bootstrap"),
            GeoReplicationStatus::Live => f.write_str("live"),
            GeoReplicationStatus::Unavailable => f.write_str("unavailable"),
            GeoReplicationStatus::UnknownValue(s) => f.write_str(s.as_str()),
        }
    }
}

impl FromStr for ListQueuesIncludeType {
    type Err = Error;
    fn from_str(s: &str) -> ::core::result::Result<Self, <Self as FromStr>::Err> {
        Ok(match s {
            "metadata" => ListQueuesIncludeType::Metadata,
            _ => {
                return Err(Error::with_message_fn(ErrorKind::DataConversion, || {
                    format!("unknown variant of ListQueuesIncludeType found: \"{s}\"")
                }))
            }
        })
    }
}

impl AsRef<str> for ListQueuesIncludeType {
    fn as_ref(&self) -> &str {
        match self {
            ListQueuesIncludeType::Metadata => "metadata",
        }
    }
}

impl Display for ListQueuesIncludeType {
    fn fmt(&self, f: &mut Formatter<'_>) -> ::std::fmt::Result {
        match self {
            ListQueuesIncludeType::Metadata => Display::fmt("metadata", f),
        }
    }
}