[][src]Trait actix_webfinger::Resolver

pub trait Resolver<S> {
    type Error: ResponseError;
    fn find(
        account: &str,
        domain: &str,
        state: &S
    ) -> Box<dyn Future<Item = Option<Webfinger>, Error = Self::Error>>; fn endpoint(
        (query, state): (Query<WebfingerQuery>, State<S>)
    ) -> Box<dyn Future<Item = HttpResponse, Error = Self::Error>> { ... } }

A trait to ease the implementation of Webfinger Resolvers

This trait can be implemented, and the provided endpoint method used to serve requests to an Actix Web server.

This example is not tested
use actix_webfinger::{Resolver, Webfinger};
use futures::{Future, future::IntoFuture};

struct MyResolver;

impl<S> Resolver<S> for MyResolver {
    type Error = CustomError;

    fn find(
        account: &str,
        domain: &str,
        _state: S
    ) -> Box<dyn Future<Item = Option<Webfinger>, Error = Self::Error>> {
        let webfinger = Webfinger::new(&format!("{}@{}", account, domain));

        // do something

        let f = Ok(Some(webfinger)).into_future();

        Box::new(f)
    }
}

fn main() {
    server::new(|| {
        App::new()
            .resource("/.well-known/webfinger", |r| {
                r.with(<MyResolver as Resolver<()>>::endpoint)
            })
    })
    .bind("127.0.0.1:8000")?
    .run();
}

Associated Types

Loading content...

Required methods

fn find(
    account: &str,
    domain: &str,
    state: &S
) -> Box<dyn Future<Item = Option<Webfinger>, Error = Self::Error>>

Loading content...

Provided methods

fn endpoint(
    (query, state): (Query<WebfingerQuery>, State<S>)
) -> Box<dyn Future<Item = HttpResponse, Error = Self::Error>>

Loading content...

Implementors

Loading content...