# `JSONSchex.Validator.Rules`
[🔗](https://github.com/xinz/jsonschex/blob/main/lib/jsonschex/validator/rules.ex#L1)

Dispatches compiled `JSONSchex.Types.Rule` structs to their runtime
validation implementations.

This keeps `JSONSchex.Validator` focused on orchestration while centralizing
rule-specific execution in one place.

# `result`

```elixir
@type result() ::
  :ok
  | {:ok, MapSet.t()}
  | {:error, [JSONSchex.Types.Error.t()] | JSONSchex.Types.ErrorContext.t()}
```

# `validation_context`

```elixir
@type validation_context() :: {list(), MapSet.t(), term()}
```

# `apply`

```elixir
@spec apply(JSONSchex.Types.Rule.t(), term(), validation_context()) :: result()
```

Applies a compiled rule to data in the given validation context.

---

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