# Scrutinex v0.2.0 - Table of Contents

Declarative data validation for tabular data (lists of maps). Define schemas with an Ecto-style macro DSL, validate columns, types, ranges, formats, cross-column relationships, and more.

## Pages

- [Scrutinex](readme.md)
- [LICENSE](license.md)

## Modules

- Core
  - [Scrutinex](Scrutinex.md): Validates tabular data (lists of maps) against a schema definition.
  - [Scrutinex.Schema](Scrutinex.Schema.md): DSL for defining tabular-data validation schemas.

- Data Structures
  - [Scrutinex.Check](Scrutinex.Check.md): Represents a cross-column (row-level) check defined via the `check` macro.
  - [Scrutinex.Column](Scrutinex.Column.md): Defines a single column in a Scrutinex schema.
  - [Scrutinex.Error](Scrutinex.Error.md): Represents a single validation failure.
  - [Scrutinex.Result](Scrutinex.Result.md): Validation result, inspired by Ecto changesets.
  - [Scrutinex.Schema.Definition](Scrutinex.Schema.Definition.md): Schema definition struct holding columns, checks, and strict flag.
  - [Scrutinex.ValidationError](Scrutinex.ValidationError.md): Raised by `Scrutinex.validate!/2` when validation fails.

- Checks
  - [Scrutinex.Checks.Custom](Scrutinex.Checks.Custom.md): Runs a user-supplied function as a column-level check.

  - [Scrutinex.Checks.Exclusion](Scrutinex.Checks.Exclusion.md): Validates that a value is not a member of a forbidden list.

  - [Scrutinex.Checks.Format](Scrutinex.Checks.Format.md): Validates that a string value matches a regular expression.

  - [Scrutinex.Checks.Inclusion](Scrutinex.Checks.Inclusion.md): Validates that a value is a member of an allowed list.

  - [Scrutinex.Checks.Length](Scrutinex.Checks.Length.md): Validates string length against `:min`, `:max`, and/or `:is` constraints.

  - [Scrutinex.Checks.Number](Scrutinex.Checks.Number.md): Numeric comparison checks (greater_than, less_than, equal_to, etc.).

- Internal
  - [Scrutinex.Coercion](Scrutinex.Coercion.md): Type coercion and type checking for column values.

