trait-union
This crate provides a macro that generates a trait-union type. That is, a trait object type which can contain any one of a pre-determined set of implementors.
The generated type does not allocate. The size of the type is the size of the largest variant plus some constant overhead.
NOTE: As of rustc 1.47, you must enable the untagged_unions
feature to store
non-Copy types in a trait-union. This will change
soon.
Example
use trait_union;
use Display;
trait_union!
let mut container = new;
assert_eq!;
container = new;
assert_eq!;
container = new;
assert_eq!;
License
This project is licensed under either of
- Apache License, Version 2.0
- MIT License
at your option.