# `Incant.Filter`
[🔗](https://github.com/elixir-vibe/incant/blob/v0.1.1/lib/incant/filter.ex#L1)

Behaviour and dispatcher for Incant table filters.

# `context`

```elixir
@type context() :: term()
```

# `queryable`

```elixir
@type queryable() :: term()
```

# `row`

```elixir
@type row() :: map()
```

# `value`

```elixir
@type value() :: term()
```

# `apply_query`

```elixir
@callback apply_query(Incant.Table.Filter.t(), queryable(), value(), context()) ::
  queryable()
```

# `control`

```elixir
@callback control(Incant.Table.Filter.t(), value(), map()) ::
  Phoenix.LiveView.Rendered.t()
```

# `match?`

```elixir
@callback match?(Incant.Table.Filter.t(), row(), value()) :: boolean()
```

# `apply_filters`

Applies a list of filters to a queryable using submitted filter values.

# `apply_query`

Applies a filter value to a queryable.

# `control`

Renders a filter control.

# `match?`

Returns whether an in-memory row matches a filter value.

# `module`

Resolves the module responsible for a filter.

---

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