pub trait Converter<'a, Input>where
    Input: Stream,{
    type InputInner: Stream + 'a;
    // Required methods
    fn convert(
        &mut self,
        input: &'a mut Input,
    ) -> Result<Self::InputInner, Input::Error>;
    fn convert_error(
        &mut self,
        input: &'a mut Input,
        error: <Self::InputInner as StreamOnce>::Error,
    ) -> Input::Error;
}