Supertrait enables default associated types and const fn trait items in stable Rust
Support macros for supertrait
Procedural macro to generate permutations of supertraits based on cfg flags.
Inherit and derive object-unsafe traits for dynamic Rust.
Cast between trait objects using only safe Rust.
Cast between trait objects using only safe Rust.
Geospatial contract interface — Props, traits, and types for GIS domain boundaries
One pointer wide trait objects which are also FFI safe, allowing traits to be passed to/from and implemented by C ABI code
Simple trait for helping along upcasting of dyn supertraits. ``` pub trait A {} pub trait B: A + Upcast<dyn A> {} // Put this in your library impl<'a, T: A + 'a> UpcastFrom<T> for dyn A + 'a { fn up_from(value: &T) -> &(dyn A + 'a) { value } fn up_from_mut(value: &mut T) -> &mut (dyn A + 'a) { value } } // Now your users can do an upcast if needed, or you can within implementations fn do_cast(b: &dyn B) -> &dyn A { b.up() } ```
Opaque types for traits using static dispatch
trait objects with variable associated types
Database contract interface — Props, traits, and typestate for SQL domain boundaries