avian3d::dynamics::prelude

Struct AngularInertiaTensor

source
pub struct AngularInertiaTensor(/* private fields */);
Expand description

The 3x3 angular inertia tensor of a 3D object, representing resistance to angular acceleration.

The inertia tensor is a symmetric, positive-semidefinite matrix that describes the moment of inertia for rotations about the X, Y, and Z axes. By diagonalizing this matrix, it is possible to extract the principal axes of inertia (a Vec3) and a local inertial frame (a Quat) that defines the XYZ axes. This diagonalization can be performed using the principal_angular_inertia_with_local_frame method.

The diagonalized representation is more compact and often easier to work with, but the full tensor can be more efficient for computations using the angular inertia.

Implementations§

source§

impl AngularInertiaTensor

source

pub const ZERO: AngularInertiaTensor = _

Zero angular inertia.

source

pub const IDENTITY: AngularInertiaTensor = _

An angular inertia tensor with a principal angular inertia of 1.0 along the diagonal.

source

pub const INFINITY: AngularInertiaTensor = _

Infinite angular inertia.

source

pub fn new(principal_angular_inertia: Vec3) -> AngularInertiaTensor

Creates a new AngularInertiaTensor from the given principal angular inertia.

The principal angular inertia represents the torque needed for a desired angular acceleration about the local coordinate axes. To specify the orientation of the local inertial frame, consider using new_with_local_frame.

§Panics

Panics if any component of the principal angular inertia is negative or NaN when debug_assertions are enabled.

source

pub fn try_new( principal_angular_inertia: Vec3, ) -> Result<AngularInertiaTensor, AngularInertiaTensorError>

Tries to create a new AngularInertiaTensor from the given principal angular inertia.

The principal angular inertia represents the torque needed for a desired angular acceleration about the local coordinate axes. To specify the orientation of the local inertial frame, consider using try_new_with_local_frame.

§Errors

Returns Err(AngularInertiaTensorError) if any component of the principal angular inertia is negative or NaN.

source

pub fn new_with_local_frame( principal_angular_inertia: Vec3, orientation: Quat, ) -> AngularInertiaTensor

Creates a new AngularInertiaTensor from the given principal angular inertia and the orientation of the local inertial frame.

The principal angular inertia represents the torque needed for a desired angular acceleration about the local coordinate axes defined by the given orientation.

§Panics

Panics if any component of the principal angular inertia is negative or NaN when debug_assertions are enabled.

source

pub fn try_new_with_local_frame( principal_angular_inertia: Vec3, orientation: Quat, ) -> Result<AngularInertiaTensor, AngularInertiaTensorError>

Tries to create a new AngularInertiaTensor from the given principal angular inertia and the orientation of the local inertial frame.

The principal angular inertia represents the torque needed for a desired angular acceleration about the local coordinate axes defined by the given orientation.

§Errors

Returns Err(AngularInertiaTensorError) if any component of the principal angular inertia is negative or NaN.

source

pub fn from_mat3(mat: Mat3) -> AngularInertiaTensor

Creates a new AngularInertiaTensor from the given angular inertia tensor.

The tensor should be symmetric and positive-semidefinite, but this is not checked.

source

pub fn as_mat3(&self) -> Mat3

Returns the angular inertia tensor as a Mat3.

Equivalent to value.

source

pub fn as_mat3_mut(&mut self) -> &mut Mat3

Returns a mutable reference to the Mat3 stored in self.

Note that this allows making changes that could make the angular inertia tensor invalid (non-symmetric or non-positive-semidefinite).

Equivalent to value_mut.

source

pub fn value(self) -> Mat3

Returns the angular inertia tensor as a Mat3.

Equivalent to as_mat3.

source

pub fn value_mut(&mut self) -> &mut Mat3

Returns a mutable reference to the Mat3 stored in self.

Note that this allows making changes that could make the angular inertia tensor invalid (non-symmetric or non-positive-semidefinite).

Equivalent to as_mat3_mut.

source

pub fn inverse(self) -> AngularInertiaTensor

Returns the inverse of the angular inertia tensor.

source

pub fn set(&mut self, angular_inertia: impl Into<AngularInertiaTensor>)

Sets the angular inertia tensor to the given value.

source

pub fn principal_angular_inertia_with_local_frame(&self) -> (Vec3, Quat)

Computes the principal angular inertia and local inertial frame by diagonalizing the 3x3 tensor matrix.

The principal angular inertia represents the torque needed for a desired angular acceleration about the local coordinate axes defined by the local inertial frame.

