# `Tarams`
[🔗](https://github.com/bluzky/tarams/blob/main/lib/tarams.ex#L1)

Params provide some helpers method to work with parameters

# `cast`

```elixir
@spec cast(data :: map(), schema :: map()) :: {:ok, map()} | {:error, errors :: map()}
```

Cast and validate params with given schema.
See `Tarams.Schema` for instruction on how to define a schema
And then use it like this

```elixir
def index(conn, params) do
  index_schema = %{
    status: [type: :string, required: true],
    type: [type: :string, in: ["type1", "type2", "type3"]],
    keyword: [type: :string, length: [min: 3, max: 100]],
  }

  with {:ok, data} <- Tarams.cast(params, index_schema) do
    # do query data
  else
    {:error, errors} -> IO.puts(errors)
  end
end
```

# `cast!`

# `cast_array`

# `clean_nil`

# `plug_scrub`

# `scrub_param`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
