extension-trait

A macro to declare extension traits - a trait that is created to add methods to an external type.

Example

```rust

[macro_use]

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! { pub SliceMapExt for [T] { fn mapin_place T>(&mut self, mut f: F) { for v in self { v = f(v); } } } }

fn main() { let mut values = [1, 2, 3]; values.mapinplace(|x| x + 1); assert_eq!(values, [2, 3, 4]); } ```