source

pub fn rotated(self, rotation: Quat) -> AngularInertiaTensor

Computes the angular inertia tensor with the given rotation.

This can be used to transform local angular inertia to world space.

source

pub fn shifted(self, mass: f32, offset: Vec3) -> AngularInertiaTensor

Computes the angular inertia tensor shifted by the given offset, taking into account the given mass.

Methods from Deref<Target = Mat3>§

source

pub const ZERO: Mat3 = _

source

pub const IDENTITY: Mat3 = _

source

pub const NAN: Mat3 = _

source

pub fn to_cols_array(&self) -> [f32; 9]

Creates a [f32; 9] array storing data in column major order. If you require data in row major order transpose the matrix first.

source

pub fn to_cols_array_2d(&self) -> [[f32; 3]; 3]

Creates a [[f32; 3]; 3] 3D array storing data in column major order. If you require data in row major order transpose the matrix first.

source

pub fn to_euler(&self, order: EulerRot) -> (f32, f32, f32)

Extract Euler angles with the given Euler rotation order.

Note if the input matrix contains scales, shears, or other non-rotation transformations then the resulting Euler angles will be ill-defined.

§Panics

Will panic if any input matrix column is not normalized when glam_assert is enabled.

source

pub fn col(&self, index: usize) -> Vec3

Returns the matrix column for the given index.

§Panics

Panics if index is greater than 2.

source

pub fn row(&self, index: usize) -> Vec3

Returns the matrix row for the given index.

§Panics

Panics if index is greater than 2.

source

pub fn is_finite(&self) -> bool

Returns true if, and only if, all elements are finite. If any element is either NaN, positive or negative infinity, this will return false.

source

pub fn is_nan(&self) -> bool

Returns true if any elements are NaN.

source

pub fn transpose(&self) -> Mat3

Returns the transpose of self.

source

pub fn determinant(&self) -> f32

Returns the determinant of self.

source

pub fn inverse(&self) -> Mat3

Returns the inverse of self.

If the matrix is not invertible the returned matrix will be invalid.

§Panics

Will panic if the determinant of self is zero when glam_assert is enabled.

source

pub fn transform_point2(&self, rhs: Vec2) -> Vec2

Transforms the given 2D vector as a point.

This is the equivalent of multiplying rhs as a 3D vector where z is 1.

This method assumes that self contains a valid affine transform.

§Panics

Will panic if the 2nd row of self is not (0, 0, 1) when glam_assert is enabled.

source

pub fn transform_vector2(&self, rhs: Vec2) -> Vec2

Rotates the given 2D vector.

This is the equivalent of multiplying rhs as a 3D vector where z is 0.

This method assumes that self contains a valid affine transform.

§Panics

Will panic if the 2nd row of self is not (0, 0, 1) when glam_assert is enabled.

source

pub fn mul_vec3(&self, rhs: Vec3) -> Vec3

Transforms a 3D vector.

source

pub fn mul_vec3a(&self, rhs: Vec3A) -> Vec3A

Transforms a Vec3A.

source

pub fn mul_mat3(&self, rhs: &Mat3) -> Mat3

Multiplies two 3x3 matrices.

source

pub fn add_mat3(&self, rhs: &Mat3) -> Mat3

Adds two 3x3 matrices.

source

pub fn sub_mat3(&self, rhs: &Mat3) -> Mat3

Subtracts two 3x3 matrices.

source

pub fn mul_scalar(&self, rhs: f32) -> Mat3

Multiplies a 3x3 matrix by a scalar.

source

pub fn div_scalar(&self, rhs: f32) -> Mat3

Divides a 3x3 matrix by a scalar.

source

pub fn abs_diff_eq(&self, rhs: Mat3, max_abs_diff: f32) -> bool

Returns true if the absolute difference of all elements between self and rhs is less than or equal to max_abs_diff.

This can be used to compare if two matrices contain similar elements. It works best when comparing with a known value. The max_abs_diff that should be used used depends on the values being compared against.

For more see comparing floating point numbers.

source

pub fn abs(&self) -> Mat3

Takes the absolute value of each element in self

source

pub fn as_dmat3(&self) -> DMat3

Trait Implementations§

source§

impl Add for AngularInertiaTensor

source§

type Output = AngularInertiaTensor

The resulting type after applying the + operator.
source§

fn add(self, rhs: AngularInertiaTensor) -> AngularInertiaTensor

Performs the + operation. Read more
source§

