Macro alga::impl_group
[−]
[src]
macro_rules! impl_group { (<$M:ty> for $($T:tt)+) => { ... }; }
Implements the group trait for types provided.
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<T: Inverse<Additive>> Inverse<Additive> for Wrapper<T> { fn inverse(&self) -> Self { Wrapper(self.0.inverse()) } } impl<T: Identity<Additive>> Identity<Additive> for Wrapper<T> { fn identity() -> Self { Wrapper(T::identity()) } } impl_group!(<Additive> for Wrapper<T> where T: AbstractGroup<Additive>);