kata

Types

pub type Ast =
  ast.Ast
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)
Search Document