Enum AnyRelayMsg
#[non_exhaustive]pub(crate) enum AnyRelayMsg {
Show 32 variants
Begin(Begin),
Data(Data),
End(End),
Connected(Connected),
Sendme(Sendme),
Extend(Extend),
Extended(Extended),
Extend2(Extend2),
Extended2(Extended2),
Truncate(Truncate),
Truncated(Truncated),
Drop(Drop),
Resolve(Resolve),
Resolved(Resolved),
BeginDir(BeginDir),
ConnectUdp(ConnectUdp),
ConnectedUdp(ConnectedUdp),
Datagram(Datagram),
ConfluxLink(ConfluxLink),
ConfluxLinked(ConfluxLinked),
ConfluxLinkedAck(ConfluxLinkedAck),
ConfluxSwitch(ConfluxSwitch),
EstablishIntro(EstablishIntro),
EstablishRendezvous(EstablishRendezvous),
Introduce1(Introduce1),
Introduce2(Introduce2),
Rendezvous1(Rendezvous1),
Rendezvous2(Rendezvous2),
IntroEstablished(IntroEstablished),
RendezvousEstablished(RendezvousEstablished),
IntroduceAck(IntroduceAck),
Unrecognized(Unrecognized),
}
Expand description
A single parsed relay message, sent or received along a circuit
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Begin(Begin)
Create a stream
Data(Data)
Send data on a stream
End(End)
Close a stream
Connected(Connected)
Successful response to a Begin message
Sendme(Sendme)
For flow control
Extend(Extend)
Extend a circuit to a new hop (deprecated)
Extended(Extended)
Successful response to an Extend message (deprecated)
Extend2(Extend2)
Extend a circuit to a new hop
Extended2(Extended2)
Successful response to an Extend2 message
Truncate(Truncate)
Partially close a circuit
Truncated(Truncated)
Tell the client that a circuit has been partially closed
Drop(Drop)
Used for padding
Resolve(Resolve)
Launch a DNS request
Resolved(Resolved)
Response to a Resolve message
BeginDir(BeginDir)
Start a directory stream
ConnectUdp(ConnectUdp)
Start a UDP stream.
ConnectedUdp(ConnectedUdp)
Successful response to a ConnectUdp message
Datagram(Datagram)
UDP stream data
ConfluxLink(ConfluxLink)
Link circuits together at the receiving endpoint
ConfluxLinked(ConfluxLinked)
Confirm that the circuits were linked
ConfluxLinkedAck(ConfluxLinkedAck)
Acknowledge the linkage of the circuits, for RTT measurement.
ConfluxSwitch(ConfluxSwitch)
Switch to another leg in an already linked circuit construction.
EstablishIntro(EstablishIntro)
Establish Introduction
EstablishRendezvous(EstablishRendezvous)
Establish Rendezvous
Introduce1(Introduce1)
Introduce1 (client to introduction point)
Introduce2(Introduce2)
Introduce2 (introduction point to service)
Rendezvous1(Rendezvous1)
Rendezvous1 (service to rendezvous point)
Rendezvous2(Rendezvous2)
Rendezvous2 (rendezvous point to client)
IntroEstablished(IntroEstablished)
Acknowledgement for EstablishIntro.
RendezvousEstablished(RendezvousEstablished)
Acknowledgment for EstablishRendezvous.
IntroduceAck(IntroduceAck)
Acknowledgement for Introduce1.
Unrecognized(Unrecognized)
An unrecognized command.
Trait Implementations§
§impl Clone for AnyRelayMsg
impl Clone for AnyRelayMsg
§fn clone(&self) -> AnyRelayMsg
fn clone(&self) -> AnyRelayMsg
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl Debug for AnyRelayMsg
impl Debug for AnyRelayMsg
§impl From<Begin> for AnyRelayMsg
impl From<Begin> for AnyRelayMsg
§fn from(m: Begin) -> AnyRelayMsg
fn from(m: Begin) -> AnyRelayMsg
§impl From<BeginDir> for AnyRelayMsg
impl From<BeginDir> for AnyRelayMsg
§fn from(m: BeginDir) -> AnyRelayMsg
fn from(m: BeginDir) -> AnyRelayMsg
§impl From<ConfluxLink> for AnyRelayMsg
impl From<ConfluxLink> for AnyRelayMsg
§fn from(m: ConfluxLink) -> AnyRelayMsg
fn from(m: ConfluxLink) -> AnyRelayMsg
§impl From<ConfluxLinked> for AnyRelayMsg
impl From<ConfluxLinked> for AnyRelayMsg
§fn from(m: ConfluxLinked) -> AnyRelayMsg
fn from(m: ConfluxLinked) -> AnyRelayMsg
§impl From<ConfluxLinkedAck> for AnyRelayMsg
impl From<ConfluxLinkedAck> for AnyRelayMsg
§fn from(m: ConfluxLinkedAck) -> AnyRelayMsg
fn from(m: ConfluxLinkedAck) -> AnyRelayMsg
§impl From<ConfluxSwitch> for AnyRelayMsg
impl From<ConfluxSwitch> for AnyRelayMsg
§fn from(m: ConfluxSwitch) -> AnyRelayMsg
fn from(m: ConfluxSwitch) -> AnyRelayMsg
§impl From<ConnectUdp> for AnyRelayMsg
impl From<ConnectUdp> for AnyRelayMsg
§fn from(m: ConnectUdp) -> AnyRelayMsg
fn from(m: ConnectUdp) -> AnyRelayMsg
§impl From<Connected> for AnyRelayMsg
impl From<Connected> for AnyRelayMsg
§fn from(m: Connected) -> AnyRelayMsg
fn from(m: Connected) -> AnyRelayMsg
§impl From<ConnectedUdp> for AnyRelayMsg
impl From<ConnectedUdp> for AnyRelayMsg
§fn from(m: ConnectedUdp) -> AnyRelayMsg
fn from(m: ConnectedUdp) -> AnyRelayMsg
§impl From<Data> for AnyRelayMsg
impl From<Data> for AnyRelayMsg
§fn from(m: Data) -> AnyRelayMsg
fn from(m: Data) -> AnyRelayMsg
§impl From<DataStreamMsg> for AnyRelayMsg
impl From<DataStreamMsg> for AnyRelayMsg
§fn from(msg: DataStreamMsg) -> AnyRelayMsg
fn from(msg: DataStreamMsg) -> AnyRelayMsg
§impl From<Datagram> for AnyRelayMsg
impl From<Datagram> for AnyRelayMsg
§fn from(m: Datagram) -> AnyRelayMsg
fn from(m: Datagram) -> AnyRelayMsg
§impl From<Drop> for AnyRelayMsg
impl From<Drop> for AnyRelayMsg
§fn from(m: Drop) -> AnyRelayMsg
fn from(m: Drop) -> AnyRelayMsg
§impl From<End> for AnyRelayMsg
impl From<End> for AnyRelayMsg
§fn from(m: End) -> AnyRelayMsg
fn from(m: End) -> AnyRelayMsg
§impl From<EstablishIntro> for AnyRelayMsg
impl From<EstablishIntro> for AnyRelayMsg
§fn from(m: EstablishIntro) -> AnyRelayMsg
fn from(m: EstablishIntro) -> AnyRelayMsg
§impl From<EstablishRendezvous> for AnyRelayMsg
impl From<EstablishRendezvous> for AnyRelayMsg
§fn from(m: EstablishRendezvous) -> AnyRelayMsg
fn from(m: EstablishRendezvous) -> AnyRelayMsg
§impl From<Extend> for AnyRelayMsg
impl From<Extend> for AnyRelayMsg
§fn from(m: Extend) -> AnyRelayMsg
fn from(m: Extend) -> AnyRelayMsg
§impl From<Extend2> for AnyRelayMsg
impl From<Extend2> for AnyRelayMsg
§fn from(m: Extend2) -> AnyRelayMsg
fn from(m: Extend2) -> AnyRelayMsg
§impl From<Extended> for AnyRelayMsg
impl From<Extended> for AnyRelayMsg
§fn from(m: Extended) -> AnyRelayMsg
fn from(m: Extended) -> AnyRelayMsg
§impl From<Extended2> for AnyRelayMsg
impl From<Extended2> for AnyRelayMsg
§fn from(m: Extended2) -> AnyRelayMsg
fn from(m: Extended2) -> AnyRelayMsg
§impl From<IncomingStreamRequest> for AnyRelayMsg
impl From<IncomingStreamRequest> for AnyRelayMsg
§fn from(msg: IncomingStreamRequest) -> AnyRelayMsg
fn from(msg: IncomingStreamRequest) -> AnyRelayMsg
§impl From<IntroEstablished> for AnyRelayMsg
impl From<IntroEstablished> for AnyRelayMsg
§fn from(m: IntroEstablished) -> AnyRelayMsg
fn from(m: IntroEstablished) -> AnyRelayMsg
§impl From<Introduce1> for AnyRelayMsg
impl From<Introduce1> for AnyRelayMsg
§fn from(m: Introduce1) -> AnyRelayMsg
fn from(m: Introduce1) -> AnyRelayMsg
§impl From<Introduce2> for AnyRelayMsg
impl From<Introduce2> for AnyRelayMsg
§fn from(m: Introduce2) -> AnyRelayMsg
fn from(m: Introduce2) -> AnyRelayMsg
§impl From<IntroduceAck> for AnyRelayMsg
impl From<IntroduceAck> for AnyRelayMsg
§fn from(m: IntroduceAck) -> AnyRelayMsg
fn from(m: IntroduceAck) -> AnyRelayMsg
Source§impl From<IptMsg> for AnyRelayMsg
impl From<IptMsg> for AnyRelayMsg
Source§fn from(msg: IptMsg) -> AnyRelayMsg
fn from(msg: IptMsg) -> AnyRelayMsg
§impl From<Rendezvous1> for AnyRelayMsg
impl From<Rendezvous1> for AnyRelayMsg
§fn from(m: Rendezvous1) -> AnyRelayMsg
fn from(m: Rendezvous1) -> AnyRelayMsg
§impl From<Rendezvous2> for AnyRelayMsg
impl From<Rendezvous2> for AnyRelayMsg
§fn from(m: Rendezvous2) -> AnyRelayMsg
fn from(m: Rendezvous2) -> AnyRelayMsg
§impl From<RendezvousEstablished> for AnyRelayMsg
impl From<RendezvousEstablished> for AnyRelayMsg
§fn from(m: RendezvousEstablished) -> AnyRelayMsg
fn from(m: RendezvousEstablished) -> AnyRelayMsg
§impl From<Resolve> for AnyRelayMsg
impl From<Resolve> for AnyRelayMsg
§fn from(m: Resolve) -> AnyRelayMsg
fn from(m: Resolve) -> AnyRelayMsg
§impl From<ResolveResponseMsg> for AnyRelayMsg
impl From<ResolveResponseMsg> for AnyRelayMsg
§fn from(msg: ResolveResponseMsg) -> AnyRelayMsg
fn from(msg: ResolveResponseMsg) -> AnyRelayMsg
§impl From<Resolved> for AnyRelayMsg
impl From<Resolved> for AnyRelayMsg
§fn from(m: Resolved) -> AnyRelayMsg
fn from(m: Resolved) -> AnyRelayMsg
§impl From<Sendme> for AnyRelayMsg
impl From<Sendme> for AnyRelayMsg
§fn from(m: Sendme) -> AnyRelayMsg
fn from(m: Sendme) -> AnyRelayMsg
§impl From<Truncate> for AnyRelayMsg
impl From<Truncate> for AnyRelayMsg
§fn from(m: Truncate) -> AnyRelayMsg
fn from(m: Truncate) -> AnyRelayMsg
§impl From<Truncated> for AnyRelayMsg
impl From<Truncated> for AnyRelayMsg
§fn from(m: Truncated) -> AnyRelayMsg
fn from(m: Truncated) -> AnyRelayMsg
§impl From<Unrecognized> for AnyRelayMsg
impl From<Unrecognized> for AnyRelayMsg
§fn from(u: Unrecognized) -> AnyRelayMsg
fn from(u: Unrecognized) -> AnyRelayMsg
§impl HasMemoryCostStructural for AnyRelayMsg
impl HasMemoryCostStructural for AnyRelayMsg
§fn indirect_memory_cost(&self, et: EnabledToken) -> usize
fn indirect_memory_cost(&self, et: EnabledToken) -> usize
§impl RelayMsg for AnyRelayMsg
impl RelayMsg for AnyRelayMsg
§fn encode_onto<W>(self, w: &mut W) -> Result<(), EncodeError>where
W: Writer + ?Sized,
fn encode_onto<W>(self, w: &mut W) -> Result<(), EncodeError>where
W: Writer + ?Sized,
§fn decode_from_reader(
cmd: RelayCmd,
r: &mut Reader<'_>,
) -> Result<AnyRelayMsg, Error>
fn decode_from_reader( cmd: RelayCmd, r: &mut Reader<'_>, ) -> Result<AnyRelayMsg, Error>
cmd
from reader r
.Source§impl TryFrom<AnyRelayMsg> for IptMsg
impl TryFrom<AnyRelayMsg> for IptMsg
Source§type Error = AnyRelayMsg
type Error = AnyRelayMsg
Source§fn try_from(msg: AnyRelayMsg) -> Result<IptMsg, AnyRelayMsg>
fn try_from(msg: AnyRelayMsg) -> Result<IptMsg, AnyRelayMsg>
Auto Trait Implementations§
impl Freeze for AnyRelayMsg
impl RefUnwindSafe for AnyRelayMsg
impl Send for AnyRelayMsg
impl Sync for AnyRelayMsg
impl Unpin for AnyRelayMsg
impl UnwindSafe for AnyRelayMsg
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
, which can then be
downcast
into Box<dyn ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
, which can then be further
downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSend for T
impl<T> DowncastSend for T
§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> HasMemoryCost for Twhere
T: HasMemoryCostStructural,
impl<T> HasMemoryCost for Twhere
T: HasMemoryCostStructural,
§fn memory_cost(&self, et: EnabledToken) -> usize
fn memory_cost(&self, et: EnabledToken) -> usize
self
, in bytes Read more§impl<T> HasTypedMemoryCost<T> for Twhere
T: HasMemoryCost,
impl<T> HasTypedMemoryCost<T> for Twhere
T: HasMemoryCost,
§fn typed_memory_cost(&self, enabled: EnabledToken) -> TypedMemoryCost<T>
fn typed_memory_cost(&self, enabled: EnabledToken) -> TypedMemoryCost<T>
TypedMemoryCost<T>
rather than a raw usize
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> 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> ⓘ
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> ⓘ
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> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.