Struct Vec2D

Source
pub struct Vec2D<T> {
    x: T,
    y: T,
}
Expand description

A 2D vector generic over any numeric type.

This struct represents a 2D point or vector in space and provides common mathematical operations such as addition, normalization, rotation, and distance calculations.

§Type Parameters

  • T - The functionality for the vector depends on traits implemented by T.

Fields§

§x: T

The x-component of the vector.

§y: T

The y-component of the vector.

Implementations§

Source§

impl<T> Vec2D<T>

Source

pub fn abs(&self) -> T

Computes the magnitude (absolute value) of the vector.

§Returns

The magnitude of the vector as a scalar of type T.

Source

pub fn abs_sq(&self) -> T

Source

pub fn round(&self) -> Self

Source

pub fn round_to_2(&self) -> Self

Source

pub fn floor(&self) -> Self

Source

pub fn from_real<R>(other: &Vec2D<R>) -> Self
where R: Copy + ToFixed,

Source

pub fn to(&self, other: &Self) -> Self

Creates a vector pointing from the current vector (self) to another vector (other).

§Arguments
  • other - The target vector.
§Returns

A new vector representing the direction from self to other.

Source

pub fn to_num<R: FromFixed + Copy>(self) -> Vec2D<R>

Source

pub fn project_overboundary_fw(&self, dir: &Self) -> Self

Source

pub fn project_overboundary_bw(&self, dir: &Self) -> Self

Source

pub fn unwrapped_to(&self, other: &Self) -> Self

Computes an “unwrapped” vector pointing from the current vector (self) to another vector (other).

This method considers potential wrapping around a 2D map (based on the map size) and calculates the smallest vector that connects self to other. The wrapping allows for efficient navigation across boundaries.

§Arguments
  • other - The target vector to which the direction is computed.
§Returns

A Vec2D representing the shortest unwrapped direction from self to other.

Source

pub fn unwrap_all(&self) -> [Self; 9]

Source

pub fn unwrapped_to_top_right(&self, other: &Self) -> Self

Source

pub fn unwrapped_to_bottom_right(&self, other: &Self) -> Self

Source

fn get_projected_in_range( &self, to: &Self, range: (&[i8], &[i8]), ) -> Vec<(Self, I64F64)>

Source

pub fn perp_unit_to(&self, other: &Self) -> Self

Computes a perpendicular unit vector pointing to another vector (other).

The direction of the perpendicular vector depends on whether self is clockwise or counterclockwise to other.

§Arguments
  • other - The target vector to compare directions with.
§Returns

A unit Vec2D perpendicular to self pointing towards other. Returns a zero vector if self and other are collinear.

Source

pub fn perp_unit(&self, clockwise: bool) -> Self

Computes a perpendicular unit vector to the current vector.

The direction of the perpendicular vector depends on the clockwise parameter.

§Arguments
  • clockwise - A boolean indicating the direction. true for clockwise, false for counterclockwise.
§Returns

A normalized perpendicular Vec2D.

Source

pub fn flip_unit(&self) -> Self

Computes a flipped collinear unit vector to the current vector.

This is equivalent to rotating the vector 180 degrees.

§Returns

A normalized flipped collinear Vec2D.

Source

pub fn is_clockwise_to(&self, other: &Self) -> Option<bool>

Determines whether the current vector is clockwise relative to another vector (other).

This is determined using the cross product:

  • Some(true) if self is clockwise to other.
  • Some(false) if self is counterclockwise to other.
  • None if self and other are collinear.
§Arguments
  • other - The vector to compare relative direction with.
§Returns

An Option<bool> indicating the relative direction.

Source

pub fn angle_to(&self, other: &Self) -> T

Computes the angle (in degrees) between the current vector and another vector (other).

The method calculates the cosine of the angle using the dot product, clamps it to the valid range of [-1, 1], and then computes the angle in degrees.

§Arguments
  • other - The target vector to compute the angle to.
§Returns

The angle in degrees as a scalar of type T.

Source

pub fn normalize(self) -> Self

Normalizes the vector to have a magnitude of 1. If the magnitude is zero, the original vector is returned unmodified.

§Returns

A normalized vector.

Source

pub fn rotate_by(&mut self, angle_degrees: T)

Rotates the vector by a given angle in degrees.

§Arguments
  • angle_degrees - The angle to rotate by, in degrees.
Source

pub fn is_eq_signum(&self, other: &Self) -> bool

Source

pub fn euclid_distance(&self, other: &Self) -> T

