我可以逐字节提取的序列化器?

时间:2018-07-25 13:19:31

标签: serialization

我正在寻找一种可以用任何语言编写的序列化程序,我可以提供一些东西(一个对象,一个包含其他结构的结构,一个哈希映射等),然后让我逐字节从其获取序列化结果?至关重要的是,序列化程序不能分配无界的向量来中间存储字节。

我正在考虑的API,采用Rust表示法:

struct Serializer<T: serde::Serialize>(_);

impl<T: serde::Serialize> Serializer<T> {
    fn new() -> Serializer<T>;
    fn push(&mut self) -> Option<impl FnOnce(T)>;
    fn pull(&mut self) -> Option<impl FnOnce()->u8>;
}

即我可以pushTT实现serde::Serialize的地方;我可以pull u8个;如果等待另一个操作,则任何一个操作都可能“阻塞”(通过返回Option::None);并且Serializer的内存分配是有界的。

有没有这样的例子?那又叫什么呢?我不太确定要用什么Google。。

0 个答案:

没有答案