Discriminant

Trait Discriminant 

Source
pub trait Discriminant<M>
where Self: PartialEq + Debug,
{ }
Expand description

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()
    }
}

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 Discriminant<String> for [char; 5]

Source§

impl<T> Discriminant<T> for Discriminant<T>

Implementors§