use Future;
use crateResult;
/// Resolves the authenticated user's role from an incoming HTTP request.
///
/// Implement this trait on a concrete type and pass it to [`super::middleware()`].
/// The method receives mutable access to request parts so it can call axum
/// extractors such as `Session` internally.
///
/// This trait uses RPITIT and is **not** object-safe. Use it as a concrete type
/// parameter, never as `dyn RoleExtractor`.