View Source JSV.FormatValidator behaviour (jsv v0.3.0)
Behaviour for format validator implementations.
Such implementations must be given to JSV.build/2
in the :formats
option:
JSV.build!(raw_schema,
resolver: resolver,
formats: [MyModule | JSV.default_format_validator_modules()]
)
Each given module is interrogated for format support when a schema is built.
Modules earlier in the list take precedence and if a format is found in the
returned value of the supported_formats/0
callback, the module is selected
for compilation and no other module will be tried.
A module can declare multiple formats.
Summary
Callbacks
Returns the list of the supported formats, as strings.
Receives the schema format as string, and the data as a string.
Types
@type format() :: String.t()
Callbacks
@callback supported_formats() :: [format()]
Returns the list of the supported formats, as strings.
Receives the schema format as string, and the data as a string.
Returns a result tuple with data optionally casted to a more meaningful data
structure (for instance returning a Date
struct instead of the string
representation of the date).