use std::net::SocketAddr;
use crate::util::PinnedFuture;
use crate::{Resources, Response};
pub use crate::server::{HyperBody, HyperRequest};
use super::{ParamsNames, PathParams, RoutePath};
pub trait RawRoute: Send + Sync {
fn validate_requirements(&self, _params: &ParamsNames, _data: &Resources) {}
fn path(&self) -> RoutePath;
fn call<'a>(
&'a self,
req: &'a mut HyperRequest,
address: SocketAddr,
params: &'a PathParams,
resources: &'a Resources,
) -> PinnedFuture<'a, Option<crate::Result<Response>>>;
}