Computes the Euclidean distance between the current vector and another vector.

§Arguments
  • other - The other vector to compute the distance to.
§Returns

The Euclidean distance as a scalar of type T.

Source

pub fn euclid_distance_sq(&self, other: &Self) -> T

Computes the Euclidean distance squared.

§Arguments
  • other - The other vector to compute the distance to.
§Returns

The Euclidean distance squared as a scalar of type T.

Source

pub fn from_axis_and_val(axis: VecAxis, val: T) -> Self

Source§

impl<T: Copy> Vec2D<T>

Source

pub const fn new(x: T, y: T) -> Self

Creates a new vector with the given x and y components.

§Arguments
  • x - The x-component of the vector.
  • y - The y-component of the vector.
§Returns

A new Vec2D object.

Source

pub const fn x(&self) -> T

Returns the x-component of the vector.

§Returns

The x value of type T.

Source

pub const fn y(&self) -> T

Returns the y-component of the vector.

§Returns

The y value of type T.

Source

pub const fn get(&self, axis: VecAxis) -> T

Source§

impl<T: Fixed + Copy> Vec2D<T>

Source

pub fn dot(self, other: &Self) -> T

Computes the dot product of the current vector with another vector. The dot product is defined as:

dot_product = (x1 * x2) + (y1 * y2)
§Arguments
  • other - Another Vec2D vector to compute the dot product with.
§Returns

A scalar value of type T that represents the dot product of the two vectors.

Source

pub fn cross(self, other: &Self) -> T

Computes the cross product of the current vector with another vector.

The cross product is defined as:

cross_product = (x1 * y2) - (y1 * x2)
§Arguments
  • other - Another Vec2D vector to compute the cross product with.
§Returns

A scalar value of type T that represents the cross product of the two vectors.

Source

pub fn abs_f64(self) -> f64

Computes the magnitude (absolute value) of the vector as an f64. This enables magnitude calculation for integer types T.

§Returns

The magnitude of the vector as an f64.

Source

pub fn zero() -> Self

Creates a zero vector (x = 0, y = 0).

§Returns

A zero-initialized Vec2D with member type T.

Source

pub fn is_zero(&self) -> bool

Source§

impl Vec2D<i32>

Source

pub fn to_unsigned(self) -> Vec2D<u32>

Converts the vector to an unsigned equivalent.

This method casts both the x and y components of the vector from i32 to u32.

§Returns

A Vec2D<u32> with the unsigned components of the original vector.

§Note

The conversion may cause loss of sign. Negative values will wrap around.

Source§

impl<T> Vec2D<T>
where T: Add<Output = T> + Rem<Output = T> + Copy + MapSize<Output = T> + PartialEq,

Source

pub fn wrap_around_map(&self) -> Self

Wraps the vector around a predefined 2D map.

This method ensures the vector’s coordinates do not exceed the boundaries of the map defined by map_size(). If coordinates go beyond these boundaries, they are wrapped to remain within valid values.

Source

pub fn wraps(&self) -> WrapDirection

Source

pub fn wrap_by(&self, dir: &WrapDirection) -> Self

Source

pub fn wrap_coordinate(value: T, max_value: T) -> T

Wraps a single coordinate around a specific maximum value.

§Arguments
  • value - The value to wrap.
  • max_value - The maximum value to wrap around.
§Returns

The wrapped coordinate as type T.

Trait Implementations§

Source§

impl<T> Add for Vec2D<T>
where T: Add<Output = T>,

Source§

fn add(self, rhs: Vec2D<T>) -> Self::Output

Implements the + operator for two Vec2D objects.

§Arguments
  • rhs - The vector to add.
§Returns

A new Vec2D representing the sum of the vectors.

Source§

type Output = Vec2D<T>

The resulting type after applying the + operator.
Source§

impl<T: Clone> Clone for Vec2D<T>

Source§

fn clone(&self) -> Vec2D<T>

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<T: Debug> Debug for Vec2D<T>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de, T> Deserialize<'de> for Vec2D<T>
where T: Deserialize<'de>,

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl<T> Display for Vec2D<T>
where T: Display,

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the Vec2D as a string in the format [x, y].

§Arguments
  • f - A mutable reference to the formatter.
§Returns

A Result indicating the success of the formatting operation.

Source§

impl<T> Div<T> for Vec2D<T>
where T: Div<T, Output = T> + Copy,

Source§

fn div(self, rhs: T) -> Self::Output

Implements the / operator for a Vec2D and a scalar.

