#token #serde #deserializer #transcoding #sink #future #tokenize

serde_token

将Serde反序列化器转换为令牌接收器的实用工具

2个版本

0.0.2 2019年6月24日
0.0.1 2019年6月24日

#1642 in 编码

MIT 许可证

22KB
573

serde_token

Crates.io Documentation MIT license

serde_token 为将 转码 Serde 反序列化器令牌接收器 提供了一个实用工具。

安装

Crates.io 安装

[dependencies]
serde_token = "0.0.2"

用法

use futures::{unsync::mpsc::unbounded, Future, Sink, Stream};
use serde_json::Deserializer;
use serde_token::{tokenize, Token};

let mut de = Deserializer::from_str(r#" [ {"a":false}, "hello", 3 ] "#);
let (token_sink, token_stream) = unbounded::<Token>();

tokenize(&mut de, token_sink).unwrap();

let expected = token_stream.collect().wait().unwrap();
assert_eq!(expected, vec![
    Token::Seq { len: None },
    Token::Map { len: None },
    Token::Str("a"),
    Token::Bool(false),
    Token::MapEnd,
    Token::Str("hello"),
    Token::U64(3),
    Token::SeqEnd,
])

待办事项

  • 研究更好地处理 Sink 发送(例如,支持背压)

变更日志

版本 变更摘要
v0.0.2 添加README
v0.0.1 首次发布

贡献

  1. 将其 分支
  2. 创建您的功能分支(git checkout -b feature/fooBar
  3. 提交您的更改(git commit -am 'Add some fooBar'
  4. 将更改推送到分支(git push origin feature/fooBar
  5. 创建新的Pull Request

维护者

许可证

MIT

依赖

~175–420KB