#minecraft #varint #minimum #performance #maximum #memory #var-long

minecraft-varint

Minecraft 的 VarInt 和 VarLong 实现,使用 Rust 编写,提供最小内存使用和最大性能

1 个不稳定版本

使用旧的 Rust 2015

0.2.0 2021 年 11 月 13 日
0.1.1 2020 年 4 月 22 日
0.1.0 2020 年 4 月 22 日

#11 in #maximum

WTFPL 许可证

6KB
117 代码行数,不包括注释

minecaft-varint

Minecraft 的 VarInt 和 VarLong 实现,使用 Rust 编写,提供最小内存使用和最大性能。

Crates.io WTFPL licensed

示例

从 Read 读取 VarInt

use mc_varint::VarIntRead;
use std::io::Cursor;
fn main() {
    // firstly we create a Cursor
    let mut cur = Cursor::new(vec![0xff, 0xff, 0xff, 0xff, 0x07]);
    // secondly we read from it
    let value = cur.read_var_i32().unwrap();
    // the value is 2147483647
    assert_eq!(value, 2147483647);
}

将 VarInt 写入 Write

use mc_varint::{VarInt, VarIntWrite};
use std::io::Cursor;
fn main() {
    // firstly we create a Cursor and a VarInt
    let mut cur = Cursor::new(Vec::with_capacity(5));
    // secondly we write the VarInt to the Cursor
    cur.write_var_i32(2147483647).unwrap();
    // now the value is written to cur.
    assert_eq!(cur.into_inner(), vec![0xff, 0xff, 0xff, 0xff, 0x07]);
}

无运行时依赖