#byte #endian #little-endian #big-endian #binary

buf-view

在包装缓冲区视图中读写原始类型

1个不稳定版本

0.1.0 2022年2月15日

#2317编码

26次每月下载
ping-proxy中使用

MIT许可

29KB
638

buf-view

一个用于在包装缓冲区上读写原始类型的实用库。

用法

要使用 buf-view,首先将以下内容添加到您的 Cargo.toml

[dependencies]
buf-view = "0.1.0"

BufView

包装缓冲区以供只读。

use buf_view::BufView;

let buf = [0, 1, 2, 3, 4, 5, 6, 7];
let mut buf_view = BufView::wrap(&buf);

assert_eq!(buf_view.read_u8(), 0);
assert_eq!(buf_view.read_u16(), 0x0102);
assert_eq!(buf_view.read_u32(), 0x03040506);
assert_eq!(buf_view.get_u16(1), 0x0102);

// wrap from vector
let v = vec![0, 1, 2, 3, 4, 5, 6, 7];
let mut buf_view = BufView::wrap(v.as_slice());
assert_eq!(buf_view.read_u8(), 0);
assert_eq!(buf_view.read_u32(), 0x01020304);

// wrap from &str
let s = "01234567";
let mut buf_view = BufView::wrap(s.as_bytes());
assert_eq!(buf_view.read_u8(), 0x30);
assert_eq!(buf_view.read_u32(), 0x31323334);

BufViewMut

包装缓冲区以供读写。

use buf_view::BufViewMut;

let mut buf = [0u8;7];
let mut buf_view = BufViewMut::wrap(&mut buf);

buf_view.write_u8(0);
buf_view.write_u16(0x0102);
buf_view.write_u32(0x03040506);

assert_eq!(buf_view.read_u8(), 0);
assert_eq!(buf_view.read_u16(), 0x0102);
assert_eq!(buf_view.read_u32(), 0x03040506);
assert_eq!(buf_view.get_u16(1), 0x0102);

许可

本项目采用MIT许可

贡献

欢迎所有贡献!

无运行时依赖