Macro alga::impl_semigroup [] [src]

macro_rules! impl_semigroup {
    (<$M:ty> for $($T:tt)+) => { ... };
}

Implements the semigroup trait for types provded.

Examples

#[derive(PartialEq, Clone)]
struct Wrapper<T>(T);

impl<T: AbstractMagma<Additive>> AbstractMagma<Additive> for Wrapper<T> {
    fn operate(&self, right: &Self) -> Self {
        Wrapper(self.0.operate(&right.0))
    }
}

impl_semigroup!(<Additive> for Wrapper<T> where T: AbstractSemigroup<Additive>);