2023-07-22 14:04:27 +08:00
2023-07-22 13:10:33 +08:00
2023-07-22 13:36:04 +08:00
2023-06-06 09:45:14 +08:00
2023-07-22 13:04:03 +08:00
2023-07-22 14:04:27 +08:00

axum-valid

crates.io LICENSE dependency status GitHub Workflow Status Coverage Status

This crate provides a Valid type that can be used in combination with Json, Path, Query, and Form types to validate the entities that implement the Validate trait.

Usage

cargo add axum-valid
use validator::Validate;
use serde::Deserialize;
use axum_valid::Valid;
use axum::extract::Query;
use axum::Json;

#[derive(Debug, Validate, Deserialize)]
pub struct Pager {
    #[validate(range(min = 1, max = 50))]
    pub page_size: usize,
    #[validate(range(min = 1))]
    pub page_no: usize,
}

pub async fn get_page_by_query(
    Valid(Query(pager)): Valid<Query<Pager>>,
) {
    assert!((1..=50).contains(&pager.page_size));
    assert!((1..).contains(&pager.page_no));
}

pub async fn get_page_by_json(
    Valid(Json(pager)): Valid<Json<Pager>>,
) {
    assert!((1..=50).contains(&pager.page_size));
    assert!((1..).contains(&pager.page_no));
}

For more usage examples, please refer to the basic.rs and custom.rs files in the tests directory.

Description
No description provided
Readme 246 KiB
Languages
Rust 100%