num_packer/
lib.rs

1//! Provides traits and implementations for packing and unpacking two numbers into a single value.
2//!
3//! ## Implementations
4//!
5//! * Pack two `bool` into `u8`/`i8`, `u16`/`i16`, `u32`/`i32`, `u64`/`i64`, `usize`/`isize`
6//! * Pack two `u8` into `u16`/`i16`, `u32`/`i32`, `u64`/`i64`, `usize`/`isize`
7//! * Pack two `u16` into `u32`/`i32`, `u64`/`i64`, `usize`/`isize`(if target pointer width is 32 or 64)
8//! * Pack two `u32` into `u64`/`i64`, `usize`/`isize`(if target pointer width is 64)
9//! * Pack two `i8` into `u16`/`i16`, `u32`/`i32`, `u64`/`i64`, `usize`/`isize`
10//! * Pack two `i16` into `u32`/`i32`, `u64`/`i64`, `usize`/`isize`(if target pointer width is 32 or 64)
11//! * Pack two `i32` into `u64`/`i64`, `usize`/`isize`(if target pointer width is 64)
12//!
13//! ## Example
14//!
15//! Pack two `u8` into `u16`.
16//!
17//! ```rust
18//! use num_packer::U8Packer;
19//!
20//! let packed = u16::pack_u8(200, 55);
21//! let (first, second) = packed.unpack_u8();
22//! assert_eq!((first, second), (200, 55));
23//! ```
24//!
25
26mod impls;
27mod packer;
28
29pub use packer::*;