easy-ext
An attribute macro for easily writing extension trait pattern.
Usage
Add this to your Cargo.toml
:
[]
= "0.2"
The current easy-ext requires Rust 1.31 or later.
Examples
use ext;
Code like this will be generated:
You can elide the trait name. Note that in this case, #[ext]
assigns a random name, so you cannot import/export the generated trait.
use ext;
Visibility
The visibility of the generated extension trait inherits the visibility of the item in the original impl
.
For example, if the method is pub
then the trait will also be pub
:
use ext;
// generate `pub trait ResultExt`
See documentation for more details.
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.