#tail #head #unix

skullrump

快速编写类似 UNIX 的二进制 head 和 tail 程序

1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2018 年 2 月 4 日

#48#head

ISC 许可证

11KB
249

通过 git://len.falken.directory/code/skullrump.git 访问此目录

有关其他项目,请参阅 https://len.falken.directory/code.xml

这是由 git://len.falken.directory/code/github-goodbye.git 留下的信息

拥有您自己的数据,自托管:git://len.falken.directory/code/git-self-host.git


lib.rs:

skullrump 是一个用于快速编写类似 UNIX 的二进制 head 和 tail 程序的包。

为了使用它,用户需要为其类型实现 BinaryEntry 特性。

文件监视不是内置的,但可以使用 watch 程序或类似程序来模拟。

示例

use std::fs::File;
use std::io::{ Result };
use self::skullrump::byteorder::{ WriteBytesExt, ReadBytesExt };
use self::skullrump::{ BinaryEntry, BinaryChunkStream };

struct ASingleByte(u8);

impl BinaryEntry for ASingleByte {
 fn entry_write(data_in: Self, buffer_out: &mut Vec<u8>) -> Result<()> {
   buffer_out.write_u8(data_in.0)
 }

 fn entry_read(file: &mut File) -> Result<Self> {
   file
     .read_u8()
     .and_then(|data| Ok(ASingleByte(data)))
 }

 fn entry_size() -> i64 {
   1
 }
}

fn foo(file: &mut File) {
  let mut buff:Vec<u8> = vec![];

  file.entry_write(&mut buff, ASingleByte(1));
  match file.tail::<ASingleByte>(1) {
    Ok(_entries) => {}
    Err(_)      => {}
  };
}

依赖项

~115KB