pub trait Discriminant<M>{ }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.