mirror of
https://github.com/edg-l/teeint.git
synced 2024-09-07 19:35:13 +00:00
70 lines
1.5 KiB
Markdown
70 lines
1.5 KiB
Markdown
# teeint
|
|
|
|
|
|
[![Version](https://img.shields.io/crates/v/teeint)](https://crates.io/crates/teeint)
|
|
[![Downloads](https://img.shields.io/crates/d/teeint)](https://crates.io/crates/teeint)
|
|
[![License](https://img.shields.io/crates/l/teeint)](https://crates.io/crates/teeint)
|
|
![Rust](https://github.com/edg-l/teeint/workflows/Rust/badge.svg)
|
|
[![Docs](https://docs.rs/teeint/badge.svg)](https://docs.rs/teeint)
|
|
|
|
A teeworlds variable integer packer/unpacker.
|
|
|
|
|
|
### Packing
|
|
|
|
```rust
|
|
use std::io::Cursor;
|
|
|
|
let mut buff = Cursor::new([0; 2]);
|
|
|
|
teeint::pack(&mut buff, 64).unwrap();
|
|
|
|
let buff = buff.into_inner();
|
|
assert_eq!(buff[0], 0b1000_0000);
|
|
assert_eq!(buff[1], 0b0000_0001);
|
|
```
|
|
|
|
Or using the trait [PackTwInt]:
|
|
```rust
|
|
use std::io::Cursor;
|
|
use teeint::PackTwInt;
|
|
|
|
let mut buff = Cursor::new([0; 2]);
|
|
|
|
64.pack(&mut buff).unwrap();
|
|
|
|
let buff = buff.into_inner();
|
|
assert_eq!(buff[0], 0b1000_0000);
|
|
assert_eq!(buff[1], 0b0000_0001);
|
|
```
|
|
|
|
Or
|
|
```rust
|
|
use teeint::PackTwInt;
|
|
|
|
let mut buff = [0; 2];
|
|
64.pack(&mut buff.as_mut_slice()).unwrap();
|
|
assert_eq!(buff[0], 0b1000_0000);
|
|
assert_eq!(buff[1], 0b0000_0001);
|
|
```
|
|
|
|
### Unpacking
|
|
```rust
|
|
use std::io::Cursor;
|
|
|
|
let mut buff = Cursor::new([0b1000_0000, 0b0000_0001]);
|
|
let data = teeint::unpack(&mut buff).unwrap();
|
|
assert_eq!(data, 64);
|
|
```
|
|
|
|
Or using the trait [UnPackTwInt]:
|
|
```rust
|
|
use teeint::UnPackTwInt;
|
|
|
|
let buff = [0b1000_0000, 0b0000_0001];
|
|
let result = buff.as_slice().unpack().unwrap();
|
|
assert_eq!(result, 64);
|
|
```
|
|
|
|
License: MIT OR Apache-2.0
|