# Flop v0.27.2 - Table of Contents

> Filtering, ordering and pagination with Ecto.

## GUIDES

- [Flop](readme.md)
- [Changelog](changelog.md)

- Recipes
  - [Aggregates and grouped queries](aggregates.md)
  - [Case-insensitive sorting](case_insensitive_sorting.md)
  - [Computed and embedded fields](computed_and_embedded_fields.md)
  - [Conditional joins](conditional_joins.md)
  - [Cursor pagination](cursor_pagination.md)
  - [Full text search](full_text_search.md)
  - [Filters with OR](or_filters.md)
  - [Partial UUID filter](partial_uuid_filter.md)
  - [Joins on to-many associations](to_many_joins.md)
  - [Validation errors](validation_errors.md)

- Cheatsheets
  - [Backend configuration](backend.md)
  - [Schema configuration](schema.md)

## Modules

- [Flop](Flop.md): Flop is a helper library for filtering, ordering and pagination with Ecto.
- [Flop.Cursor](Flop.Cursor.md): Functions for encoding, decoding and extracting cursor values.
- [Flop.FieldInfo](Flop.FieldInfo.md): Defines a struct that holds the information about a schema field.
- [Flop.Filter](Flop.Filter.md): Defines a filter.
- [Flop.Meta](Flop.Meta.md): Defines a struct for holding meta information of a query result.

- [Flop.Relay](Flop.Relay.md): Helpers to turn query results into Relay formats.

- [Flop.Schema](Flop.Schema.md): Flop.Schema is a protocol that allows you to customize and set query options
in your Ecto schemas.

- Exceptions
  - [Flop.InvalidCursorError](Flop.InvalidCursorError.md): Raised when an invalid cursor is passed to the decode function.
  - [Flop.InvalidDefaultOrderError](Flop.InvalidDefaultOrderError.md)
  - [Flop.InvalidDefaultPaginationTypeError](Flop.InvalidDefaultPaginationTypeError.md)
  - [Flop.InvalidDirectionsError](Flop.InvalidDirectionsError.md): An error that is raised when invalid directions are passed.

  - [Flop.InvalidParamsError](Flop.InvalidParamsError.md): Raised when parameter validation fails.
  - [Flop.NoRepoError](Flop.NoRepoError.md)
  - [Flop.UnknownFieldError](Flop.UnknownFieldError.md)

