rustauth-axum 0.2.0

Axum integration for RustAuth.
Documentation
const DEFAULT_BODY_LIMIT: usize = 10 * 1024 * 1024;

/// Axum adapter options.
#[non_exhaustive]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct RustAuthAxumOptions {
    pub(crate) body_limit: usize,
    pub(crate) use_connect_info_for_ip: bool,
    pub(crate) infer_base_url_from_request: bool,
    pub(crate) trust_proxy_headers_for_base_url: bool,
}

impl RustAuthAxumOptions {
    pub fn new() -> Self {
        Self::default()
    }

    #[must_use]
    pub fn body_limit(mut self, body_limit: usize) -> Self {
        self.body_limit = body_limit;
        self
    }

    #[must_use]
    pub fn use_connect_info_for_ip(mut self, enabled: bool) -> Self {
        self.use_connect_info_for_ip = enabled;
        self
    }

    #[must_use]
    pub fn infer_base_url_from_request(mut self, enabled: bool) -> Self {
        self.infer_base_url_from_request = enabled;
        self
    }

    #[must_use]
    pub fn trust_proxy_headers_for_base_url(mut self, enabled: bool) -> Self {
        self.trust_proxy_headers_for_base_url = enabled;
        self
    }
}

impl Default for RustAuthAxumOptions {
    fn default() -> Self {
        Self {
            body_limit: DEFAULT_BODY_LIMIT,
            use_connect_info_for_ip: true,
            infer_base_url_from_request: false,
            trust_proxy_headers_for_base_url: false,
        }
    }
}