Trait orc_rust::reader::decode::NInt

source ·
pub trait NInt: PrimInt + CheckedShl + BitOrAssign + ShlAssign<usize> + Debug + Display + Binary + Send + Sync + 'static {
    type Bytes: AsRef<[u8]> + AsMut<[u8]> + Default + Clone + Copy;

    const BYTE_SIZE: usize;

    // Required methods
    fn from_u64(u: u64) -> Self;
    fn from_u8(u: u8) -> Self;
    fn from_be_bytes(b: Self::Bytes) -> Self;

    // Provided methods
    fn empty_byte_array() -> Self::Bytes { ... }
    fn zigzag_decode(self) -> Self { ... }
    fn decode_signed_from_msb(self, _encoded_byte_size: usize) -> Self { ... }
}
Expand description

Helps generalise the decoder efforts to be specific to supported integers. (Instead of decoding to u64/i64 for all then downcasting).

Required Associated Types§

Required Associated Constants§

Required Methods§

source

fn from_u64(u: u64) -> Self

Should truncate any extra bits.

source

fn from_u8(u: u8) -> Self

source

fn from_be_bytes(b: Self::Bytes) -> Self

Provided Methods§

source

fn empty_byte_array() -> Self::Bytes

source

fn zigzag_decode(self) -> Self

source

fn decode_signed_from_msb(self, _encoded_byte_size: usize) -> Self

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl NInt for i16

§

type Bytes = [u8; 2]

source§

const BYTE_SIZE: usize = 2usize

source§

fn from_u64(u: u64) -> Self

source§

fn from_u8(u: u8) -> Self

source§

fn from_be_bytes(b: Self::Bytes) -> Self

source§

fn zigzag_decode(self) -> Self

source§

fn decode_signed_from_msb(self, encoded_byte_size: usize) -> Self

source§

impl NInt for i32

§

type Bytes = [u8; 4]

source§

const BYTE_SIZE: usize = 4usize

source§

fn from_u64(u: u64) -> Self

source§

fn from_u8(u: u8) -> Self

source§

fn from_be_bytes(b: Self::Bytes) -> Self

source§

fn zigzag_decode(self) -> Self

source§

fn decode_signed_from_msb(self, encoded_byte_size: usize) -> Self

source§

impl NInt for i64

§

type Bytes = [u8; 8]

source§

const BYTE_SIZE: usize = 8usize

source§

fn from_u64(u: u64) -> Self

source§

fn from_u8(u: u8) -> Self

source§

fn from_be_bytes(b: Self::Bytes) -> Self

source§

fn zigzag_decode(self) -> Self

source§

fn decode_signed_from_msb(self, encoded_byte_size: usize) -> Self

source§

impl NInt for i128

§

type Bytes = [u8; 16]

source§

const BYTE_SIZE: usize = 16usize

source§

fn from_u64(_u: u64) -> Self

source§

fn from_u8(u: u8) -> Self

source§

fn from_be_bytes(_b: Self::Bytes) -> Self

source§

fn zigzag_decode(self) -> Self

source§

impl NInt for u64

§

type Bytes = [u8; 8]

source§

const BYTE_SIZE: usize = 8usize

source§

fn from_u64(u: u64) -> Self

source§

fn from_u8(u: u8) -> Self

source§

fn from_be_bytes(b: Self::Bytes) -> Self

Implementors§