use super::Encoder;
use super::write::Writer;
use crate::config::Config;
use crate::error_path::BincodeErrorPathCovered;
use crate::utils::Sealed;
impl<W: Writer, C: Config> BincodeErrorPathCovered<1> for EncoderImpl<W, C> {}
pub struct EncoderImpl<W: Writer, C: Config> {
writer: W,
config: C,
}
impl<W: Writer, C: Config> EncoderImpl<W, C> {
pub const fn new(
writer: W,
config: C,
) -> Self {
Self { writer, config }
}
#[inline(always)]
pub fn into_writer(self) -> W {
self.writer
}
}
impl<W: Writer, C: Config> Encoder for EncoderImpl<W, C> {
type C = C;
type W = W;
#[inline(always)]
fn writer(&mut self) -> &mut Self::W {
&mut self.writer
}
#[inline(always)]
fn config(&self) -> &Self::C {
&self.config
}
}
impl<W: Writer, C: Config> Sealed for EncoderImpl<W, C> {}