我正在寻找一种可以用任何语言编写的序列化程序,我可以提供一些东西(一个对象,一个包含其他结构的结构,一个哈希映射等),然后让我逐字节从其获取序列化结果?至关重要的是,序列化程序不能分配无界的向量来中间存储字节。
我正在考虑的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>;
}
即我可以push
和T
到T
实现serde::Serialize
的地方;我可以pull
u8
个;如果等待另一个操作,则任何一个操作都可能“阻塞”(通过返回Option::None
);并且Serializer
的内存分配是有界的。
有没有这样的例子?那又叫什么呢?我不太确定要用什么Google。。