#proc-macro #entity #odata #procedural #metadata #generation #client

odata_client_derive

odata_client_codegen 的过程宏

1 个不稳定版本

0.1.0 2021年1月24日

#14 in #odata


用于 odata_client

Apache-2.0

300KB
7K SLoC

OData模式

将OData模式解析为Rust类型,旨在支持Dynamics 365 OData操作。

路线图

https://en.wikipedia.org/wiki/Open_Data_Protocol#Architecture

  • 反序列化 $metadata 文档
  • 构建一致的实体模型
    • 引用/包含
    • 注释/注释组(目前尚未为“完成”项目构建注释)
    • 类型
    • 操作
    • 函数
    • 术语
    • 实体容器
      • 实体集
      • 操作导入
      • 函数导入
      • 单例
      • 扩展
    • 处理元数据不一致性的自定义/处理
      • 处理有资格名称/目标路径解析错误的用户指定处理
  • 代码生成
    • 类型定义
    • 实体容器定义
    • 实体集定义
    • 操作
    • 函数
    • 生成类型(带占位符依赖项)的黑名单/白名单
  • 客户端功能
    • 检索
    • 筛选/查询
    • 创建/更新/删除
    • 调用操作和函数
    • ETag支持
    • 检索/设置开类型
    • 批请求
  • 消耗crate绑定
    • 过程宏
    • 过程宏属性
    • build.rs 代码生成
  • 假设/干运行

依赖项

~13–30MB
~471K SLoC