4个版本 (2个重大更新)

0.3.1 2022年10月6日
0.3.0 2022年10月6日
0.2.1 2022年10月6日
0.2.0 2022年10月6日
0.1.0 2022年10月6日

#1875 in 算法

MIT许可证

28KB
539

肌肉人

muscleman是一个创建和管理缓冲区的库。它之所以得名,是因为它是一个缓冲区管理器。将“buff”理解为“buff身体”,它是一个管理数据缓冲区的库。此外,肌肉人是一个有趣的角色。

用法

将以下内容添加到您的Cargo.toml

[dependencies]
muscleman = "0.3.1"

并将其添加到您的crate根目录

extern crate muscleman;
use muscleman::buffer::Buffer;

示例

创建缓冲区

use muscleman::buffer;

let mut buffer = buffer::new();
buffer.write_byte(0x01);
buffer.write_byte(0x02);

assert_eq!(buffer.len(), 2);

向缓冲区写入

use muscleman::buffer;

let mut buffer = buffer::new();

// 8 to 64 bit signed integers
buffer.write_i8(1);
buffer.write_i16(2);
buffer.write_i32(3);
buffer.write_i64(4);

// 8 to 64 bit unsigned integers
buffer.write_u8(5);
buffer.write_u16(6);
buffer.write_u32(7);
buffer.write_u64(8);

// 32 and 64 bit floating point numbers
buffer.write_f32(9.0_f32);
buffer.write_f64(10.0_f64);

// Null terminated strings and length prefixed strings
buffer.write_string("Hello, world!");
buffer.write_string_with_length("Hello, world!"); // The length is written as a u32

从缓冲区读取

use muscleman::buffer;

let mut buffer = buffer::new();

// Assume the data in the "Writing to a buffer" is currently in the buffer

// 8 to 64 bit signed integers
assert_eq!(buffer.read_i8(), 1);
assert_eq!(buffer.read_i16(), 2);
assert_eq!(buffer.read_i32(), 3);
assert_eq!(buffer.read_i64(), 4);

// 8 to 64 bit unsigned integers
assert_eq!(buffer.read_u8(), 5);
assert_eq!(buffer.read_u16(), 6);
assert_eq!(buffer.read_u32(), 7);
assert_eq!(buffer.read_u64(), 8);

// 32 and 64 bit floating point numbers
assert_eq!(buffer.read_f32(), 9.0_f32);
assert_eq!(buffer.read_f64(), 10.0_f64);

// Null terminated strings and length prefixed strings
assert_eq!(buffer.read_string(), "Hello, world!");
assert_eq!(buffer.read_string_with_length(), "Hello, world!");

为什么?

我在一个需要从服务器发送和接收数据的项目上工作。我需要一种轻松地将数据写入和从缓冲区读取的方法。我四处寻找,发现了一些执行此操作的crate,但它们要么过于复杂,要么不能满足我的需求。所以我决定自己制作一个。

许可证

muscleman采用MIT许可证。有关更多信息,请参阅LICENSE文件。

无运行时依赖项