[−][src]Crate schemafy_lib
This is a Rust crate which can take a json schema (draft
4) 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 code is generated by providing a Schema
struct (which can be deserailized from JSON).
A proc macro is availible in schemafy
crate
extern crate serde; extern crate schemafy_core; extern crate serde_json; use serde::{Serialize, Deserialize}; use schemafy_lib::Expander; let json = std::fs::read_to_string("src/schema.json").expect("Read schema JSON file"); let schema = serde_json::from_str(&json).unwrap(); let mut expander = Expander::new( Some("Schema"), "::schemafy_core::", &schema, ); let code = expander.expand(&schema);
Structs
Expander | |
Schema |
Enums
SimpleTypes |
Functions
str_to_ident |