#iterator #stream #convert #byte-string

无 std conversion

一个动态转换迭代器的抽象库。

1 个不稳定版本

0.1.0 2022年1月16日

#1724编码

MIT 许可证

68KB
1.5K SLoC

转换

status crates.io Downloads Downloads (latest) License Lint Test

一个动态转换迭代器的抽象库。

演示

use conversion::converter::encoding::utf8::{UTF8Decoder, UTF8Encoder};
use conversion::converter::IterConverter;
use conversion::iter::{ConvertedIterator, ConvertedTryIterator};

// An original byte string.
let iter = b"stra\xc3\x9fe".into_iter().cloned();

// Decoding UTF-8 byte string.
let decoded = ConvertedIterator::new(iter, UTF8Decoder::new());
assert_eq!(Ok(String::from("straße")), decoded.clone().collect());

// Convert to uppercase. (use ConvertedTryIterator because `decoded` returns Result items.)
let uppered = ConvertedTryIterator::new(decoded, IterConverter::new(char::to_uppercase));
assert_eq!(Ok(String::from("STRASSE")), uppered.clone().collect());

// Re-encode the value.
let encoded = ConvertedTryIterator::new(uppered, UTF8Encoder::new());
assert_eq!(Ok(b"STRASSE".to_vec()), encoded.collect());

文档

API 文档可以在这里找到。

使用

添加到您的 Cargo.toml

[dependencies]
conversion = "0.1.0"
conversion = { version = "0.1.0", features = ["async"] } # If you want to use asynchronous stream.
conversion = { version = "0.1.0", default-features = false } # no_std support.

许可证

本程序遵循MIT许可证。详细信息请参阅LICENSE

依赖项

~18KB