use schema2struct::schema2struct;

schema2struct! {
    type: object,
    struct: Hello,
    enum: ["hello", 12, true],
    default: "hello",
    required: ["info", "anything", "sdc"],
    properties: {
        "sdc": {
            type: object,
            struct: key
        },
        "info": {
            type: number,
            minimum: 12,
            maximum: 90
        },

        "anything": {
            type: string,
            min_length: 52,
            max_length: 32,
            pattern: r#"a-zA-Z"#,
            format: email,

        },
    },
}

fn main() {
    let api_response_from_the_scehma = r#"
        {
            "info": 23,
            "anything": "hello",
            "sdc": {}
        }
        "#;

    let binded: Hello = serde_json::from_str(api_response_from_the_scehma).unwrap();

    println!("{:#?}", binded);
}