Skip to main content

Module pagination

Module pagination 

Source
Expand description

Pagination utilities for web framework integration.

Provides the Pagination struct which implements Serialize/Deserialize for easy extraction from query parameters in frameworks like Axum or Actix-web.

§Pagination Module

This module provides a standard Pagination struct that is compatible with web frameworks like axum, actix-web, and serde. It allows for easy extraction of pagination parameters from HTTP requests and application to QueryBuilder instances.

§Features

  • Serde Compatibility: derives Serialize and Deserialize
  • Query Integration: apply method to automatically paginate queries
  • Defaults: sane defaults (page 0, limit 10)

§Example with Axum

use axum::{extract::Query, Json};
use bottle_orm::{Database, pagination::Pagination};

async fn list_users(
    State(db): State<Database>,
    Query(pagination): Query<Pagination>
) -> Json<Vec<User>> {
    let users = pagination.apply(db.model::<User>())
        .scan()
        .await
        .unwrap();

    Json(users)
}

Structs§

Paginated
A wrapper for paginated results.
Pagination
A standard pagination structure.