kata
Types
pub type Error =
error.Error
pub type Schema(a) =
schema.Schema(a)
pub type Value =
value.Value
Values
pub fn bool() -> schema.Schema(Bool)
pub fn brand(
base: schema.Schema(a),
name: String,
wrap: fn(a) -> b,
unwrap: fn(b) -> a,
) -> schema.Schema(b)
pub fn decode(
s: schema.Schema(a),
v: value.Value,
) -> Result(a, List(error.Error))
pub fn dict(
key_schema: schema.Schema(k),
val_schema: schema.Schema(v),
) -> schema.Schema(dict.Dict(k, v))
pub fn done(value: a) -> schema.Schema(a)
pub fn encode(s: schema.Schema(a), v: a) -> value.Value
pub fn field(
key: String,
field_schema: schema.Schema(a),
get: fn(final) -> a,
next: fn(a) -> schema.Schema(final),
) -> schema.Schema(final)
pub fn float() -> schema.Schema(Float)
pub fn int() -> schema.Schema(Int)
pub fn lazy(f: fn() -> schema.Schema(a)) -> schema.Schema(a)
pub fn list(item: schema.Schema(a)) -> schema.Schema(List(a))
pub fn optional(
inner: schema.Schema(a),
) -> schema.Schema(option.Option(a))
pub fn optional_field(
key: String,
field_schema: schema.Schema(a),
default: a,
get: fn(final) -> a,
next: fn(a) -> schema.Schema(final),
) -> schema.Schema(final)
pub fn string() -> schema.Schema(String)
pub fn tagged_union(
discriminator: String,
get_tag: fn(a) -> String,
variants: List(#(String, schema.Schema(a))),
) -> schema.Schema(a)
pub fn to_ast(s: schema.Schema(a)) -> ast.Ast
pub fn transform(
s: schema.Schema(a),
name: String,
forward: fn(a) -> Result(b, String),
backward: fn(b) -> a,
dummy: fn() -> b,
) -> schema.Schema(b)