//! Semiring
use super::{MonoidAdd, MonoidMul};
/// Semiring
///
///<https://en.wikipedia.org/wiki/Semiring>
pub trait Semiring: MonoidAdd + MonoidMul {}
macro_rules! impl_semiring
{
($($t:ty),*) =>
{
$(
impl Semiring for $t
{
}
)*
};
}
impl_semiring!(u8, u16, u32, u64, u128, i8, i16, i32, i64, i128, f32, f64);