pub struct SE2 { /* private fields */ }Expand description
SE(2) group element representing rigid body transformations in 2D.
Stored as a flat SVector<f64, 3> = [tx, ty, θ] for contiguous memory
compatible with zero-copy faer views.
Implementations§
Source§impl SE2
impl SE2
Sourcepub const DIM: usize = 2
pub const DIM: usize = 2
Space dimension - dimension of the ambient space that the group acts on
Sourcepub fn jacobian_identity() -> Matrix<f64, Const<3>, Const<3>, ArrayStorage<f64, 3, 3>>
pub fn jacobian_identity() -> Matrix<f64, Const<3>, Const<3>, ArrayStorage<f64, 3, 3>>
Get the identity matrix for Jacobians.
Sourcepub fn new(
translation: Matrix<f64, Const<2>, Const<1>, ArrayStorage<f64, 2, 1>>,
rotation: Unit<Complex<f64>>,
) -> SE2
pub fn new( translation: Matrix<f64, Const<2>, Const<1>, ArrayStorage<f64, 2, 1>>, rotation: Unit<Complex<f64>>, ) -> SE2
Create a new SE2 element from translation and rotation.
Sourcepub fn from_xy_angle(x: f64, y: f64, theta: f64) -> SE2
pub fn from_xy_angle(x: f64, y: f64, theta: f64) -> SE2
Create SE2 from translation components and angle.
Sourcepub fn from_xy_complex(x: f64, y: f64, real: f64, imag: f64) -> SE2
pub fn from_xy_complex(x: f64, y: f64, real: f64, imag: f64) -> SE2
Create SE2 from translation components and complex rotation.
Sourcepub fn from_isometry(isometry: Isometry<f64, Unit<Complex<f64>>, 2>) -> SE2
pub fn from_isometry(isometry: Isometry<f64, Unit<Complex<f64>>, 2>) -> SE2
Create SE2 directly from an Isometry2.
Sourcepub fn from_translation_so2(
translation: Matrix<f64, Const<2>, Const<1>, ArrayStorage<f64, 2, 1>>,
rotation: SO2,
) -> SE2
pub fn from_translation_so2( translation: Matrix<f64, Const<2>, Const<1>, ArrayStorage<f64, 2, 1>>, rotation: SO2, ) -> SE2
Create SE2 from Vector2 and SO2 components.
Sourcepub fn translation(
&self,
) -> Matrix<f64, Const<2>, Const<1>, ArrayStorage<f64, 2, 1>>
pub fn translation( &self, ) -> Matrix<f64, Const<2>, Const<1>, ArrayStorage<f64, 2, 1>>
Get the translation part as a Vector2.
Sourcepub fn rotation_complex(&self) -> Unit<Complex<f64>>
pub fn rotation_complex(&self) -> Unit<Complex<f64>>
Get the rotation part as UnitComplex.
Sourcepub fn rotation_angle(&self) -> f64
pub fn rotation_angle(&self) -> f64
Get the rotation angle.
Sourcepub fn rotation_so2(&self) -> SO2
pub fn rotation_so2(&self) -> SO2
Get the rotation part as SO2.
Sourcepub fn isometry(&self) -> Isometry<f64, Unit<Complex<f64>>, 2>
pub fn isometry(&self) -> Isometry<f64, Unit<Complex<f64>>, 2>
Get as an Isometry2 (convenience method).
Sourcepub fn matrix(&self) -> Matrix<f64, Const<3>, Const<3>, ArrayStorage<f64, 3, 3>>
pub fn matrix(&self) -> Matrix<f64, Const<3>, Const<3>, ArrayStorage<f64, 3, 3>>
Get the transformation matrix (3x3 homogeneous matrix).
Sourcepub fn rotation_matrix(
&self,
) -> Matrix<f64, Const<2>, Const<2>, ArrayStorage<f64, 2, 2>>
pub fn rotation_matrix( &self, ) -> Matrix<f64, Const<2>, Const<2>, ArrayStorage<f64, 2, 2>>
Get the rotation matrix (2x2).
Trait Implementations§
Source§impl LieGroup for SE2
impl LieGroup for SE2
Source§fn compose(
&self,
other: &SE2,
jacobian_self: Option<&mut <SE2 as LieGroup>::JacobianMatrix>,
jacobian_other: Option<&mut <SE2 as LieGroup>::JacobianMatrix>,
) -> SE2
fn compose( &self, other: &SE2, jacobian_self: Option<&mut <SE2 as LieGroup>::JacobianMatrix>, jacobian_other: Option<&mut <SE2 as LieGroup>::JacobianMatrix>, ) -> SE2
Composition of this and another SE2 element.
Source§fn log(
&self,
jacobian: Option<&mut <SE2 as LieGroup>::JacobianMatrix>,
) -> <SE2 as LieGroup>::TangentVector
fn log( &self, jacobian: Option<&mut <SE2 as LieGroup>::JacobianMatrix>, ) -> <SE2 as LieGroup>::TangentVector
Get the SE2 corresponding Lie algebra element in vector form.
Source§fn vee(&self) -> <SE2 as LieGroup>::TangentVector
fn vee(&self) -> <SE2 as LieGroup>::TangentVector
Vee operator: log(g)^∨.
Maps a group element g ∈ G to its tangent vector log(g)^∨ ∈ 𝔤. For SE(2), this is the same as log().
Source§fn is_approx(&self, other: &SE2, tolerance: f64) -> bool
fn is_approx(&self, other: &SE2, tolerance: f64) -> bool
Check if the element is approximately equal to another element.
§Arguments
other- The other element to compare withtolerance- The tolerance for the comparison
Source§type TangentVector = SE2Tangent
type TangentVector = SE2Tangent
Source§type JacobianMatrix = Matrix<f64, Const<3>, Const<3>, ArrayStorage<f64, 3, 3>>
type JacobianMatrix = Matrix<f64, Const<3>, Const<3>, ArrayStorage<f64, 3, 3>>
Source§type LieAlgebra = Matrix<f64, Const<3>, Const<3>, ArrayStorage<f64, 3, 3>>
type LieAlgebra = Matrix<f64, Const<3>, Const<3>, ArrayStorage<f64, 3, 3>>
Source§fn act(
&self,
vector: &Matrix<f64, Const<3>, Const<1>, ArrayStorage<f64, 3, 1>>,
jacobian_self: Option<&mut <SE2 as LieGroup>::JacobianMatrix>,
jacobian_vector: Option<&mut Matrix<f64, Const<3>, Const<3>, ArrayStorage<f64, 3, 3>>>,
) -> Matrix<f64, Const<3>, Const<1>, ArrayStorage<f64, 3, 1>>
fn act( &self, vector: &Matrix<f64, Const<3>, Const<1>, ArrayStorage<f64, 3, 1>>, jacobian_self: Option<&mut <SE2 as LieGroup>::JacobianMatrix>, jacobian_vector: Option<&mut Matrix<f64, Const<3>, Const<3>, ArrayStorage<f64, 3, 3>>>, ) -> Matrix<f64, Const<3>, Const<1>, ArrayStorage<f64, 3, 1>>
Source§fn jacobian_identity() -> <SE2 as LieGroup>::JacobianMatrix
fn jacobian_identity() -> <SE2 as LieGroup>::JacobianMatrix
Source§fn zero_jacobian() -> <SE2 as LieGroup>::JacobianMatrix
fn zero_jacobian() -> <SE2 as LieGroup>::JacobianMatrix
Source§fn is_valid(&self, _tolerance: f64) -> bool
fn is_valid(&self, _tolerance: f64) -> bool
Source§fn as_param_slice(&self) -> &[f64]
fn as_param_slice(&self) -> &[f64]
Source§fn as_param_slice_mut(&mut self) -> &mut [f64]
fn as_param_slice_mut(&mut self) -> &mut [f64]
Source§fn from_param_slice(s: &[f64]) -> SE2
fn from_param_slice(s: &[f64]) -> SE2
as_param_slice).Source§fn right_plus(
&self,
tangent: &Self::TangentVector,
jacobian_self: Option<&mut Self::JacobianMatrix>,
jacobian_tangent: Option<&mut Self::JacobianMatrix>,
) -> Self
fn right_plus( &self, tangent: &Self::TangentVector, jacobian_self: Option<&mut Self::JacobianMatrix>, jacobian_tangent: Option<&mut Self::JacobianMatrix>, ) -> Self
Source§fn right_minus(
&self,
other: &Self,
jacobian_self: Option<&mut Self::JacobianMatrix>,
jacobian_other: Option<&mut Self::JacobianMatrix>,
) -> Self::TangentVector
fn right_minus( &self, other: &Self, jacobian_self: Option<&mut Self::JacobianMatrix>, jacobian_other: Option<&mut Self::JacobianMatrix>, ) -> Self::TangentVector
Source§fn left_plus(
&self,
tangent: &Self::TangentVector,
jacobian_tangent: Option<&mut Self::JacobianMatrix>,
jacobian_self: Option<&mut Self::JacobianMatrix>,
) -> Self
fn left_plus( &self, tangent: &Self::TangentVector, jacobian_tangent: Option<&mut Self::JacobianMatrix>, jacobian_self: Option<&mut Self::JacobianMatrix>, ) -> Self
Source§fn left_minus(
&self,
other: &Self,
jacobian_self: Option<&mut Self::JacobianMatrix>,
jacobian_other: Option<&mut Self::JacobianMatrix>,
) -> Self::TangentVector
fn left_minus( &self, other: &Self, jacobian_self: Option<&mut Self::JacobianMatrix>, jacobian_other: Option<&mut Self::JacobianMatrix>, ) -> Self::TangentVector
Source§fn plus(
&self,
tangent: &Self::TangentVector,
jacobian_self: Option<&mut Self::JacobianMatrix>,
jacobian_tangent: Option<&mut Self::JacobianMatrix>,
) -> Self
fn plus( &self, tangent: &Self::TangentVector, jacobian_self: Option<&mut Self::JacobianMatrix>, jacobian_tangent: Option<&mut Self::JacobianMatrix>, ) -> Self
Source§fn minus(
&self,
other: &Self,
jacobian_self: Option<&mut Self::JacobianMatrix>,
jacobian_other: Option<&mut Self::JacobianMatrix>,
) -> Self::TangentVector
fn minus( &self, other: &Self, jacobian_self: Option<&mut Self::JacobianMatrix>, jacobian_other: Option<&mut Self::JacobianMatrix>, ) -> Self::TangentVector
Source§fn between(
&self,
other: &Self,
jacobian_self: Option<&mut Self::JacobianMatrix>,
jacobian_other: Option<&mut Self::JacobianMatrix>,
) -> Self
fn between( &self, other: &Self, jacobian_self: Option<&mut Self::JacobianMatrix>, jacobian_other: Option<&mut Self::JacobianMatrix>, ) -> Self
Source§fn tangent_dim(&self) -> usize
fn tangent_dim(&self) -> usize
Source§impl RerunConvert2D for SE2
Available on crate feature visualization only.
impl RerunConvert2D for SE2
visualization only.Source§fn to_rerun_vec2d(&self) -> Vec2D
fn to_rerun_vec2d(&self) -> Vec2D
Source§fn to_rerun_points2d(&self) -> Points2D
fn to_rerun_points2d(&self) -> Points2D
Source§fn to_rerun_arrows2d(&self) -> Arrows2D
fn to_rerun_arrows2d(&self) -> Arrows2D
Source§fn to_rerun_transform_3d(&self) -> Transform3D
fn to_rerun_transform_3d(&self) -> Transform3D
impl StructuralPartialEq for SE2
Source§impl Tangent<SE2> for SE2Tangent
impl Tangent<SE2> for SE2Tangent
Source§fn exp(&self, jacobian: Option<&mut <SE2 as LieGroup>::JacobianMatrix>) -> SE2
fn exp(&self, jacobian: Option<&mut <SE2 as LieGroup>::JacobianMatrix>) -> SE2
Get the SE2 element.
Source§fn right_jacobian(&self) -> <SE2 as LieGroup>::JacobianMatrix
fn right_jacobian(&self) -> <SE2 as LieGroup>::JacobianMatrix
Right Jacobian Jr.
Source§fn left_jacobian(&self) -> <SE2 as LieGroup>::JacobianMatrix
fn left_jacobian(&self) -> <SE2 as LieGroup>::JacobianMatrix
Left Jacobian Jl.
Source§fn right_jacobian_inv(&self) -> <SE2 as LieGroup>::JacobianMatrix
fn right_jacobian_inv(&self) -> <SE2 as LieGroup>::JacobianMatrix
Inverse of right Jacobian Jr⁻¹.
Source§fn left_jacobian_inv(&self) -> <SE2 as LieGroup>::JacobianMatrix
fn left_jacobian_inv(&self) -> <SE2 as LieGroup>::JacobianMatrix
Inverse of left Jacobian Jl⁻¹.
Source§fn normalized(&self) -> <SE2 as LieGroup>::TangentVector
fn normalized(&self) -> <SE2 as LieGroup>::TangentVector
Return a unit tangent vector in the same direction.
Source§fn small_adj(&self) -> <SE2 as LieGroup>::JacobianMatrix
fn small_adj(&self) -> <SE2 as LieGroup>::JacobianMatrix
Small adjoint matrix for SE(2).
For SE(2), the small adjoint involves the angular component.
Source§fn lie_bracket(&self, other: &SE2Tangent) -> <SE2 as LieGroup>::TangentVector
fn lie_bracket(&self, other: &SE2Tangent) -> <SE2 as LieGroup>::TangentVector
Lie bracket for SE(2).
Computes the Lie bracket [this, other] = this.small_adj() * other.
Source§fn is_approx(&self, other: &SE2Tangent, tolerance: f64) -> bool
fn is_approx(&self, other: &SE2Tangent, tolerance: f64) -> bool
Check if this tangent vector is approximately equal to another.
§Arguments
other- The other tangent vector to compare withtolerance- The tolerance for the comparison
Source§fn from_slice(s: &[f64]) -> SE2Tangent
fn from_slice(s: &[f64]) -> SE2Tangent
as_slice).Source§fn is_dynamic() -> bool
fn is_dynamic() -> bool
Auto Trait Implementations§
impl Freeze for SE2
impl RefUnwindSafe for SE2
impl Send for SE2
impl Sync for SE2
impl Unpin for SE2
impl UnsafeUnpin for SE2
impl UnwindSafe for SE2
Blanket Implementations§
impl<T> Allocation for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
Source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
Source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
Source§impl<T> ErrorLogging for Twhere
T: Display,
impl<T> ErrorLogging for Twhere
T: Display,
impl<T, U> Imply<T> for U
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> 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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::RequestSource§impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
Source§fn lossless_try_into(self) -> Option<Dst>
fn lossless_try_into(self) -> Option<Dst>
Source§impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
Source§fn lossy_into(self) -> Dst
fn lossy_into(self) -> Dst
Source§impl<T> OverflowingAs for T
impl<T> OverflowingAs for T
Source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
Source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
Source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
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) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§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
Source§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.Source§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.Source§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.Source§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> SaturatingAs for T
impl<T> SaturatingAs for T
Source§fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
Source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
Source§fn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
Source§impl<T> StrictAs for T
impl<T> StrictAs for T
Source§fn strict_as<Dst>(self) -> Dstwhere
T: StrictCast<Dst>,
fn strict_as<Dst>(self) -> Dstwhere
T: StrictCast<Dst>,
Source§impl<Src, Dst> StrictCastFrom<Src> for Dstwhere
Src: StrictCast<Dst>,
impl<Src, Dst> StrictCastFrom<Src> for Dstwhere
Src: StrictCast<Dst>,
Source§fn strict_cast_from(src: Src) -> Dst
fn strict_cast_from(src: Src) -> Dst
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.Source§impl<T> Tap for T
impl<T> Tap for T
Source§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 moreSource§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 moreSource§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 moreSource§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 moreSource§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 moreSource§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 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)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.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)) -> 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.Source§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.Source§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.Source§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.