re_components 0.9.0-alpha.1

The standard rerun data types, component types, and archetypes
Documentation
use arrow2_convert::{ArrowDeserialize, ArrowField, ArrowSerialize};

/// A String label component
#[derive(Debug, Clone, PartialEq, Eq, ArrowField, ArrowSerialize, ArrowDeserialize)]
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
#[arrow_field(transparent)]
pub struct LegacyLabel(pub String);

impl From<LegacyLabel> for re_types::components::Label {
    fn from(val: LegacyLabel) -> Self {
        re_types::components::Label(val.0)
    }
}

impl From<re_types::components::Label> for LegacyLabel {
    fn from(value: re_types::components::Label) -> Self {
        Self(value.0)
    }
}

impl LegacyLabel {
    #[inline]
    pub fn as_str(&self) -> &str {
        self.0.as_str()
    }
}

impl re_log_types::LegacyComponent for LegacyLabel {
    #[inline]
    fn legacy_name() -> re_log_types::ComponentName {
        "rerun.label".into()
    }
}

impl From<&str> for LegacyLabel {
    #[inline]
    fn from(value: &str) -> Self {
        Self(value.into())
    }
}

impl From<String> for LegacyLabel {
    #[inline]
    fn from(value: String) -> Self {
        Self(value)
    }
}

impl From<LegacyLabel> for String {
    #[inline]
    fn from(value: LegacyLabel) -> Self {
        value.0
    }
}

impl AsRef<str> for LegacyLabel {
    #[inline]
    fn as_ref(&self) -> &str {
        self.as_str()
    }
}

impl std::borrow::Borrow<str> for LegacyLabel {
    #[inline]
    fn borrow(&self) -> &str {
        self.as_str()
    }
}

impl std::ops::Deref for LegacyLabel {
    type Target = str;
    #[inline]
    fn deref(&self) -> &str {
        self.as_str()
    }
}

re_log_types::component_legacy_shim!(LegacyLabel);