Trait strymon_communication::rpc::Name
[−]
[src]
pub trait Name: Send + Sized + 'static { type Discriminant: Serialize + DeserializeOwned + 'static; fn discriminant(&self) -> Self::Discriminant; fn from_discriminant(_: &Self::Discriminant) -> Option<Self>; }
A trait to distinguish remote procedure calls.
Examples
use strymon_communication::rpc::Name; #[derive(Clone, Copy)] #[repr(u8)] pub enum MyRPC { UselessCall = 1, } impl Name for MyRPC { type Discriminant = u8; fn discriminant(&self) -> Self::Discriminant { *self as Self::Discriminant } fn from_discriminant(value: &Self::Discriminant) -> Option<Self> { match *value { 1 => Some(MyRPC::UselessCall), _ => None, } } }
Associated Types
type Discriminant: Serialize + DeserializeOwned + 'static
The discriminant type representing Self
.
Required Methods
fn discriminant(&self) -> Self::Discriminant
Convert Self
into a discriminant.
fn from_discriminant(_: &Self::Discriminant) -> Option<Self>
Restore Self
from a discriminant. Returns None
if Self
cannot be restored.