use libyaml_sys as sys;
#[derive(Copy, Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
#[repr(u8)]
pub enum ScalarStyle {
Plain = sys::YAML_PLAIN_SCALAR_STYLE as _,
SingleQuoted = sys::YAML_SINGLE_QUOTED_SCALAR_STYLE as _,
DoubleQuoted = sys::YAML_DOUBLE_QUOTED_SCALAR_STYLE as _,
Literal = sys::YAML_LITERAL_SCALAR_STYLE as _,
Folded = sys::YAML_FOLDED_SCALAR_STYLE as _,
}
impl ScalarStyle {
pub fn from_raw(raw: sys::yaml_scalar_style_t) -> Option<Self> {
match raw {
sys::YAML_PLAIN_SCALAR_STYLE => Some(Self::Plain),
sys::YAML_SINGLE_QUOTED_SCALAR_STYLE => Some(Self::SingleQuoted),
sys::YAML_DOUBLE_QUOTED_SCALAR_STYLE => Some(Self::DoubleQuoted),
sys::YAML_LITERAL_SCALAR_STYLE => Some(Self::Literal),
sys::YAML_FOLDED_SCALAR_STYLE => Some(Self::Folded),
_ => None,
}
}
pub fn into_raw(self) -> sys::yaml_scalar_style_t {
self as _
}
pub fn option_into_raw(value: Option<Self>) -> sys::yaml_scalar_style_t {
value.map_or(sys::YAML_ANY_SCALAR_STYLE, Self::into_raw)
}
}