packing/primitive_packing/
u128_pack.rs1use crate::{
2 Endian,
3 PackedBytes,
4 PackedSize,
5};
6use core::convert::Infallible;
7
8impl PackedSize for u128 {
9 const BYTES: usize = 16;
10}
11
12impl PackedBytes<[u8; Self::BYTES]> for u128 {
13 type Error = Infallible;
14 fn to_bytes<En: Endian>(&self) -> Result<[u8; Self::BYTES], Self::Error> {
15 Ok(if En::IS_LITTLE {
16 self.to_le_bytes()
17 } else {
18 self.to_be_bytes()
19 })
20 }
21 fn from_bytes<En: Endian>(bytes: [u8; Self::BYTES]) -> Result<Self, Self::Error> {
22 Ok(if En::IS_LITTLE {
23 Self::from_le_bytes(bytes)
24 } else {
25 Self::from_be_bytes(bytes)
26 })
27 }
28}