impl AddAssign for AngularInertiaTensor

source§

fn add_assign(&mut self, rhs: AngularInertiaTensor)

Performs the += operation. Read more
source§

impl Clone for AngularInertiaTensor

source§

fn clone(&self) -> AngularInertiaTensor

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 Debug for AngularInertiaTensor

source§

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

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

impl Default for AngularInertiaTensor

source§

fn default() -> AngularInertiaTensor

Returns the “default value” for a type. Read more
source§

impl Deref for AngularInertiaTensor

source§

type Target = Mat3

The resulting type after dereferencing.
source§

fn deref(&self) -> &<AngularInertiaTensor as Deref>::Target

Dereferences the value.
source§

impl Div<f32> for AngularInertiaTensor

source§

type Output = AngularInertiaTensor

The resulting type after applying the / operator.
source§

fn div(self, rhs: f32) -> AngularInertiaTensor

Performs the / operation. Read more
source§

impl DivAssign<f32> for AngularInertiaTensor

source§

fn div_assign(&mut self, rhs: f32)

Performs the /= operation. Read more
source§

impl From<AngularInertia> for AngularInertiaTensor

source§

fn from(inertia: AngularInertia) -> Self

Converts to this type from the input type.
source§

impl From<AngularInertiaTensor> for AngularInertia

source§

fn from(tensor: AngularInertiaTensor) -> Self

Converts to this type from the input type.
source§

impl From<AngularInertiaTensor> for Mat3

source§

fn from(angular_inertia: AngularInertiaTensor) -> Mat3

Converts to this type from the input type.
source§

impl From<Mat3> for AngularInertiaTensor

source§

fn from(angular_inertia: Mat3) -> AngularInertiaTensor

Converts to this type from the input type.
source§

impl FromReflect for AngularInertiaTensor
where AngularInertiaTensor: Any + Send + Sync, Mat3: FromReflect + TypePath + MaybeTyped + RegisterForReflection,

source§

