hermes_encoding_components/impls/
convert.rs

1use cgp::core::error::{CanRaiseError, HasErrorType};
2
3use crate::traits::convert::Converter;
4
5pub struct TryConvertFrom;
6
7impl<Encoding, From, To> Converter<Encoding, From, To> for TryConvertFrom
8where
9    Encoding: CanRaiseError<From::Error>,
10    From: Clone + TryInto<To>,
11{
12    fn convert(_encoding: &Encoding, from: &From) -> Result<To, Encoding::Error> {
13        from.clone().try_into().map_err(Encoding::raise_error)
14    }
15}
16
17pub struct ConvertFrom;
18
19impl<Encoding, From, To> Converter<Encoding, From, To> for ConvertFrom
20where
21    Encoding: HasErrorType,
22    From: Clone + Into<To>,
23{
24    fn convert(_encoding: &Encoding, from: &From) -> Result<To, Encoding::Error> {
25        Ok(from.clone().into())
26    }
27}