mirror of
https://github.com/actix/actix-extras.git
synced 2024-11-30 18:34:36 +01:00
parent
fba31d4e0a
commit
15d3c1ae81
20
src/guard.rs
20
src/guard.rs
@ -1,16 +1,16 @@
|
|||||||
//! Route match guards.
|
//! Route match guards.
|
||||||
//!
|
//!
|
||||||
//! Guards are one of the way how actix-web router chooses
|
//! Guards are one of the ways how actix-web router chooses a
|
||||||
//! handler service. In essence it just function that accepts
|
//! handler service. In essence it is just a function that accepts a
|
||||||
//! reference to a `RequestHead` instance and returns boolean.
|
//! reference to a `RequestHead` instance and returns a boolean.
|
||||||
//! It is possible to add guards to *scopes*, *resources*
|
//! It is possible to add guards to *scopes*, *resources*
|
||||||
//! and *routes*. Actix provide several guards by default, like various
|
//! and *routes*. Actix provide several guards by default, like various
|
||||||
//! http methods, header, etc. To become a guard, type must implement `Guard`
|
//! http methods, header, etc. To become a guard, type must implement `Guard`
|
||||||
//! trait. Simple functions coulds guards as well.
|
//! trait. Simple functions coulds guards as well.
|
||||||
//!
|
//!
|
||||||
//! Guard can not modify request object. But it is possible to
|
//! Guards can not modify the request object. But it is possible
|
||||||
//! to store extra attributes on a request by using `Extensions` container.
|
//! to store extra attributes on a request by using the `Extensions` container.
|
||||||
//! Extensions container available via `RequestHead::extensions()` method.
|
//! Extensions containers are available via the `RequestHead::extensions()` method.
|
||||||
//!
|
//!
|
||||||
//! ```rust
|
//! ```rust
|
||||||
//! use actix_web::{web, http, dev, guard, App, HttpResponse};
|
//! use actix_web::{web, http, dev, guard, App, HttpResponse};
|
||||||
@ -29,11 +29,11 @@
|
|||||||
use actix_http::http::{self, header, uri::Uri, HttpTryFrom};
|
use actix_http::http::{self, header, uri::Uri, HttpTryFrom};
|
||||||
use actix_http::RequestHead;
|
use actix_http::RequestHead;
|
||||||
|
|
||||||
/// Trait defines resource guards. Guards are used for routes selection.
|
/// Trait defines resource guards. Guards are used for route selection.
|
||||||
///
|
///
|
||||||
/// Guard can not modify request object. But it is possible to
|
/// Guards can not modify the request object. But it is possible
|
||||||
/// to store extra attributes on request by using `Extensions` container,
|
/// to store extra attributes on a request by using the `Extensions` container.
|
||||||
/// Extensions container available via `RequestHead::extensions()` method.
|
/// Extensions containers are available via the `RequestHead::extensions()` method.
|
||||||
pub trait Guard {
|
pub trait Guard {
|
||||||
/// Check if request matches predicate
|
/// Check if request matches predicate
|
||||||
fn check(&self, request: &RequestHead) -> bool;
|
fn check(&self, request: &RequestHead) -> bool;
|
||||||
|
Loading…
Reference in New Issue
Block a user