View Source Spark.Options.Validator (spark v2.2.29)
Defines a validator module for an option schema.
Validators create structs with keys for each option in their schema,
and an optimized validate, and validate! function on that struct.
Upgrading from options lists
You can pass the option define_deprecated_access?: true to use Spark.Options.Validator,
which will make it such that options[:foo] will still work, but will emit a deprecation warning.
This cane help with smoother upgrades.
Example
Given a module like the following:
defmodule MyOptions do
use Spark.Options.Validator, schema: [
foo: [
type: :string,
required: true
],
bar: [
type: :string
],
baz: [
type: :integer,
default: 10
]
]
endYou can use it like so:
# validate options
MyOptions.validate!(foo: "foo")
# %MyOptions{foo: "foo", bar: nil, baz: 10}
# retrieve original schema
MyOptions.schema()
# foo: [type: :string, required: true], bar: [type: :string], baz: [type: :integer, default: 10]