rust 如何为Tarantool 2.10+编码messagepack DateTime,UUI?[关闭]

64jmpszr  于 2023-05-18  发布在  其他
关注(0)|答案(1)|浏览(260)

已关闭,此问题需要details or clarity。目前不接受答复。
**想改善这个问题吗?**通过editing this post添加详细信息并澄清问题。

4天前关闭。
Improve this question
使用Rust crate RMP RMP Crate,任何可能的包消息包用于Tarantool字段类型datetimeuuid

qlzsbp2j

qlzsbp2j1#

Tarantool使用msgpack扩展类型,并使用datetime和uuid的自定义内部表示。目前它还没有提供一个模块开发者可以直接使用的API。所以如果你想把datetime或uuid对象序列化为tarantool兼容的msgpack,你必须自己实现序列化。
幸运的是,这已经在tarantool crate中实现了(我是作者之一)。有tarantool::uuid::Uuidtarantool::datetime::Datetime结构。虽然日期时间目前只在master分支上。这些结构体实现了serde::Serializeserde::Deserialize,并且可以与rmp_serde crate一起使用,以生成与tarantool兼容的msgpack表示。
这里有几个例子:

let uuid = tarantool::uuid::Uuid::nil();
let mp = rmp_serde::to_vec(&uuid).unwrap();
// mp can be passed to tarantool

let dt: tarantool::datetime::Datetime = time_macros::datetime!(2023-05-12 10:01:42.12345 -3).into();
let mp = rmp_serde::to_vec(&dt).unwrap();
// mp can be passed to tarantool

你也可以将这些结构体与tarantool crate中的其他api一起使用,例如。用于将值插入到tarantool::space::Space::insert的空格中。

相关问题