Transitive converions through derive macros for Rust.
Assume you have types A
, B
and C
with the following, already implemented, conversions:
- A -> B
- B -> C
Sometimes it might be desirable to have an A -> C
implementation which could easily be represented as A -> B -> C
.
That is precisely what this crate does. Through the Transitive
derive macro, it will implement From
or TryFrom
respectively
for converting from/to the derived type and a target type, given a path of transitions to go through.
```rust use transitive::Transitive;
struct A;
struct B; struct C; struct D;
impl From for B { fn from(val: A) -> Self { Self } };
impl From for C { fn from(val: B) -> Self { Self } };
impl From
fn into() { D::from(A); D::from(B); } ```
More examples and explanations can be found in the documentation.
Licensed under MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT).
Contributions to this repository, unless explicitly stated otherwise, will be considered licensed under MIT. Bugs/issues encountered can be opened here