1 unstable release
0.1.0 | Jan 24, 2021 |
---|
#2011 in Procedural macros
Used in 2 crates
295KB
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
lib.rs
:
Functionality to generate a rust source code module which represents Entity Data Model items for
an OData endpoint. This generation can be performed as a procedural macro from the
odata_client_derive
crate, or as a build.rs
action, using the
write_module_build_artifact
or generate_module
functions.
Dependencies
~9–20MB
~283K SLoC