gesha-rust-types 0.0.7

Rust types for Gesha proejct
Documentation
use crate::TypeIdentifier;
use gesha_core::conversions::Result;
use std::fmt::{Display, Formatter};

#[derive(Clone, Debug, Hash, Eq, PartialEq)]
pub struct EnumVariantName(TypeIdentifier);

impl EnumVariantName {
    pub fn new<A: AsRef<str>>(x: A) -> Result<Self> {
        let identifier = TypeIdentifier::parse(x)?;
        Ok(Self(identifier))
    }
    pub fn as_str(&self) -> &str {
        self.0.as_ref()
    }
}

impl Display for EnumVariantName {
    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
        Display::fmt(&self.0, f)
    }
}

impl From<EnumVariantName> for String {
    fn from(this: EnumVariantName) -> Self {
        String::from(this.0)
    }
}