#byte-stream #chunks #layer #writable #overlay #puts #read

memoverlay

在某个字节流上放置一个可写字节层

4个版本

0.1.3 2024年4月12日
0.1.2 2023年1月2日
0.1.1 2023年1月2日
0.1.0 2023年1月2日

#3 in #writable

Download history 107/week @ 2024-04-14 54/week @ 2024-04-21 68/week @ 2024-04-28 41/week @ 2024-05-05 49/week @ 2024-05-12 67/week @ 2024-05-19 58/week @ 2024-05-26 50/week @ 2024-06-02 134/week @ 2024-06-09 73/week @ 2024-06-16 54/week @ 2024-06-23 70/week @ 2024-06-30 76/week @ 2024-07-07 126/week @ 2024-07-14 42/week @ 2024-07-21 138/week @ 2024-07-28

每月400次下载
4个crate中使用 (通过 nt_hive2)

GPL-3.0许可

25KB
520 代码行

memoverlay

在某个字节流上放置一个可写字节层

memoverlay

+-----------------+------------+-----------------+-------+----------------------+-------+-----------------+
|    chunk 0      |  chunk 1   |    chunk 2      |   3   |       chunk 4        |   5   |     chunk 6     |
+-----------------+------------+-----------------+-------+----------------------+-------+-----------------+

                               +-----------------+       +----------------------+
                               +-----------------+       +----------------------+
                  +-------------------+                           +---------------------+
                  +-------------------+                           +---------------------+
+---------------------------------------------------------------------------------------------------------+
+---------------------------------------------------------------------------------------------------------+

使用示例

use std::io::{Cursor, Read, Seek, SeekFrom};
use memoverlay::MemOverlay;
use memoverlay::overlay;

let message1 = "hello, world!";
let mut overlay = overlay!(message1.as_bytes());
overlay.add_bytes_at(7, "peter".as_bytes()).unwrap();

let mut message2 = String::new();
let _ = overlay.read_to_string(&mut message2).unwrap();

assert_eq!(message2, "hello, peter!");

许可证:GPL-3.0

依赖项

~275–730KB
~17K SLoC