hermes_encoding_components/impls/
convert.rs1use 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}