1 unstable release

0.1.0 Jan 24, 2021

#13 in #odata


Used in odata_client

Apache-2.0

300KB
7K SLoC

OData Schema

Parse OData schemas into Rust types, with the goal of supporting Dynamics 365 OData operations.

Roadmap

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

  • Deserialise $metadata document
  • Construct coherent entity model
    • References/includes
    • Annotations/annotation groups (annotations currently not constructed for "completed" items either)
    • Types
    • Actions
    • Functions
    • Terms
    • Entity containers
      • Entity sets
      • Action imports
      • Function imports
      • Singletons
      • Extends
    • Customisation/handling of metadata inconsistencies
      • User-specified handling of qualified name/target path resolution errors
  • Code generation
    • Type definitions
    • Entity container definitions
    • Entity set definitions
    • Actions
    • Functions
    • Black/whitelist for generated types (with stubbed dependencies)
  • Client functionality
    • Retrieve
    • Filter/queries
    • Create/Update/Delete
    • Call actions & functions
    • ETag support
    • Retrieve/set open types
    • Batch requests
  • Consuming crate bindings
    • Proc macro
    • Proc macro attribute
    • build.rs code generation
  • What-if/dry-run

Dependencies

~14–28MB
~456K SLoC