Struct BufDnsStreamHandle
pub struct BufDnsStreamHandle { /* private fields */ }Available on crate features
dns and hickory only.Expand description
A buffered channel for outbound DNS messages on a connection.
Used to queue messages for sending over a DNS connection. On the client/resolver side, this buffers outbound queries to nameservers. On the server side, this buffers outbound responses to clients.
Implementations§
§impl BufDnsStreamHandle
impl BufDnsStreamHandle
pub fn new(
remote_addr: SocketAddr,
) -> (BufDnsStreamHandle, Peekable<Fuse<Receiver<SerialMessage>>>)
pub fn new( remote_addr: SocketAddr, ) -> (BufDnsStreamHandle, Peekable<Fuse<Receiver<SerialMessage>>>)
Constructs a new buffered stream handle with the default buffer size (32).
§Arguments
remote_addr- address of the DNS peer (nameserver for clients, client for servers)
pub fn with_buffer_size(
remote_addr: SocketAddr,
buffer_size: usize,
) -> (BufDnsStreamHandle, Peekable<Fuse<Receiver<SerialMessage>>>)
pub fn with_buffer_size( remote_addr: SocketAddr, buffer_size: usize, ) -> (BufDnsStreamHandle, Peekable<Fuse<Receiver<SerialMessage>>>)
Constructs a new buffered stream handle with an explicit buffer size.
Use this when you need a larger buffer to handle high message rates without dropping messages due to backpressure.
§Arguments
remote_addr- address of the DNS peer (nameserver for clients, client for servers)buffer_size- maximum number of messages that can be queued for sending
pub fn with_remote_addr(&self, remote_addr: SocketAddr) -> BufDnsStreamHandle
pub fn with_remote_addr(&self, remote_addr: SocketAddr) -> BufDnsStreamHandle
Associates a different remote address for any responses.
This is mainly useful in server use cases where the incoming address is only known after receiving a packet.
Trait Implementations§
§impl Clone for BufDnsStreamHandle
impl Clone for BufDnsStreamHandle
§fn clone(&self) -> BufDnsStreamHandle
fn clone(&self) -> BufDnsStreamHandle
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read more§impl DnsStreamHandle for BufDnsStreamHandle
impl DnsStreamHandle for BufDnsStreamHandle
Auto Trait Implementations§
impl Freeze for BufDnsStreamHandle
impl !RefUnwindSafe for BufDnsStreamHandle
impl Send for BufDnsStreamHandle
impl Sync for BufDnsStreamHandle
impl Unpin for BufDnsStreamHandle
impl UnsafeUnpin for BufDnsStreamHandle
impl !UnwindSafe for BufDnsStreamHandle
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
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