Struct mysql_async::consts::StatusFlags
source · pub struct StatusFlags { /* private fields */ }
Expand description
MySql server status flags
Implementations§
source§impl StatusFlags
impl StatusFlags
sourcepub const SERVER_STATUS_IN_TRANS: StatusFlags = _
pub const SERVER_STATUS_IN_TRANS: StatusFlags = _
Is raised when a multi-statement transaction has been started, either explicitly, by means of BEGIN or COMMIT AND CHAIN, or implicitly, by the first transactional statement, when autocommit=off.
sourcepub const SERVER_STATUS_AUTOCOMMIT: StatusFlags = _
pub const SERVER_STATUS_AUTOCOMMIT: StatusFlags = _
Server in auto_commit mode.
sourcepub const SERVER_MORE_RESULTS_EXISTS: StatusFlags = _
pub const SERVER_MORE_RESULTS_EXISTS: StatusFlags = _
Multi query - next query exists.
pub const SERVER_STATUS_NO_GOOD_INDEX_USED: StatusFlags = _
pub const SERVER_STATUS_NO_INDEX_USED: StatusFlags = _
sourcepub const SERVER_STATUS_CURSOR_EXISTS: StatusFlags = _
pub const SERVER_STATUS_CURSOR_EXISTS: StatusFlags = _
The server was able to fulfill the clients request and opened a read-only non-scrollable cursor for a query. This flag comes in reply to COM_STMT_EXECUTE and COM_STMT_FETCH commands. Used by Binary Protocol Resultset to signal that COM_STMT_FETCH must be used to fetch the row-data.
sourcepub const SERVER_STATUS_LAST_ROW_SENT: StatusFlags = _
pub const SERVER_STATUS_LAST_ROW_SENT: StatusFlags = _
This flag is sent when a read-only cursor is exhausted, in reply to COM_STMT_FETCH command.
sourcepub const SERVER_STATUS_DB_DROPPED: StatusFlags = _
pub const SERVER_STATUS_DB_DROPPED: StatusFlags = _
A database was dropped.
pub const SERVER_STATUS_NO_BACKSLASH_ESCAPES: StatusFlags = _
sourcepub const SERVER_STATUS_METADATA_CHANGED: StatusFlags = _
pub const SERVER_STATUS_METADATA_CHANGED: StatusFlags = _
Sent to the client if after a prepared statement reprepare we discovered that the new statement returns a different number of result set columns.
pub const SERVER_QUERY_WAS_SLOW: StatusFlags = _
sourcepub const SERVER_PS_OUT_PARAMS: StatusFlags = _
pub const SERVER_PS_OUT_PARAMS: StatusFlags = _
To mark ResultSet containing output parameter values.
sourcepub const SERVER_STATUS_IN_TRANS_READONLY: StatusFlags = _
pub const SERVER_STATUS_IN_TRANS_READONLY: StatusFlags = _
Set at the same time as SERVER_STATUS_IN_TRANS if the started multi-statement transaction is a read-only transaction. Cleared when the transaction commits or aborts. Since this flag is sent to clients in OK and EOF packets, the flag indicates the transaction status at the end of command execution.
sourcepub const SERVER_SESSION_STATE_CHANGED: StatusFlags = _
pub const SERVER_SESSION_STATE_CHANGED: StatusFlags = _
This status flag, when on, implies that one of the state information has changed on the server because of the execution of the last statement.
sourcepub const fn empty() -> StatusFlags
pub const fn empty() -> StatusFlags
Returns an empty set of flags.
sourcepub const fn all() -> StatusFlags
pub const fn all() -> StatusFlags
Returns the set containing all flags.
sourcepub const fn from_bits(bits: u16) -> Option<StatusFlags>
pub const fn from_bits(bits: u16) -> Option<StatusFlags>
Convert from underlying bit representation, unless that representation contains bits that do not correspond to a flag.
sourcepub const fn from_bits_truncate(bits: u16) -> StatusFlags
pub const fn from_bits_truncate(bits: u16) -> StatusFlags
Convert from underlying bit representation, dropping any bits that do not correspond to flags.
sourcepub const unsafe fn from_bits_unchecked(bits: u16) -> StatusFlags
pub const unsafe fn from_bits_unchecked(bits: u16) -> StatusFlags
Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).
Safety
The caller of the bitflags!
macro can chose to allow or
disallow extra bits for their bitflags type.
The caller of from_bits_unchecked()
has to ensure that
all bits correspond to a defined flag or that extra bits
are valid for this bitflags type.
sourcepub const fn intersects(&self, other: StatusFlags) -> bool
pub const fn intersects(&self, other: StatusFlags) -> bool
Returns true
if there are flags common to both self
and other
.
sourcepub const fn contains(&self, other: StatusFlags) -> bool
pub const fn contains(&self, other: StatusFlags) -> bool
Returns true
if all of the flags in other
are contained within self
.
sourcepub fn insert(&mut self, other: StatusFlags)
pub fn insert(&mut self, other: StatusFlags)
Inserts the specified flags in-place.
sourcepub fn remove(&mut self, other: StatusFlags)
pub fn remove(&mut self, other: StatusFlags)
Removes the specified flags in-place.
sourcepub fn toggle(&mut self, other: StatusFlags)
pub fn toggle(&mut self, other: StatusFlags)
Toggles the specified flags in-place.
sourcepub fn set(&mut self, other: StatusFlags, value: bool)
pub fn set(&mut self, other: StatusFlags, value: bool)
Inserts or removes the specified flags depending on the passed value.
sourcepub const fn intersection(self, other: StatusFlags) -> StatusFlags
pub const fn intersection(self, other: StatusFlags) -> StatusFlags
Returns the intersection between the flags in self
and
other
.
Specifically, the returned set contains only the flags which are
present in both self
and other
.
This is equivalent to using the &
operator (e.g.
ops::BitAnd
), as in flags & other
.
sourcepub const fn union(self, other: StatusFlags) -> StatusFlags
pub const fn union(self, other: StatusFlags) -> StatusFlags
Returns the union of between the flags in self
and other
.
Specifically, the returned set contains all flags which are
present in either self
or other
, including any which are
present in both (see Self::symmetric_difference
if that
is undesirable).
This is equivalent to using the |
operator (e.g.
ops::BitOr
), as in flags | other
.
sourcepub const fn difference(self, other: StatusFlags) -> StatusFlags
pub const fn difference(self, other: StatusFlags) -> StatusFlags
Returns the difference between the flags in self
and other
.
Specifically, the returned set contains all flags present in
self
, except for the ones present in other
.
It is also conceptually equivalent to the “bit-clear” operation:
flags & !other
(and this syntax is also supported).
This is equivalent to using the -
operator (e.g.
ops::Sub
), as in flags - other
.
sourcepub const fn symmetric_difference(self, other: StatusFlags) -> StatusFlags
pub const fn symmetric_difference(self, other: StatusFlags) -> StatusFlags
Returns the symmetric difference between the flags
in self
and other
.
Specifically, the returned set contains the flags present which
are present in self
or other
, but that are not present in
both. Equivalently, it contains the flags present in exactly
one of the sets self
and other
.
This is equivalent to using the ^
operator (e.g.
ops::BitXor
), as in flags ^ other
.
sourcepub const fn complement(self) -> StatusFlags
pub const fn complement(self) -> StatusFlags
Returns the complement of this set of flags.
Specifically, the returned set contains all the flags which are
not set in self
, but which are allowed for this type.
Alternatively, it can be thought of as the set difference
between Self::all()
and self
(e.g. Self::all() - self
)
This is equivalent to using the !
operator (e.g.
ops::Not
), as in !flags
.
Trait Implementations§
source§impl Binary for StatusFlags
impl Binary for StatusFlags
source§impl BitAnd for StatusFlags
impl BitAnd for StatusFlags
source§fn bitand(self, other: StatusFlags) -> StatusFlags
fn bitand(self, other: StatusFlags) -> StatusFlags
Returns the intersection between the two sets of flags.
§type Output = StatusFlags
type Output = StatusFlags
&
operator.source§impl BitAndAssign for StatusFlags
impl BitAndAssign for StatusFlags
source§fn bitand_assign(&mut self, other: StatusFlags)
fn bitand_assign(&mut self, other: StatusFlags)
Disables all flags disabled in the set.
source§impl BitOr for StatusFlags
impl BitOr for StatusFlags
source§fn bitor(self, other: StatusFlags) -> StatusFlags
fn bitor(self, other: StatusFlags) -> StatusFlags
Returns the union of the two sets of flags.
§type Output = StatusFlags
type Output = StatusFlags
|
operator.source§impl BitOrAssign for StatusFlags
impl BitOrAssign for StatusFlags
source§fn bitor_assign(&mut self, other: StatusFlags)
fn bitor_assign(&mut self, other: StatusFlags)
Adds the set of flags.
source§impl BitXor for StatusFlags
impl BitXor for StatusFlags
source§fn bitxor(self, other: StatusFlags) -> StatusFlags
fn bitxor(self, other: StatusFlags) -> StatusFlags
Returns the left flags, but with all the right flags toggled.
§type Output = StatusFlags
type Output = StatusFlags
^
operator.source§impl BitXorAssign for StatusFlags
impl BitXorAssign for StatusFlags
source§fn bitxor_assign(&mut self, other: StatusFlags)
fn bitxor_assign(&mut self, other: StatusFlags)
Toggles the set of flags.
source§impl Bitflags for StatusFlags
impl Bitflags for StatusFlags
type Repr = u16
fn empty() -> StatusFlags
fn all() -> StatusFlags
fn bits(&self) -> <StatusFlags as Bitflags>::Repr
fn from_bits(bits: <StatusFlags as Bitflags>::Repr) -> Option<StatusFlags>
fn from_bits_truncate(bits: <StatusFlags as Bitflags>::Repr) -> StatusFlags
source§unsafe fn from_bits_unchecked(
bits: <StatusFlags as Bitflags>::Repr
) -> StatusFlags
unsafe fn from_bits_unchecked( bits: <StatusFlags as Bitflags>::Repr ) -> StatusFlags
fn is_empty(&self) -> bool
fn is_all(&self) -> bool
fn intersects(&self, other: StatusFlags) -> bool
fn contains(&self, other: StatusFlags) -> bool
fn insert(&mut self, other: StatusFlags)
fn remove(&mut self, other: StatusFlags)
fn toggle(&mut self, other: StatusFlags)
fn set(&mut self, other: StatusFlags, value: bool)
source§impl Clone for StatusFlags
impl Clone for StatusFlags
source§fn clone(&self) -> StatusFlags
fn clone(&self) -> StatusFlags
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for StatusFlags
impl Debug for StatusFlags
source§impl Default for StatusFlags
impl Default for StatusFlags
source§fn default() -> StatusFlags
fn default() -> StatusFlags
source§impl Extend<StatusFlags> for StatusFlags
impl Extend<StatusFlags> for StatusFlags
source§fn extend<T>(&mut self, iterator: T)where
T: IntoIterator<Item = StatusFlags>,
fn extend<T>(&mut self, iterator: T)where T: IntoIterator<Item = StatusFlags>,
source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)source§impl FromIterator<StatusFlags> for StatusFlags
impl FromIterator<StatusFlags> for StatusFlags
source§fn from_iter<T>(iterator: T) -> StatusFlagswhere
T: IntoIterator<Item = StatusFlags>,
fn from_iter<T>(iterator: T) -> StatusFlagswhere T: IntoIterator<Item = StatusFlags>,
source§impl Hash for StatusFlags
impl Hash for StatusFlags
source§impl LowerHex for StatusFlags
impl LowerHex for StatusFlags
source§impl Not for StatusFlags
impl Not for StatusFlags
source§fn not(self) -> StatusFlags
fn not(self) -> StatusFlags
Returns the complement of this set of flags.
§type Output = StatusFlags
type Output = StatusFlags
!
operator.source§impl Octal for StatusFlags
impl Octal for StatusFlags
source§impl Ord for StatusFlags
impl Ord for StatusFlags
source§fn cmp(&self, other: &StatusFlags) -> Ordering
fn cmp(&self, other: &StatusFlags) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere Self: Sized,
source§impl PartialEq for StatusFlags
impl PartialEq for StatusFlags
source§fn eq(&self, other: &StatusFlags) -> bool
fn eq(&self, other: &StatusFlags) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd for StatusFlags
impl PartialOrd for StatusFlags
source§fn partial_cmp(&self, other: &StatusFlags) -> Option<Ordering>
fn partial_cmp(&self, other: &StatusFlags) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moresource§impl Sub for StatusFlags
impl Sub for StatusFlags
source§fn sub(self, other: StatusFlags) -> StatusFlags
fn sub(self, other: StatusFlags) -> StatusFlags
Returns the set difference of the two sets of flags.
§type Output = StatusFlags
type Output = StatusFlags
-
operator.source§impl SubAssign for StatusFlags
impl SubAssign for StatusFlags
source§fn sub_assign(&mut self, other: StatusFlags)
fn sub_assign(&mut self, other: StatusFlags)
Disables all flags enabled in the set.
source§impl TryFrom<u16> for StatusFlags
impl TryFrom<u16> for StatusFlags
§type Error = UnknownStatusFlags
type Error = UnknownStatusFlags
source§fn try_from(val: u16) -> Result<StatusFlags, UnknownStatusFlags>
fn try_from(val: u16) -> Result<StatusFlags, UnknownStatusFlags>
source§impl UpperHex for StatusFlags
impl UpperHex for StatusFlags
impl Copy for StatusFlags
impl Eq for StatusFlags
impl StructuralEq for StatusFlags
impl StructuralPartialEq for StatusFlags
Auto Trait Implementations§
impl RefUnwindSafe for StatusFlags
impl Send for StatusFlags
impl Sync for StatusFlags
impl Unpin for StatusFlags
impl UnwindSafe for StatusFlags
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> CallHasher for Twhere
T: Hash + ?Sized,
impl<T> CallHasher for Twhere T: Hash + ?Sized,
source§impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.source§impl<T> FmtForward for T
impl<T> FmtForward for T
source§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.source§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.source§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.source§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.source§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.source§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.source§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.source§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.source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere T: ?Sized,
source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere Self: Sized,
source§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 moresource§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 moresource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere Self: Borrow<B>, B: 'a + ?Sized, R: 'a,
source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R ) -> Rwhere Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,
source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere Self: AsRef<U>, U: 'a + ?Sized, R: 'a,
self
, then passes self.as_ref()
into the pipe function.source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere Self: AsMut<U>, U: 'a + ?Sized, R: 'a,
self
, then passes self.as_mut()
into the pipe
function.source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T> Tap for T
impl<T> Tap for T
source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere Self: Borrow<B>, B: ?Sized,
Borrow<B>
of a value. Read moresource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere Self: BorrowMut<B>, B: ?Sized,
BorrowMut<B>
of a value. Read moresource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere Self: AsRef<R>, R: ?Sized,
AsRef<R>
view of a value. Read moresource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere Self: AsMut<R>, R: ?Sized,
AsMut<R>
view of a value. Read moresource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere Self: Deref<Target = T>, T: ?Sized,
Deref::Target
of a value. Read moresource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere Self: DerefMut<Target = T> + Deref, T: ?Sized,
Deref::Target
of a value. Read moresource§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.source§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.source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere Self: Borrow<B>, B: ?Sized,
.tap_borrow()
only in debug builds, and is erased in release
builds.source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere Self: BorrowMut<B>, B: ?Sized,
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere Self: AsRef<R>, R: ?Sized,
.tap_ref()
only in debug builds, and is erased in release
builds.source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere Self: AsMut<R>, R: ?Sized,
.tap_ref_mut()
only in debug builds, and is erased in release
builds.