use std::fmt;
use std::fmt::{Debug, Display, Formatter};
pub use as_enum::DrmFormat;
mod as_enum;
mod consts;
impl DrmFormat {
pub fn string_form(&self) -> String {
String::from_utf8((*self as u32).to_le_bytes().to_vec()).expect("Fourcc must be ascii")
}
}
impl Debug for DrmFormat {
fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
write!(f, "DrmFormat({})", self.string_form())
}
}
impl Display for DrmFormat {
fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
write!(f, "DrmFormat({})", self.string_form())
}
}
#[cfg(test)]
pub mod tests {
use super::*;
#[test]
fn a_specific_var_has_correct_value() {
assert_eq!(consts::DRM_FOURCC_AYUV, 1448433985);
}
#[test]
fn enum_member_casts_to_const() {
assert_eq!(
DrmFormat::Xrgb8888 as u32,
consts::DRM_FOURCC_XRGB8888 as u32
);
}
#[test]
fn enum_member_has_correct_string_format() {
assert_eq!(DrmFormat::Xrgb8888.string_form(), "XR24");
}
}