frunk::monoid

Trait Monoid

Source
pub trait Monoid: Semigroup {
    // Required method
    fn empty() -> Self;
}
Expand description

A Monoid is a Semigroup that has an empty/ zero value

Required Methods§

Source

fn empty() -> Self

For a given Monoid, returns its empty/zero value

§Examples
use frunk::Monoid;

assert_eq!(<i16 as Monoid>::empty(), 0);

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl Monoid for f32

Source§

fn empty() -> Self

Source§

impl Monoid for f64

Source§

fn empty() -> Self

Source§

impl Monoid for i8

Source§

fn empty() -> Self

Source§

impl Monoid for i16

Source§

fn empty() -> Self

Source§

impl Monoid for i32

Source§

fn empty() -> Self

Source§

impl Monoid for i64

Source§

fn empty() -> Self

Source§

impl Monoid for isize

Source§

fn empty() -> Self

Source§

impl Monoid for u8

Source§

fn empty() -> Self

Source§

impl Monoid for u16

Source§

fn empty() -> Self

Source§

impl Monoid for u32

Source§

fn empty() -> Self

Source§

impl Monoid for u64

Source§

fn empty() -> Self

Source§

impl Monoid for usize

Source§

fn empty() -> Self

Source§

impl Monoid for String

Source§

fn empty() -> Self

Source§

impl<A: Monoid> Monoid for (A,)

Source§

fn empty() -> Self

Source§

impl<A: Monoid, B: Monoid> Monoid for (A, B)

Source§

fn empty() -> Self

Source§

impl<A: Monoid, B: Monoid, C: Monoid> Monoid for (A, B, C)

Source§

fn empty() -> Self

Source§

impl<A: Monoid, B: Monoid, C: Monoid, D: Monoid> Monoid for (A, B, C, D)

Source§

fn empty() -> Self

Source§

impl<A: Monoid, B: Monoid, C: Monoid, D: Monoid, E: Monoid> Monoid for (A, B, C, D, E)

Source§

fn empty() -> Self

Source§

impl<A: Monoid, B: Monoid, C: Monoid, D: Monoid, E: Monoid, F: Monoid> Monoid for (A, B, C, D, E, F)

Source§

fn empty() -> Self

Source§

impl<A: Monoid, B: Monoid, C: Monoid, D: Monoid, E: Monoid, F: Monoid, G: Monoid> Monoid for (A, B, C, D, E, F, G)

Source§

fn empty() -> Self

Source§

impl<A: Monoid, B: Monoid, C: Monoid, D: Monoid, E: Monoid, F: Monoid, G: Monoid, H: Monoid> Monoid for (A, B, C, D, E, F, G, H)

Source§

fn empty() -> Self

Source§

impl<A: Monoid, B: Monoid, C: Monoid, D: Monoid, E: Monoid, F: Monoid, G: Monoid, H: Monoid, I: Monoid> Monoid for (A, B, C, D, E, F, G, H, I)

Source§

fn empty() -> Self

Source§

impl<A: Monoid, B: Monoid, C: Monoid, D: Monoid, E: Monoid, F: Monoid, G: Monoid, H: Monoid, I: Monoid, J: Monoid> Monoid for (A, B, C, D, E, F, G, H, I, J)

Source§

fn empty() -> Self

Source§

impl<A: Monoid, B: Monoid, C: Monoid, D: Monoid, E: Monoid, F: Monoid, G: Monoid, H: Monoid, I: Monoid, J: Monoid, K: Monoid> Monoid for (A, B, C, D, E, F, G, H, I, J, K)

Source§

fn empty() -> Self

Source§

impl<A: Monoid, B: Monoid, C: Monoid, D: Monoid, E: Monoid, F: Monoid, G: Monoid, H: Monoid, I: Monoid, J: Monoid, K: Monoid, L: Monoid> Monoid for (A, B, C, D, E, F, G, H, I, J, K, L)

Source§

fn empty() -> Self

Source§

impl<A: Monoid, B: Monoid, C: Monoid, D: Monoid, E: Monoid, F: Monoid, G: Monoid, H: Monoid, I: Monoid, J: Monoid, K: Monoid, L: Monoid, M: Monoid> Monoid for (A, B, C, D, E, F, G, H, I, J, K, L, M)

Source§

fn empty() -> Self

Source§

impl<A: Monoid, B: Monoid, C: Monoid, D: Monoid, E: Monoid, F: Monoid, G: Monoid, H: Monoid, I: Monoid, J: Monoid, K: Monoid, L: Monoid, M: Monoid, N: Monoid> Monoid for (A, B, C, D, E, F, G, H, I, J, K, L, M, N)

Source§

fn empty() -> Self

Source§

impl<A: Monoid, B: Monoid, C: Monoid, D: Monoid, E: Monoid, F: Monoid, G: Monoid, H: Monoid, I: Monoid, J: Monoid, K: Monoid, L: Monoid, M: Monoid, N: Monoid, O: Monoid> Monoid for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O)

Source§

fn empty() -> Self

Source§

impl<A: Monoid, B: Monoid, C: Monoid, D: Monoid, E: Monoid, F: Monoid, G: Monoid, H: Monoid, I: Monoid, J: Monoid, K: Monoid, L: Monoid, M: Monoid, N: Monoid, O: Monoid, P: Monoid> Monoid for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P)

Source§

fn empty() -> Self

Source§

impl<A: Monoid, B: Monoid, C: Monoid, D: Monoid, E: Monoid, F: Monoid, G: Monoid, H: Monoid, I: Monoid, J: Monoid, K: Monoid, L: Monoid, M: Monoid, N: Monoid, O: Monoid, P: Monoid, Q: Monoid> Monoid for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q)

Source§

fn empty() -> Self

Source§

impl<A: Monoid, B: Monoid, C: Monoid, D: Monoid, E: Monoid, F: Monoid, G: Monoid, H: Monoid, I: Monoid, J: Monoid, K: Monoid, L: Monoid, M: Monoid, N: Monoid, O: Monoid, P: Monoid, Q: Monoid, R: Monoid> Monoid for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R)

Source§

fn empty() -> Self

Source§

impl<A: Monoid, B: Monoid, C: Monoid, D: Monoid, E: Monoid, F: Monoid, G: Monoid, H: Monoid, I: Monoid, J: Monoid, K: Monoid, L: Monoid, M: Monoid, N: Monoid, O: Monoid, P: Monoid, Q: Monoid, R: Monoid, S: Monoid> Monoid for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S)

Source§

fn empty() -> Self

Source§

impl<A: Monoid, B: Monoid, C: Monoid, D: Monoid, E: Monoid, F: Monoid, G: Monoid, H: Monoid, I: Monoid, J: Monoid, K: Monoid, L: Monoid, M: Monoid, N: Monoid, O: Monoid, P: Monoid, Q: Monoid, R: Monoid, S: Monoid, T: Monoid> Monoid for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T)

Source§

fn empty() -> Self

Source§

impl<A: Monoid, B: Monoid, C: Monoid, D: Monoid, E: Monoid, F: Monoid, G: Monoid, H: Monoid, I: Monoid, J: Monoid, K: Monoid, L: Monoid, M: Monoid, N: Monoid, O: Monoid, P: Monoid, Q: Monoid, R: Monoid, S: Monoid, T: Monoid, U: Monoid> Monoid for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U)

Source§

fn empty() -> Self

Source§

impl<T> Monoid for Option<T>
where T: Semigroup + Clone,

Source§

fn empty() -> Self

Source§

impl<T> Monoid for Vec<T>
where T: Clone,

Source§

fn empty() -> Self

Implementors§