[−][src]Attribute Macro inherent_pub::inherent_pub
#[inherent_pub]
Make pub
methods in the annotated impl Trait for Type
block into
inherited methods, which can be used without having to import the trait.
mod module { pub trait Foo { fn foo(self); fn bar(self); } pub struct Bar; #[inherent_pub] impl Foo for Bar { // `foo` becomes an inherent method. pub fn foo(self) {} // `bar` is not an inherent method (not `pub`) fn bar(self) {} } } fn main() { // We didn't `use foo:Foo`, but we can still use `Bar.foo()`: module::Bar.foo(); // This does not compile: // bar::Bar.bar(); { // We need to import the trait in order to use `Bar.bar()`: use module::Foo; module::Bar.bar(); } }