#deserialize #serialization

npsd-schema

实现 #[derive(Schema, Bitmap, AsyncSchema, AsyncBitmap, Info)]

4个版本

0.2.0 2024年7月19日
0.1.2 2024年7月3日
0.1.1 2024年7月3日
0.1.0 2024年6月29日

#28 in #serialize

Download history 373/week @ 2024-06-29 58/week @ 2024-07-06 77/week @ 2024-07-13 38/week @ 2024-07-20 10/week @ 2024-07-27

每月210次下载
npsd 中使用

Apache-2.0

47KB
959

npsd 导出宏

此仓库提供了一组自定义导出宏,以简化 npsd 框架所需的特质的实现。这些宏自动生成各种有效负载处理任务(包括序列化、反序列化和有效负载转换)的样板代码。

可用的宏

#[derive(Info)]

生成 PayloadInfo 特质的实现,该特质提供有关有效负载类型的元数据。

#[derive(Schema)]

生成公共使用的有效负载处理特质(如 IntoPayloadFromPayloadPayload)的实现。

#[derive(Bitmap)]

生成具有最多8个字段的位图结构的有效负载处理特质的实现。

#[derive(AsyncSchema)]

生成公共使用的异步有效负载处理特质(如 AsyncIntoPayloadAsyncFromPayloadAsyncPayload)的异步实现。

#[derive(AsyncBitmap)]

生成具有最多8个字段的位图结构的异步有效负载处理特质的实现。

示例

以下是一个简单示例,演示如何使用 Schema 导出宏

use npsd::Schema;

#[derive(Schema)]
struct MyPayload {
    id: u32,
    name: String,
}

这将自动为 MyPayload 结构体生成必要的 IntoPayloadFromPayloadPayload 特质的实现。

有关更详细的示例和用法,请参阅每个宏的文档。

贡献

欢迎贡献!如果您遇到任何问题或有改进建议,请随时提交拉取请求或打开一个问题。

许可

本项目采用Apache 2.0许可。

依赖

~245–690KB
~16K SLoC