#[macro_use]
pub mod num;
pub mod ascii_str;
pub mod bit_reader;
pub mod bits;
pub mod coded_number;
pub mod decode;
pub mod frame;
pub mod metadata;
pub mod subframe;
use std::io::{Read, Seek};
use crate::bit_reader::BitReader;
pub use decode::Flac;
pub const MAGIC: [u8; 4] = *b"fLaC";
pub trait Parse<Opt = ()>: Sized {
type Error;
fn parse_from_reader<R: Read + Seek>(
reader: &mut BitReader<R>,
_opt: Opt,
) -> Result<Self, Self::Error>;
#[inline]
fn parse_bytes(bytes: &[u8], opt: Opt) -> Result<Self, Self::Error> {
let mut reader = bit_reader::BitReader::new(std::io::Cursor::new(bytes));
Self::parse_from_reader(&mut reader, opt)
}
}