#uuid #prost #grpc

prost-uuid

ProstUuid 是对 uuid::Uuid 的一个新类型包装,并为其实现了 prost::Message

2 个不稳定版本

0.2.0 2023年5月24日
0.1.0 2023年5月22日

43#prost

MIT/Apache

6KB
85

ProstUuid 是对 uuid::Uuid 的一个新类型包装,并为其实现了 prost::Message

如何使用它

为 uuid 创建一个 protobuf 文件(未来版本中将提供开箱即用的功能)

syntax = "proto3";
package uuid;

message Uuid {
   string uuid_str = 1;
}

并在您的自己的 protobuf 中使用它

message User {
  uuid.Uuid id = 1;
  string email = 2;
}

在 Rust 代码中,您可以通过不同的方法和解引用,将 ProstUuiduuid::Uuid 互换使用

    fn test_derive_more() {
        let prost_uuid = ProstUuid::from(Uuid::nil());
        let uuid = Uuid::from(prost_uuid);
        assert_eq!(format!("{}", uuid), format!("{}", prost_uuid));
        let new_prost_uuid = ProstUuid::new(uuid);
        let mut mut_prost_uuid = new_prost_uuid;
        let another_prost_uuid = new_prost_uuid;
        function_expect_uuid(
            new_prost_uuid.as_ref(),
            mut_prost_uuid.as_mut(),
            *another_prost_uuid,
        );
    }

    fn function_expect_uuid(_uuid_ref: &Uuid, _uuid_mut_ref: &mut Uuid, _uuid: Uuid) {}

依赖关系

~1.3–2MB
~42K SLoC