Crate tunnelbana_etags

Crate tunnelbana_etags 

Source
Expand description

§tunnelbana-etags

An ETag adding middleware for Rust and especially ServeDir.

Part of the tunnelbana project.

§Example

use tower_http::services::ServeDir;
use tower::{ServiceBuilder, ServiceExt};
use http::Response;
use tunnelbana_etags::{ETagLayer, ETagMap};

let path = std::path::PathBuf::from("/var/www/html");
let etags = ETagMap::new(&path).expect("Failed to generate etags");
let etag_mw = ETagLayer::new(etags);
let serve_dir = ServeDir::new(path).append_index_html_on_directories(true);
let service = ServiceBuilder::new()
   .layer(etag_mw)
   .service(serve_dir);

Structs§

ETag
An implementation of a tower service which adds etags to a service which it wraps.
ETagLayer
A tower::Layer that adds an etag to wrapped services.
ETagMap
A map of String-based static paths to etag sets. This serves as a simple wrapper type, just to prove that the created map is valid.

Enums§

ResponseFuture
A future representing possible states of the request.
TagMapBuildError
Error returned when ETagMap::new fails.