Struct IpRoute
pub struct IpRoute { /* private fields */ }Available on crate feature
masque only.Expand description
An inclusive IP address range the sender is willing to route.
Ranges need not be CIDRs. protocol: None encodes zero (all protocols);
Some(HOP_BY_HOP) cannot be represented here. ICMP remains permitted by
RFC 9484 even when another specific protocol is selected.
Implementations§
§impl IpRoute
impl IpRoute
pub fn new(
start: IpAddr,
end: IpAddr,
protocol: Option<IpProtocol>,
) -> Result<IpRoute, ConnectIpProtocolError>
pub fn new( start: IpAddr, end: IpAddr, protocol: Option<IpProtocol>, ) -> Result<IpRoute, ConnectIpProtocolError>
Construct an inclusive range. Both addresses must have the same family,
the end must not precede the start, and protocol zero is represented by None.
pub fn from_prefix(
prefix: IpNet,
protocol: Option<IpProtocol>,
) -> Result<IpRoute, ConnectIpProtocolError>
pub fn from_prefix( prefix: IpNet, protocol: Option<IpProtocol>, ) -> Result<IpRoute, ConnectIpProtocolError>
Route all addresses in a prefix, without allocating individual addresses.
Protocol zero is represented by None (all protocols).
pub const fn protocol(&self) -> Option<IpProtocol>
pub const fn protocol(&self) -> Option<IpProtocol>
Restricted protocol, or all protocols.
pub fn contains(self, address: IpAddr) -> bool
pub fn contains(self, address: IpAddr) -> bool
Whether the address is in this range, irrespective of protocol.
pub fn allows(self, address: IpAddr, protocol: Option<IpProtocol>) -> bool
pub fn allows(self, address: IpAddr, protocol: Option<IpProtocol>) -> bool
Whether this range permits an address and known protocol.
Trait Implementations§
impl Copy for IpRoute
impl Eq for IpRoute
impl StructuralPartialEq for IpRoute
Auto Trait Implementations§
impl Freeze for IpRoute
impl RefUnwindSafe for IpRoute
impl Send for IpRoute
impl Sync for IpRoute
impl Unpin for IpRoute
impl UnsafeUnpin for IpRoute
impl UnwindSafe for IpRoute
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§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