Skip to content

Instantly share code, notes, and snippets.

@shymega
Created November 19, 2020 14:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save shymega/e429e7c300ca59a33fc45846834e0339 to your computer and use it in GitHub Desktop.
Save shymega/e429e7c300ca59a33fc45846834e0339 to your computer and use it in GitHub Desktop.
#![feature(const_fn)]
#![feature(const_fn_transmute)]
#[derive(restruct_derive::Struct)]
#[fmt(">B")]
pub(crate) struct U8Serializer;
#[derive(restruct_derive::Struct)]
#[fmt(">H")]
pub(crate) struct U16Serializer;
#[derive(restruct_derive::Struct)]
#[fmt(">I")]
pub(crate) struct U32Serializer;
#[derive(restruct_derive::Struct)]
#[fmt(">b")]
pub(crate) struct I8Serializer;
#[derive(restruct_derive::Struct)]
#[fmt(">h")]
pub(crate) struct I16Serializer;
#[derive(restruct_derive::Struct)]
#[fmt(">i")]
pub(crate) struct I32Serializer;
impl U8Serializer {
pub(crate) fn encode(val: u8) -> <Self as restruct::Struct>::Packed {
Self::pack((val,))
}
}
impl U16Serializer {
pub(crate) fn encode(val: u16) -> <Self as restruct::Struct>::Packed {
Self::pack((val,))
}
}
impl U32Serializer {
pub(crate) fn encode2(val: u32) -> <Self as restruct::Struct>::Packed {
Self::pack((val,))
}
}
impl I8Serializer {
pub(crate) fn encode(val: i8) -> <Self as restruct::Struct>::Packed {
Self::pack((val,))
}
}
impl I16Serializer {
pub(crate) fn encode(val: i16) -> <Self as restruct::Struct>::Packed {
Self::pack((val,))
}
}
impl I32Serializer {
pub(crate) fn encode(val: i32) -> <Self as restruct::Struct>::Packed {
Self::pack((val,))
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment