///|
fn main {
let schema = match
@jtd.jtd_object()
.required("id", @jtd.jtd_uint32())
.required("name", @jtd.jtd_string())
.optional("email", @jtd.jtd_string())
.build() {
Ok(value) => value
Err(error) => {
println(error.to_string())
return
}
}
let document = match @jtd.jtd_document(schema).build() {
Ok(value) => value
Err(errors) => {
for error in errors {
println(error.to_string())
}
return
}
}
let valid = Json::object(
Map([("id", Json::number(7.0)), ("name", Json::string("Ada"))]),
)
let invalid = Json::object(
Map([
("id", Json::number(-1.0)),
("name", Json::boolean(false)),
("extra", Json::null()),
]),
)
let valid_report = @jtd.validate_with(
document,
valid,
@jtd.ValidationOptions::default(),
)
println("valid example: " + valid_report.is_valid().to_string())
let invalid_report = @jtd.validate_with(
document,
invalid,
@jtd.ValidationOptions::default(),
)
println("invalid example: " + invalid_report.is_valid().to_string())
for diagnostic in invalid_report.errors() {
println(diagnostic.to_string())
}
}