#charset #unicode #bufread #encoding

encodingbufreader

带有编码的 BuferReader

1 个不稳定版本

0.1.1 2019年7月30日
0.1.0 2019年7月30日

#31#charset


用于 sunnycat

MIT 许可证

10KB
143 代码行

encoding bufreader

这是一个带有编码的 BuferReader,内部封装了一个 BufReader。

安装

cargo add encodingbufreader

用法

use encodingbufreader::{BufReaderEncoding};
use encoding::all::{UTF_8,GB18030};
let bytes = "This string\nwill be read".as_bytes();

let mut lines_iter = BufReaderEncoding::new(bytes,UTF_8).map(|l| l.unwrap());
assert_eq!(lines_iter.next(), Some(String::from("This string")));
assert_eq!(lines_iter.next(), Some(String::from("will be read")));
assert_eq!(lines_iter.next(), None);

let bytes: &[u8] = &[
            213, 226, 202, 199, 210, 187, 184, 246, 215, 214, 183, 251, 180, 174, 10, 189, 171,
            187, 225, 177, 187, 182, 193, 200, 161,
        ];
for line in BufReaderEncoding::new(bytes, GB18030)
            .lines()
            .map(|l| l.unwrap()){
    println!("{}",line);
            }

lib.rs:

encodingbufreader

encodingbufreader 是一个带有编码的 BufReader。

依赖项

~2MB
~30K SLoC