sharkyflac 0.1.0

A pure rust FLAC decoder and encoder
Documentation
#[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)
    }
}