{"size": 979, "ext": "scrbl", "max_stars_repo_path": "doc/utils/text/json/validator.scrbl", "max_stars_repo_name": "christoff-buerger/sagittarius-scheme", "max_stars_repo_stars_event_min_datetime": "2015-11-07T07:13:35.000Z", "max_stars_repo_stars_event_max_datetime": "2022-02-15T03:35:14.000Z", "max_issues_repo_path": "doc/utils/text/json/validator.scrbl", "max_issues_repo_name": "christoff-buerger/sagittarius-scheme", "max_issues_repo_issues_event_min_datetime": "2016-04-28T21:59:59.000Z", "max_issues_repo_issues_event_max_datetime": "2021-07-01T08:42:21.000Z", "max_forks_repo_path": "doc/utils/text/json/validator.scrbl", "max_forks_repo_name": "christoff-buerger/sagittarius-scheme", "max_forks_repo_forks_event_min_datetime": "2016-12-28T12:41:23.000Z", "max_forks_repo_forks_event_max_datetime": "2020-02-26T20:52:02.000Z"}
{"max_stars_count": 39, "max_issues_count": 3, "max_forks_count": 4, "avg_line_length": 30.59375, "max_line_length": 79, "alphanum_fraction": 0.7354443309}
@; -*- coding: utf-8 -*-
@subsection[:tag "text.json.validator"]{(text json validator) - JSON validator}

@define[Library]{@name{(text json validator)}}
@desc{This library provides abstraction layer of JSON validation.}

@define["Record Type"]{@name{<json-validator>}}
@desc{Base class of JSON validators.

The record have @code{validator} field.
}

@define[Function]{@name{json-validator?} @args{obj}}
@desc{Return @code{#t} if the given @var{obj} is a JSON validator,
otherwise @code{#f}.}

@define[Function]{@name{make-json-validator} @args{validator}}
@desc{Creates a JSON validator.

The @var{validator} must be a procedure accepts one argument.
}

@define[Function]{@name{json-validator-validator} @args{json-validator}}
@desc{Returns the @code{validator} field value of the given
@var{json-validator}.
}

@define[Function]{@name{validate-json} @args{json-validator json}}
@desc{Calls value of @code{validator} field of given JSON validator with
parameter of @var{json}.
}
