anni-flac 0.2.2

FLAC parser implemented for Project Anni.
Documentation
use std::io::{Read, Write};

pub type Result<I> = std::result::Result<I, crate::error::FlacError>;

pub trait Decode: Sized {
    fn from_reader<R: Read>(reader: &mut R) -> Result<Self>;
}

#[cfg(feature = "async")]
pub(crate) use tokio::io::{AsyncRead, AsyncReadExt};

#[cfg(feature = "async")]
#[async_trait::async_trait]
pub trait AsyncDecode: Sized {
    async fn from_async_reader<R>(reader: &mut R) -> Result<Self>
    where
        R: AsyncRead + Unpin + Send;
}

pub trait Encode: Sized {
    fn write_to<W: Write>(&self, writer: &mut W) -> Result<()>;
}