#![forbid(unsafe_code)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct FourCc(pub [u8; 4]);
impl FourCc {
#[must_use]
pub const fn new(tag: [u8; 4]) -> Self {
Self(tag)
}
#[must_use]
pub const fn as_u32(self) -> u32 {
u32::from_be_bytes(self.0)
}
}
impl PartialEq<[u8; 4]> for FourCc {
fn eq(&self, other: &[u8; 4]) -> bool {
&self.0 == other
}
}
pub mod tag {
use super::FourCc;
pub const FTYP: FourCc = FourCc(*b"ftyp");
pub const MOOV: FourCc = FourCc(*b"moov");
pub const TRAK: FourCc = FourCc(*b"trak");
pub const MDIA: FourCc = FourCc(*b"mdia");
pub const MINF: FourCc = FourCc(*b"minf");
pub const STBL: FourCc = FourCc(*b"stbl");
pub const STSD: FourCc = FourCc(*b"stsd");
pub const MOOF: FourCc = FourCc(*b"moof");
pub const TRAF: FourCc = FourCc(*b"traf");
pub const MDAT: FourCc = FourCc(*b"mdat");
pub const MFHD: FourCc = FourCc(*b"mfhd");
pub const TFHD: FourCc = FourCc(*b"tfhd");
pub const TFDT: FourCc = FourCc(*b"tfdt");
pub const TRUN: FourCc = FourCc(*b"trun");
pub const MVHD: FourCc = FourCc(*b"mvhd");
pub const TKHD: FourCc = FourCc(*b"tkhd");
pub const MDHD: FourCc = FourCc(*b"mdhd");
pub const HDLR: FourCc = FourCc(*b"hdlr");
pub const VMHD: FourCc = FourCc(*b"vmhd");
pub const SMHD: FourCc = FourCc(*b"smhd");
pub const DINF: FourCc = FourCc(*b"dinf");
pub const DREF: FourCc = FourCc(*b"dref");
pub const URL: FourCc = FourCc(*b"url ");
pub const MVEX: FourCc = FourCc(*b"mvex");
pub const TREX: FourCc = FourCc(*b"trex");
pub const EDTS: FourCc = FourCc(*b"edts");
pub const ELST: FourCc = FourCc(*b"elst");
pub const AVC1: FourCc = FourCc(*b"avc1");
pub const AVCC: FourCc = FourCc(*b"avcC");
pub const MP4A: FourCc = FourCc(*b"mp4a");
pub const ESDS: FourCc = FourCc(*b"esds");
pub const VP09: FourCc = FourCc(*b"vp09");
pub const VPCC: FourCc = FourCc(*b"vpcC");
pub const HVC1: FourCc = FourCc(*b"hvc1");
pub const HVCC: FourCc = FourCc(*b"hvcC");
pub const AV01: FourCc = FourCc(*b"av01");
pub const AV1C: FourCc = FourCc(*b"av1C");
}