#inherit

macro inherits

Improved Practices for the Composition Pattern in Rust

3 releases

new 0.1.2 Mar 28, 2025
0.1.1 Mar 28, 2025
0.1.0 Mar 7, 2025

#570 in Procedural macros

Download history 118/week @ 2025-03-07 3/week @ 2025-03-14

121 downloads per month

MIT license

3KB

#[inherits(Type)]

This attribute macro achieves inheritance-like effects through the Deref and DerefMut traits, simplifying the application of the composition pattern in Rust.

A struct annotated with #[inherit(T)] will implicitly contain a parent field of type T, enabling single inheritance behavior.

For disambiguated access to fields with the same name, use (&<name> as &<type>).<field> or (&mut <name> as &mut <type>).<field> syntax.

Dependencies

~200–630KB
~15K SLoC