Struct StaticFiles

Source
pub struct StaticFiles { /* private fields */ }
Expand description

Static files controller.

Implementations§

Source§

impl StaticFiles

Source

pub fn serve(path: &str) -> Result<Handler>

Create a controller handler to serve static files from this path.

Source

pub fn new(path: &str) -> Result<Self>

Create a static files controller seriving this path. The path can be relative or absolute.

Source

pub fn cached(path: &str, duration: Duration) -> Result<Handler>

Serve static files with the specified Cache-Control: max-age attribute.

Source

pub fn preload(self, path: impl AsRef<Path> + Copy, bytes: &[u8]) -> Self

Preload a static file into memory. This allows static files to load and serve files which may not be available at runtime, e.g. by using include_bytes.

§Example
StaticFiles::new("static")
    .unwrap()
    .preload("/style.css", b"body { background: black; }");
Source

pub fn cache_control(self, cache_control: CacheControl) -> Self

Set the Cache-Control header.

Source

pub fn prefix(self, prefix: &str) -> Self

Set the prefix used in URLs.

For example, if the prefix static is set, all URLs to static file should start with /static. They will be rewritten internally to find the right file in the static folder.

Source

pub fn handler(self) -> Handler

Trait Implementations§

Source§

impl Controller for StaticFiles

Source§

fn handle<'life0, 'life1, 'async_trait>( &'life0 self, request: &'life1 Request, ) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Handle the request and return a response. Implement this function to define how your controller will respond to requests. This method is asynchronous, and since we use async_trait, the signature can be a bit confusing. The actual method is: Read more
Source§

fn auth(&self) -> &AuthHandler

Set the authentication mechanism for this controller. Default authentication method is to allow all requests, but can be adjusted through configuration. Read more
Source§

fn middleware(&self) -> &MiddlewareSet

Configure middleware on this controller. Global middleware can be set in the configuration. By default, controllers have no middleware.
Source§

fn skip_csrf(&self) -> bool

Don’t use CSRF protection on this controller. You generally don’t want to disable this unless you have another mechanism to make sure your users are not being duped into making requests to your app from somewhere else.
Source§

fn route(self, path: &str) -> Handler
where Self: Sized + 'static,

Create a basic route handler for this controller. Read more
Source§

fn wildcard(self, path: &str) -> Handler
where Self: Sized + 'static,

Create a wildcard route handler for this controller. Read more
Source§

fn handle_stream<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, request: &'life1 Request, stream: Stream<'life2>, ) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Internal function that handlers the TCP connection directly after a response has been sent to the client by the controller. This is typically used for WebSocket connections, but can also be used to stream data like video.
Source§

fn handle_internal<'life0, 'async_trait>( &'life0 self, request: Request, ) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Internal function which implements the bulk of Rwf controller logic. Do not implement this unless you’re looking to do something entirely different. Read more
Source§

fn controller_name(&self) -> &'static str

The name of this controller. Used for logging. All names are globally unique, so you won’t need to override this method.

Auto Trait Implementations§

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> 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> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

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>,

Source§

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