pub struct IpGateDecision {
pub is_whitelisted: bool,
pub is_exempt: bool,
}Expand description
The skip state a request carries after it passed the global IP gate.
This is the family-local equivalent of the reference engine’s
state.is_whitelisted / state.is_exempt pair. The stateful stages the
engine ships (the rate limiter and the auto-ban violation counter, see
crate::rate_limit and crate::ip_ban) skip for
is_whitelisted || is_exempt exactly what the reference skips for a
whitelist match, and never skip penetration detection. A stage that lands
later (user-agent filter, cloud-provider blocker) must follow the same
rule.
Fields§
§is_whitelisted: boolA non-empty whitelist matched the request IP.
is_exempt: boolexempt_ips matched the request IP. Per the contract, an IP on both
lists is simply a whitelist match with no observable difference, so
this flag adds nothing a whitelist match does not already carry.
Trait Implementations§
Source§impl Clone for IpGateDecision
impl Clone for IpGateDecision
impl Copy for IpGateDecision
Source§impl Debug for IpGateDecision
impl Debug for IpGateDecision
Source§impl Default for IpGateDecision
impl Default for IpGateDecision
impl Eq for IpGateDecision
Source§impl PartialEq for IpGateDecision
impl PartialEq for IpGateDecision
impl StructuralPartialEq for IpGateDecision
Auto Trait Implementations§
impl Freeze for IpGateDecision
impl RefUnwindSafe for IpGateDecision
impl Send for IpGateDecision
impl Sync for IpGateDecision
impl Unpin for IpGateDecision
impl UnsafeUnpin for IpGateDecision
impl UnwindSafe for IpGateDecision
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.