Struct UserOrClientIpKey
pub struct UserOrClientIpKey { /* private fields */ }Available on crate feature
masque only.Expand description
The default InputToRateKey of ConnectUdpLimits: the user an authentication layer in
front identified; else the client IP, by ClientIpRateKey (an IPv6 client by its /64 by
default, a Forwarded address only when a trusted layer set it); else
PrincipalKey::ANONYMOUS. It always yields a key.
Implementations§
§impl UserOrClientIpKey
impl UserOrClientIpKey
pub fn new() -> UserOrClientIpKey
pub fn new() -> UserOrClientIpKey
Users, then client IPs as ClientIpRateKey::new keys them.
pub fn with_client_ip(self, key: ClientIpRateKey) -> UserOrClientIpKey
pub fn with_client_ip(self, key: ClientIpRateKey) -> UserOrClientIpKey
How client IPs are keyed, such as their IPv6 aggregation prefix.
pub fn set_client_ip(&mut self, key: ClientIpRateKey) -> &mut UserOrClientIpKey
pub fn set_client_ip(&mut self, key: ClientIpRateKey) -> &mut UserOrClientIpKey
How client IPs are keyed, such as their IPv6 aggregation prefix.
Trait Implementations§
§impl Clone for UserOrClientIpKey
impl Clone for UserOrClientIpKey
§fn clone(&self) -> UserOrClientIpKey
fn clone(&self) -> UserOrClientIpKey
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read more§impl Debug for UserOrClientIpKey
impl Debug for UserOrClientIpKey
§impl Default for UserOrClientIpKey
impl Default for UserOrClientIpKey
§fn default() -> UserOrClientIpKey
fn default() -> UserOrClientIpKey
Returns the “default value” for a type. Read more
§impl<Input> InputToRateKey<Input> for UserOrClientIpKey
impl<Input> InputToRateKey<Input> for UserOrClientIpKey
Auto Trait Implementations§
impl Freeze for UserOrClientIpKey
impl RefUnwindSafe for UserOrClientIpKey
impl Send for UserOrClientIpKey
impl Sync for UserOrClientIpKey
impl Unpin for UserOrClientIpKey
impl UnsafeUnpin for UserOrClientIpKey
impl UnwindSafe for UserOrClientIpKey
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a rama_grpc::Request§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Create a new
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more