Struct hyper_staticfile::Static

source ·
pub struct Static {
    pub root: PathBuf,
    pub cache_headers: Option<u32>,
}
Expand description

High-level interface for serving static files.

This struct serves files from a single root path, which may be absolute or relative. The request is mapped onto the filesystem by appending their URL path to the root path. If the filesystem path corresponds to a regular file, the service will attempt to serve it. Otherwise, if the path corresponds to a directory containing an index.html, the service will attempt to serve that instead.

This struct allows direct access to its fields, but these fields are typically initialized by the accessors, using the builder pattern. The fields are basically a bunch of settings that determine the response details.

This struct also implements the hyper::Service trait, which simply wraps Static::serve. Note that using the trait currently involves an extra Box.

Fields§

§root: PathBuf

The root directory path to serve files from.

§cache_headers: Option<u32>

Whether to send cache headers, and what lifespan to indicate.

Implementations§

source§

impl Static

source

pub fn new(root: impl Into<PathBuf>) -> Self

Create a new instance of Static with a given root path.

If Path::new("") is given, files will be served from the current directory.

source

pub fn cache_headers(&mut self, value: Option<u32>) -> &mut Self

Add cache headers to responses for the given lifespan.

source

pub async fn serve<B>( self, request: Request<B>, ) -> Result<Response<Body>, IoError>

Serve a request.

Trait Implementations§

source§

impl Clone for Static

source§

fn clone(&self) -> Static

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<B: Send + Sync + 'static> Service<Request<B>> for Static

§

type Response = Response<Body>

Responses given by the service.
§

type Error = Error

Errors produced by the service.
§

type Future = Pin<Box<dyn Future<Output = Result<<Static as Service<Request<B>>>::Response, <Static as Service<Request<B>>>::Error>> + Send>>

The future response value.
source§

fn poll_ready(&mut self, _cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>>

Returns Poll::Ready(Ok(())) when the service is able to process requests. Read more
source§

fn call(&mut self, request: Request<B>) -> Self::Future

Process the request and return the response asynchronously. Read more

Auto Trait Implementations§

§

impl Freeze for Static

§

impl RefUnwindSafe for Static

§

impl Send for Static

§

impl Sync for Static

§

impl Unpin for Static

§

impl UnwindSafe for Static

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more