use crate::sys;
#[derive(Copy, Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
#[repr(u8)]
pub enum Encoding {
Utf8 = sys::YAML_UTF8_ENCODING as _,
Utf16Le = sys::YAML_UTF16LE_ENCODING as _,
Utf16Be = sys::YAML_UTF16BE_ENCODING as _,
}
impl Encoding {
pub fn from_raw(raw: sys::yaml_encoding_t) -> Option<Self> {
match raw {
sys::YAML_UTF8_ENCODING => Some(Self::Utf8),
sys::YAML_UTF16LE_ENCODING => Some(Self::Utf16Le),
sys::YAML_UTF16BE_ENCODING => Some(Self::Utf16Be),
_ => None,
}
}
pub fn into_raw(self) -> sys::yaml_encoding_t {
match self {
Self::Utf8 => sys::YAML_UTF8_ENCODING,
Self::Utf16Le => sys::YAML_UTF16LE_ENCODING,
Self::Utf16Be => sys::YAML_UTF16BE_ENCODING,
}
}
pub fn option_into_raw(value: Option<Self>) -> sys::yaml_encoding_t {
value.map_or(sys::YAML_ANY_ENCODING, Self::into_raw)
}
}