rschema 0.6.1

A json-schema generator
Documentation
#![allow(dead_code)]

use rschema::{
    Schema,
    Schematic,
};

#[derive(Debug, Schematic)]
#[rschema(additional_properties)]
struct StructAttributes {
    #[rschema(required)]
    prop_required1: i32,

    #[rschema(required)]
    prop_required2: String,

    prop_not_required: bool,
}

#[test]
fn it_tests_struct_attributes() -> rschema::Result<()> {
    let schema_str = Schema::new::<StructAttributes>("StructAttributes")
        .to_string_pretty()?;
    let schema_str2 = r#"{
  "title": "StructAttributes",
  "type": "object",
  "properties": {
    "prop_required1": {
      "type": "number"
    },
    "prop_required2": {
      "type": "string"
    },
    "prop_not_required": {
      "type": "boolean"
    }
  },
  "required": [
    "prop_required1",
    "prop_required2"
  ],
  "additionalProperties": true
}"#;

    assert_eq!(schema_str, schema_str2);

    Ok(())
}