use tokio_util::codec::Encoder;
use super::{EncodeError, PartEncoder};
use crate::request::{PartBody, PartNumber};
#[derive(Debug, Clone, Copy, Default)]
pub struct FramedEncoder<E> {
encoder: E,
}
impl<E> FramedEncoder<E> {
pub fn new(encoder: E) -> FramedEncoder<E> {
Self { encoder }
}
}
impl<E, Item> PartEncoder<Item> for FramedEncoder<E>
where
E: Encoder<Item>,
E::Error: EncodeError,
{
type Error = E::Error;
fn encode(
&mut self,
part: &mut PartBody,
_part_number: PartNumber,
item: Item,
) -> Result<(), Self::Error> {
self.encoder.encode(item, part)
}
}