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

The discriminant type representing Self.

Required Methods

Convert Self into a discriminant.

Restore Self from a discriminant. Returns None if Self cannot be restored.

Implementors