pub trait Convert<A: Clone, B: Clone> {
    fn convert(value: A) -> Result<B, A> { ... }
    fn convert_ref(value: impl Borrow<A>) -> Result<B, ()> { ... }
    fn reverse(value: B) -> Result<A, B> { ... }
    fn reverse_ref(value: impl Borrow<B>) -> Result<A, ()> { ... }
}
Expand description

Generic third-party conversion trait. Use this when you don’t want to force the user to use default implementations of From and Into for the types you wish to convert between.

One of convert/convert_ref and reverse/reverse_ref MUST be implemented. If possible, implement convert_ref, since this will never result in a clone. Use convert when you definitely need to consume the source value.

Can be amalgamated into tuples. If any of the tuple elements converts into Ok(_) it short circuits. Otherwise returns the Err(_) of the last failing conversion (or Err(()) for ref conversions).

Provided Methods§

Convert from value (of type A) into an equivalent value of type B, Err if not possible.

Convert from value (of type B) into an equivalent value of type A, Err if not possible.

Implementations on Foreign Types§

Implementors§