kata

Types

pub type Ast =
  ast.Ast
pub type Error =
  error.Error
pub type Format(raw) =
  format.Format(raw)
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 from_bool(
  s: schema.Schema(a),
  value: Bool,
) -> Result(a, List(error.Error))

Construct a validated value from a Bool.

pub fn from_float(
  s: schema.Schema(a),
  value: Float,
) -> Result(a, List(error.Error))

Construct a validated value from a Float.

pub fn from_int(
  s: schema.Schema(a),
  value: Int,
) -> Result(a, List(error.Error))

Construct a validated value from an Int.

pub fn from_string(
  s: schema.Schema(a),
  value: String,
) -> Result(a, List(error.Error))

Construct a validated value from a String. Useful for building smart constructors for branded opaque types.

pub fn new_email(s: String) -> Result(UserEmail, List(kata.Error)) {
  kata.from_string(user_email_schema(), s)
}
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