§Arguments
  • rhs - The scalar value to divide by.
§Returns

A new scaled vector.

Source§

type Output = Vec2D<T>

The resulting type after applying the / operator.
Source§

impl<T> From<&[T; 2]> for Vec2D<T>
where T: Copy,

Source§

fn from(slice: &[T; 2]) -> Self

Creates a Vec2D from a slice of (x, y) values.

§Arguments
  • slice - A slice representing the x and y values.
§Returns

A new Vec2D created from the slice.

Source§

impl<T: Num> From<(T, T)> for Vec2D<T>

Source§

fn from(tuple: (T, T)) -> Self

Creates a Vec2D from a tuple of (x, y) values.

§Arguments
  • tuple - A tuple representing the x and y values.
§Returns

A new Vec2D created from the tuple.

Source§

impl<T> From<Vec2D<T>> for [T; 2]
where T: Copy,

Source§

fn from(vec: Vec2D<T>) -> Self

Creates a slice [x, y] from a Vec2D.

§Arguments
  • vec - A Vec2D representing the x and y values.
§Returns

A new slice created from the Vec2D.

Source§

impl<T: Num> From<Vec2D<T>> for (T, T)

Source§

fn from(value: Vec2D<T>) -> Self

Creates a tuple from a Vec2D of (x, y) values.

§Arguments
  • tuple - A tuple representing the x and y values.
§Returns

A new Vec2D created from the tuple.

Source§

impl<T: Hash> Hash for Vec2D<T>

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl<T> MapSize for Vec2D<T>
where T: MapSize<Output = T>,

Implementation of the MapSize trait for a Vec2D type with components that also implement the MapSize trait.

Source§

fn map_size() -> Vec2D<Self::Output>

Defines the size of the map by delegating to the map_size implementation of T.

§Returns

A Vec2D with components of type T representing the map dimensions.

Source§

type Output = T

The output type of the map dimensions.
Source§

impl<T, TMul> Mul<TMul> for Vec2D<T>
where T: Fixed, TMul: Fixed + Copy,

Source§

fn mul(self, rhs: TMul) -> Self::Output

Implements the * operator for a Vec2D and a scalar.

§Arguments
  • rhs - The scalar value to multiply by.
§Returns

A new scaled vector.

Source§

type Output = Vec2D<T>

The resulting type after applying the * operator.
Source§

impl<T: PartialEq> PartialEq for Vec2D<T>

Source§

fn eq(&self, other: &Vec2D<T>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T> Serialize for Vec2D<T>
where T: Serialize,

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl<T, TSub> Sub<Vec2D<TSub>> for Vec2D<T>
where T: FixedSigned, TSub: Fixed,

Source§

fn sub(self, rhs: Vec2D<TSub>) -> Self::Output

Implements the - operator for two Vec2D.

§Arguments
  • rhs - The Vec2D to subtract.
§Returns

A new vector.

Source§

type Output = Vec2D<T>

The resulting type after applying the - operator.
Source§

impl<T: Copy> Copy for Vec2D<T>

Source§

impl<T: Eq> Eq for Vec2D<T>

Source§

impl<T> StructuralPartialEq for Vec2D<T>

Auto Trait Implementations§

§

impl<T> Freeze for Vec2D<T>
where T: Freeze,

§

impl<T> RefUnwindSafe for Vec2D<T>
where T: RefUnwindSafe,

§

impl<T> Send for Vec2D<T>
where T: Send,

§

impl<T> Sync for Vec2D<T>
where T: Sync,

§

impl<T> Unpin for Vec2D<T>
where T: Unpin,

§

impl<T> UnwindSafe for Vec2D<T>
where T: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Az for T

Source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

Source§

fn cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> CheckedAs for T

Source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

Source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

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
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<Src, Dst> LosslessTryInto<Dst> for Src
where Dst: LosslessTryFrom<Src>,

Source§

fn lossless_try_into(self) -> Option<Dst>

Performs the conversion.
Source§

impl<Src, Dst> LossyInto<Dst> for Src
where Dst: LossyFrom<Src>,

Source§

fn lossy_into(self) -> Dst

Performs the conversion.
Source§

impl<T> OverflowingAs for T

Source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

Source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
§

impl<T> Pipe for T
where T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows 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) -> R
where R: 'a,

Mutably borrows 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
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows 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
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows 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
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> SaturatingAs for T

Source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

Source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .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
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .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
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> UnwrappedAs for T

Source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

Source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
Source§

impl<T> WrappingAs for T

Source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

Source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T