[][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.