fn from_reflect( reflect: &(dyn PartialReflect + 'static), ) -> Option<AngularInertiaTensor>

Constructs a concrete instance of Self from a reflected value.
source§

fn take_from_reflect( reflect: Box<dyn PartialReflect>, ) -> Result<Self, Box<dyn PartialReflect>>

Attempts to downcast the given value to Self using, constructing the value using from_reflect if that fails. Read more
source§

impl GetTypeRegistration for AngularInertiaTensor
where AngularInertiaTensor: Any + Send + Sync, Mat3: FromReflect + TypePath + MaybeTyped + RegisterForReflection,

source§

fn get_type_registration() -> TypeRegistration

Returns the default TypeRegistration for this type.
source§

fn register_type_dependencies(registry: &mut TypeRegistry)

Registers other types needed by this type. Read more
source§

impl Mul<AngularInertiaTensor> for Quat

source§

type Output = AngularInertiaTensor

The resulting type after applying the * operator.
source§

fn mul(self, angular_inertia: AngularInertiaTensor) -> AngularInertiaTensor

Performs the * operation. Read more
source§

impl Mul<AngularInertiaTensor> for f32

source§

type Output = AngularInertiaTensor

The resulting type after applying the * operator.
source§

fn mul(self, rhs: AngularInertiaTensor) -> AngularInertiaTensor

Performs the * operation. Read more
source§

impl Mul<Vec3> for AngularInertiaTensor

source§

type Output = Vec3

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Vec3) -> Vec3

Performs the * operation. Read more
source§

impl MulAssign<f32> for AngularInertiaTensor

source§

fn mul_assign(&mut self, rhs: f32)

Performs the *= operation. Read more
source§

impl PartialEq for AngularInertiaTensor

source§

fn eq(&self, other: &AngularInertiaTensor) -> 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 PartialReflect for AngularInertiaTensor
where AngularInertiaTensor: Any + Send + Sync, Mat3: FromReflect + TypePath + MaybeTyped + RegisterForReflection,

source§

fn get_represented_type_info(&self) -> Option<&'static TypeInfo>

Returns the TypeInfo of the type represented by this value. Read more
source§

fn clone_value(&self) -> Box<dyn PartialReflect>

Clones the value as a Reflect trait object. Read more
source§

fn try_apply( &mut self, value: &(dyn PartialReflect + 'static), ) -> Result<(), ApplyError>

Tries to apply a reflected value to this value. Read more
source§

fn reflect_kind(&self) -> ReflectKind

Returns a zero-sized enumeration of “kinds” of type. Read more
source§

fn reflect_ref(&self) -> ReflectRef<'_>

Returns an immutable enumeration of “kinds” of type. Read more
source§

fn reflect_mut(&mut self) -> ReflectMut<'_>

Returns a mutable enumeration of “kinds” of type. Read more
source§

fn reflect_owned(self: Box<AngularInertiaTensor>) -> ReflectOwned

Returns an owned enumeration of “kinds” of type. Read more
source§

fn try_into_reflect( self: Box<AngularInertiaTensor>, ) -> Result<Box<dyn Reflect>, Box<dyn PartialReflect>>

Attempts to cast this type to a boxed, fully-reflected value.
source§

fn try_as_reflect(&self) -> Option<&(dyn Reflect + 'static)>

Attempts to cast this type to a fully-reflected value.
source§

fn try_as_reflect_mut(&mut self) -> Option<&mut (dyn Reflect + 'static)>

Attempts to cast this type to a mutable, fully-reflected value.
source§

fn into_partial_reflect( self: Box<AngularInertiaTensor>, ) -> Box<dyn PartialReflect>

Casts this type to a boxed, reflected value. Read more
source§

fn as_partial_reflect(&self) -> &(dyn PartialReflect + 'static)

Casts this type to a reflected value. Read more
source§

fn as_partial_reflect_mut(&mut self) -> &mut (dyn PartialReflect + 'static)

Casts this type to a mutable, reflected value. Read more
source§

fn reflect_partial_eq( &self, value: &(dyn PartialReflect + 'static), ) -> Option<bool>

Returns a “partial equality” comparison result. Read more
source§

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

Debug formatter for the value. Read more
source§

fn apply(&mut self, value: &(dyn PartialReflect + 'static))

Applies a reflected value to this value. Read more
source§

fn reflect_hash(&self) -> Option<u64>

Returns a hash of the value (which includes the type). Read more
source§

fn serializable(&self) -> Option<Serializable<'_>>

Returns a serializable version of the value. Read more
source§

fn is_dynamic(&self) -> bool

Indicates whether or not this type is a dynamic type. Read more
source§

impl Reflect for AngularInertiaTensor
where AngularInertiaTensor: Any + Send + Sync, Mat3: FromReflect + TypePath + MaybeTyped + RegisterForReflection,

source§

fn into_any(self: Box<AngularInertiaTensor>) -> Box<dyn Any>

Returns the value as a Box<dyn Any>. Read more
source§

fn as_any(&self) -> &(dyn Any + 'static)

Returns the value as a &dyn Any. Read more
source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Returns the value as a &mut dyn Any. Read more
source§

fn into_reflect(self: Box<AngularInertiaTensor>) -> Box<dyn Reflect>

Casts this type to a boxed, fully-reflected value.
source§

fn as_reflect(&self) -> &(dyn Reflect + 'static)

Casts this type to a fully-reflected value.
source§

fn as_reflect_mut(&mut self) -> &mut (dyn Reflect + 'static)

Casts this type to a mutable, fully-reflected value.
source§

fn set(&mut self, value: Box<dyn Reflect>) -> Result<(), Box<dyn Reflect>>

Performs a type-checked assignment of a reflected value to this value. Read more
source§

impl TryFrom<Vec3> for AngularInertiaTensor

source§

type Error = AngularInertiaTensorError

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

fn try_from( principal_angular_inertia: Vec3, ) -> Result<AngularInertiaTensor, <AngularInertiaTensor as TryFrom<Vec3>>::Error>

Performs the conversion.
source§

impl TupleStruct for AngularInertiaTensor
where AngularInertiaTensor: Any + Send + Sync, Mat3: FromReflect + TypePath + MaybeTyped + RegisterForReflection,

source§

fn field(&self, index: usize) -> Option<&(dyn PartialReflect + 'static)>

Returns a reference to the value of the field with index index as a &dyn Reflect.
source§

fn field_mut( &mut self, index: usize, ) -> Option<&mut (dyn PartialReflect + 'static)>

Returns a mutable reference to the value of the field with index index as a &mut dyn Reflect.
source§

fn field_len(&self) -> usize

Returns the number of fields in the tuple struct.
source§

fn iter_fields(&self) -> TupleStructFieldIter<'_>

Returns an iterator over the values of the tuple struct’s fields.
source§

fn clone_dynamic(&self) -> DynamicTupleStruct

Clones the struct into a DynamicTupleStruct.
source§

fn get_represented_tuple_struct_info(&self) -> Option<&'static TupleStructInfo>

Will return None if TypeInfo is not available.
source§

impl TypePath for AngularInertiaTensor

source§

fn type_path() -> &'static str

Returns the fully qualified path of the underlying type. Read more
source§

fn short_type_path() -> &'static str

Returns a short, pretty-print enabled path to the type. Read more
source§

fn type_ident() -> Option<&'static str>

Returns the name of the type, or None if it is anonymous. Read more
source§

fn crate_name() -> Option<&'static str>

Returns the name of the crate the type is in, or None if it is anonymous. Read more
source§

fn module_path() -> Option<&'static str>

Returns the path to the module the type is in, or None if it is anonymous. Read more
source§

impl Typed for AngularInertiaTensor
where AngularInertiaTensor: Any + Send + Sync, Mat3: FromReflect + TypePath + MaybeTyped + RegisterForReflection,

source§

fn type_info() -> &'static TypeInfo

Returns the compile-time info for the underlying type.
source§

impl Copy for AngularInertiaTensor

source§

impl StructuralPartialEq for AngularInertiaTensor

Auto Trait Implementations§

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, U> AsBindGroupShaderType<U> for T
where U: ShaderType, &'a T: for<'a> Into<U>,

source§

fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U

Return the T ShaderType for self. When used in AsBindGroup derives, it is safe to assume that all images in self exist.
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<T> CloneToUninit for T
where T: Clone,

source§

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

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

impl<T> Downcast<T> for T

source§

fn downcast(&self) -> &T

source§

impl<T> Downcast for T
where T: Any,

source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynamicTypePath for T
where T: TypePath,

source§

impl<T> DynamicTyped for T
where T: Typed,

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> FromWorld for T
where T: Default,

source§

fn from_world(_world: &mut World) -> T

Creates Self using default().

source§

impl<T> GetPath for T
where T: Reflect + ?Sized,

source§

fn reflect_path<'p>( &self, path: impl ReflectPath<'p>, ) -> Result<&(dyn PartialReflect + 'static), ReflectPathError<'p>>

Returns a reference to the value specified by path. Read more
source§

fn reflect_path_mut<'p>( &mut self, path: impl ReflectPath<'p>, ) -> Result<&mut (dyn PartialReflect + 'static), ReflectPathError<'p>>

Returns a mutable reference to the value specified by path. Read more
source§

fn path<'p, T>( &self, path: impl ReflectPath<'p>, ) -> Result<&T, ReflectPathError<'p>>
where T: Reflect,

Returns a statically typed reference to the value specified by path. Read more
source§

fn path_mut<'p, T>( &mut self, path: impl ReflectPath<'p>, ) -> Result<&mut T, ReflectPathError<'p>>
where T: Reflect,

Returns a statically typed mutable reference to the value specified by path. Read more
source§

impl<S> GetTupleStructField for S
where S: TupleStruct,

source§

fn get_field<T>(&self, index: usize) -> Option<&T>
where T: Reflect,

Returns a reference to the value of the field with index index, downcast to T.
source§

fn get_field_mut<T>(&mut self, index: usize) -> Option<&mut T>
where T: Reflect,

Returns a mutable reference to the value of the field with index index, downcast to T.
source§

impl<T> Instrument for T

source§

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

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

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<T> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
source§

type Init = T

The type for initializers.
source§

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

Initializes a with the given initializer. Read more
source§

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

Dereferences the given pointer. Read more
source§

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

Mutably dereferences the given pointer. Read more
source§

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<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
source§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
source§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
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, 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> TypeData for T
where T: 'static + Send + Sync + Clone,

source§

impl<T> Upcast<T> for T

source§

fn upcast(&self) -> Option<&T>

source§

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

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T, Right> ClosedAdd<Right> for T
where T: Add<Right, Output = T> + AddAssign<Right>,

source§

impl<T, Right> ClosedAddAssign<Right> for T
where T: ClosedAdd<Right> + AddAssign<Right>,

source§

impl<T, Right> ClosedDiv<Right> for T
where T: Div<Right, Output = T> + DivAssign<Right>,

source§

impl<T, Right> ClosedDivAssign<Right> for T
where T: ClosedDiv<Right> + DivAssign<Right>,

source§

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

source§

impl<T> Reflectable for T

source§

impl<T> Scalar for T
where T: 'static + Clone + PartialEq + Debug,

source§

impl<T> Settings for T
where T: 'static + Send + Sync,

source§

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

source§

impl<T> WasmNotSendSync for T

source§

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