1
3
我很确定这在一般意义上是完全不可能的。 每种类型都能够控制自己的序列化。这意味着多个类型可能最终序列化为 相同的值 :
您可以尝试在序列化数据中建立标识类型的标记,但最终会出现相同的问题:始终存在冲突的可能性。 更根本的是,这样的概念在Rust中是无效的,因为每个类型在编译时都必须有一个已知的大小。无法反序列化为变量 未知大小 。
同样重要的是,您会为泛型
正因为如此,通常这样的事情都不会发生。如果用户使用具体类型调用序列化代码,则可以使用相同的具体类型调用反序列化代码。
听起来像是 特征对象 。 另请参见: |
2
0
实现这种想法的最佳方法是限制V的类型,然后使用结构名称作为标识模块类型+字符串的方法。 实例
然后使用类似sha的方法为结构名称生成哈希,反序列化以检查结构名称。 |