///|
/// Add a custom validation rule.
///
/// `check` is a predicate on the JSON value; `message` is the error message
/// shown when the predicate returns `false`.
pub fn Schema::refine(
self : Schema,
check : (Json) -> Bool,
message : String,
) -> Schema {
{
..self,
id: new_schema_id(),
rules: self.rules +
[
{
check,
message,
code: IssueCode::Custom,
annotation: Json::null(),
constraint: Opaque,
explicit_message: true,
},
],
}
}