Trait evelyn::Discriminant[][src]

pub trait Discriminant<M> where
    Self: PartialEq + Debug
{ }

A trait that describes a value that message variants can be compared by

Examples

use evelyn::Message
use evelyn::Discriminant
// For enums Discriminant trait is implemented for `std::mem::Discriminant`
enum TestMessage {
   A,
   B,
}
impl Message for TestMessage {
    type Discriminant = std::mem::Discriminant<Self>;
    fn discriminant(&self) -> Self::Discriminant {
        std::mem::discriminant(self)
    }
}
// Example implementation for strings using first 5 characters as discriminant
impl Message for String {
    type Discriminant = [char; 5];
    fn discriminant(&self) -> Self::Discriminant {
        self.chars.take(5).collect()
    }
}

Implementations on Foreign Types

impl<T> Discriminant<T> for Discriminant<T>[src]

impl Discriminant<String> for [char; 5][src]

Loading content...

Implementors

Loading content...