A macro to declare extension traits - a trait that is created to add methods to an external type.
```rust
extern crate extension_trait;
extension_trait! { pub DoubleExt for str { fn double(&self) -> String { self.repeat(2) } } }
fn main() { assert_eq!("Hello".double(), "HelloHello"); } ```
It's also possible to use generic types.
```rust
extensiontrait! {
fn main() { let mut values = [1, 2, 3]; values.mapinplace(|x| x + 1); assert_eq!(values, [2, 3, 4]); } ```