[−][src]Crate schemafy_snapshot
This is a Rust crate which can take a json schema (draft and generate Rust types which are
serializable with serde. No checking such as
min_value
are done but instead only the structure of the schema
is followed as closely as possible.
As a schema could be arbitrarily complex this crate makes no guarantee that it can generate good types or even any types at all for a given schema but the crate does manage to bootstrap itself which is kind of cool.
Example
Generated types for VS Codes debug server protocol: https://docs.rs/debugserver-types
Usage
Rust types can be generated by passing a JSON schem, as a string,
to the generate()
function:
// build.rs extern crate schemafy; fn main() -> Result<(), Box<std::error::Error>> { let schema = std::fs::read_to_string("src/schema.json")?; let output = schemafy::generate(Some("Schema"), &schema)?; std::fs::write("src/schema.rs", output.as_bytes())?; Ok(()) }
Modules
one_or_many | |
schema | Types from the JSON Schema meta-schema (draft 4). |
Structs
GenerateBuilder | A configurable builder for generating Rust types from a JSON schema. |
Functions
generate | Generate Rust types from a JSON schema. |