[][src]Trait frunk::semigroup::Semigroup

pub trait Semigroup {
    fn combine(&self, other: &Self) -> Self;
}

A Semigroup is a class of thing that has a definable combine operation

Required methods

fn combine(&self, other: &Self) -> Self

Associative operation taking which combines two values.

Examples

use frunk::Semigroup;

assert_eq!(Some(1).combine(&Some(2)), Some(3))Run
Loading content...

Implementations on Foreign Types

impl Semigroup for i8[src]

impl Semigroup for i16[src]

impl Semigroup for i32[src]

impl Semigroup for i64[src]

impl Semigroup for u8[src]

impl Semigroup for u16[src]

impl Semigroup for u32[src]

impl Semigroup for u64[src]

impl Semigroup for isize[src]

impl Semigroup for usize[src]

impl Semigroup for f32[src]

impl Semigroup for f64[src]

impl<T> Semigroup for Option<T> where
    T: Semigroup + Clone
[src]

impl<T: Semigroup> Semigroup for Box<T>[src]

impl Semigroup for String[src]

impl<T: Clone> Semigroup for Vec<T>[src]

impl<T> Semigroup for Cell<T> where
    T: Semigroup + Copy
[src]

impl<T: Semigroup> Semigroup for RefCell<T>[src]

impl<T> Semigroup for HashSet<T> where
    T: Eq + Hash + Clone
[src]

impl<K, V> Semigroup for HashMap<K, V> where
    K: Eq + Hash + Clone,
    V: Semigroup + Clone
[src]

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

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

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

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

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

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

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

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

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

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

impl<A: Semigroup, B: Semigroup, C: Semigroup, D: Semigroup, E: Semigroup, F: Semigroup, G: Semigroup, H: Semigroup, I: Semigroup, J: Semigroup, K: Semigroup> Semigroup for (A, B, C, D, E, F, G, H, I, J, K)[src]

impl<A: Semigroup, B: Semigroup, C: Semigroup, D: Semigroup, E: Semigroup, F: Semigroup, G: Semigroup, H: Semigroup, I: Semigroup, J: Semigroup> Semigroup for (A, B, C, D, E, F, G, H, I, J)[src]

impl<A: Semigroup, B: Semigroup, C: Semigroup, D: Semigroup, E: Semigroup, F: Semigroup, G: Semigroup, H: Semigroup, I: Semigroup> Semigroup for (A, B, C, D, E, F, G, H, I)[src]

impl<A: Semigroup, B: Semigroup, C: Semigroup, D: Semigroup, E: Semigroup, F: Semigroup, G: Semigroup, H: Semigroup> Semigroup for (A, B, C, D, E, F, G, H)[src]

impl<A: Semigroup, B: Semigroup, C: Semigroup, D: Semigroup, E: Semigroup, F: Semigroup, G: Semigroup> Semigroup for (A, B, C, D, E, F, G)[src]

impl<A: Semigroup, B: Semigroup, C: Semigroup, D: Semigroup, E: Semigroup, F: Semigroup> Semigroup for (A, B, C, D, E, F)[src]

impl<A: Semigroup, B: Semigroup, C: Semigroup, D: Semigroup, E: Semigroup> Semigroup for (A, B, C, D, E)[src]

impl<A: Semigroup, B: Semigroup, C: Semigroup, D: Semigroup> Semigroup for (A, B, C, D)[src]

impl<A: Semigroup, B: Semigroup, C: Semigroup> Semigroup for (A, B, C)[src]

impl<A: Semigroup, B: Semigroup> Semigroup for (A, B)[src]

impl<A: Semigroup> Semigroup for (A,)[src]

Loading content...

Implementors

impl Semigroup for HNil[src]

Since () + () = (), the same is true for HNil

impl Semigroup for All<bool>[src]

impl Semigroup for All<i16>[src]

impl Semigroup for All<i32>[src]

impl Semigroup for All<i64>[src]

impl Semigroup for All<i8>[src]

impl Semigroup for All<isize>[src]

impl Semigroup for All<u16>[src]

impl Semigroup for All<u32>[src]

impl Semigroup for All<u64>[src]

impl Semigroup for All<u8>[src]

impl Semigroup for All<usize>[src]

impl Semigroup for Any<bool>[src]

impl Semigroup for Any<i16>[src]

impl Semigroup for Any<i32>[src]

impl Semigroup for Any<i64>[src]

impl Semigroup for Any<i8>[src]

impl Semigroup for Any<isize>[src]

impl Semigroup for Any<u16>[src]

impl Semigroup for Any<u32>[src]

impl Semigroup for Any<u64>[src]

impl Semigroup for Any<u8>[src]

impl Semigroup for Any<usize>[src]

impl Semigroup for Product<f32>[src]

impl Semigroup for Product<f64>[src]

impl Semigroup for Product<i16>[src]

impl Semigroup for Product<i32>[src]

impl Semigroup for Product<i64>[src]

impl Semigroup for Product<i8>[src]

impl Semigroup for Product<isize>[src]

impl Semigroup for Product<u16>[src]

impl Semigroup for Product<u32>[src]

impl Semigroup for Product<u64>[src]

impl Semigroup for Product<u8>[src]

impl Semigroup for Product<usize>[src]

impl<H: Semigroup, T: HList + Semigroup> Semigroup for HCons<H, T>[src]

Allow the combination of any two HLists having the same structure if all of the sub-element types are also Semiups

impl<T> Semigroup for Max<T> where
    T: Ord + Clone
[src]

impl<T> Semigroup for Min<T> where
    T: Ord + Clone
[src]

Loading content...