[][src]Trait tide::Endpoint

pub trait Endpoint<AppData>: Send + Sync + 'static {
type Fut: Future<Output = Response> + Send + 'static;
    fn call(&self, cx: Context<AppData>) -> Self::Fut;
}

A Tide endpoint.

This trait is automatically implemented for Fn types, and so is rarely implemented directly by Tide users.

In practice, endpoints are function that take a Context<AppData> as an argument and return a type T that implements IntoResponse.

Examples

Endpoints are implemented as asynchronous functions that make use of language features currently only available in Rust Nightly. For this reason, we have to explicitly enable those features with #![feature(async_await, futures_api)]. To keep examples concise, the attribute will be omitted in most of the documentation.

A simple endpoint that is invoked on a GET request and returns a String:

async fn hello(_cx: tide::Context<()>) -> String {
    String::from("hello")
}

fn main() {
    let mut app = tide::App::new(());
    app.at("/hello").get(hello);
    app.serve("127.0.0.1:8000").unwrap()
}

Associated Types

type Fut: Future<Output = Response> + Send + 'static

The async result of call.

Loading content...

Required methods

fn call(&self, cx: Context<AppData>) -> Self::Fut

Invoke the endpoint within the given context

Loading content...

Implementors

impl<AppData, F: Send + Sync + 'static, Fut> Endpoint<AppData> for F where
    F: Fn(Context<AppData>) -> Fut,
    Fut: Future + Send + 'static,
    Fut::Output: IntoResponse
[src]

type Fut = FutureObj<'static, Response>

Loading content...