我想做这样的伪代码:
let mut vec = Vec<u8>::new();
vec.resize(1024); // Some large-enough size
serialize(&vec,|| { .... });
// ... other code blah blah ...
deserialize(&vec); // This will execute the closure
理想情况下,我可以在另一个线程中运行反序列化,这才是真正做到这一点的重点。
我不想发送操作码和数据,因为这种方式打开了一个非常干净的编程模型,您无需创建和发送消息。相反,您只需在另一个线程中运行任意复杂的代码。
为什么“非常干净”?
-
没有需要创建的操作码(消息)。即,更少的代码。
-
接收端没有操作码调度的switch语句。即,更少的代码。
-
因为没有协议,所以没有必要对消息进行版本控制。即,更少的代码。
这个想法不能跨进程使用,但可以满足我的需求。