imdl 0.1.16

📦 A 40' shipping container for the internet
Documentation
use super::*;

#[derive(Debug, Eq, Hash, PartialEq)]
pub(crate) enum Id {
  Handshake,
  UtMetadata,
  NotImplemented(u8),
}

impl From<Id> for String {
  fn from(i: Id) -> Self {
    match i {
      Id::Handshake => "handshake".to_string(),
      Id::UtMetadata => "ut_metadata".to_string(),
      Id::NotImplemented(_) => "not supported".to_string(),
    }
  }
}

impl From<u8> for Id {
  fn from(ins: u8) -> Self {
    match ins {
      0x00 => Id::Handshake,
      0x01 => Id::UtMetadata,
      _ => Id::NotImplemented(ins),
    }
  }
}

impl From<Id> for u8 {
  fn from(ins: Id) -> Self {
    match ins {
      Id::Handshake => 0x00,
      Id::UtMetadata => 0x01,
      Id::NotImplemented(n) => n,
    }
  }
}