On this page
Trait std::simd::SimdMutPtr
pub trait SimdMutPtr: Copy + Sealed {
type Usize;
type Isize;
type CastPtr<T>;
type ConstPtr;
type Mask;
// Required methods
fn is_null(self) -> Self::Mask;
fn cast<T>(self) -> Self::CastPtr<T>;
fn cast_const(self) -> Self::ConstPtr;
fn addr(self) -> Self::Usize;
fn with_addr(self, addr: Self::Usize) -> Self;
fn expose_addr(self) -> Self::Usize;
fn from_exposed_addr(addr: Self::Usize) -> Self;
fn wrapping_offset(self, offset: Self::Isize) -> Self;
fn wrapping_add(self, count: Self::Usize) -> Self;
fn wrapping_sub(self, count: Self::Usize) -> Self;
}
portable_simd
#86656)
Operations on SIMD vectors of mutable pointers.
Required Associated Types
type Usize
portable_simd
#86656)
Vector of usize
with the same number of lanes.
type Isize
portable_simd
#86656)
Vector of isize
with the same number of lanes.
type CastPtr<T>
portable_simd
#86656)
Vector of const pointers with the same number of lanes.
type ConstPtr
portable_simd
#86656)
Vector of constant pointers to the same type.
type Mask
portable_simd
#86656)
Mask type used for manipulating this SIMD vector type.
Required Methods
fn is_null(self) -> Self::Mask
portable_simd
#86656)
Returns true
for each lane that is null.
fn cast<T>(self) -> Self::CastPtr<T>
portable_simd
#86656)
Casts to a pointer of another type.
Equivalent to calling pointer::cast
on each lane.
fn cast_const(self) -> Self::ConstPtr
portable_simd
#86656)
Changes constness without changing the type.
Equivalent to calling pointer::cast_const
on each lane.
fn addr(self) -> Self::Usize
portable_simd
#86656)
Gets the “address” portion of the pointer.
This method discards pointer semantic metadata, so the result cannot be directly cast into a valid pointer.
Equivalent to calling pointer::addr
on each lane.
fn with_addr(self, addr: Self::Usize) -> Self
portable_simd
#86656)
Creates a new pointer with the given address.
This performs the same operation as a cast, but copies the address-space and provenance of self
to the new pointer.
Equivalent to calling pointer::with_addr
on each lane.
fn expose_addr(self) -> Self::Usize
portable_simd
#86656)
Gets the “address” portion of the pointer, and “exposes” the provenance part for future use in Self::from_exposed_addr
.
fn from_exposed_addr(addr: Self::Usize) -> Self
portable_simd
#86656)
Convert an address back to a pointer, picking up a previously “exposed” provenance.
Equivalent to calling core::ptr::from_exposed_addr_mut
on each lane.
fn wrapping_offset(self, offset: Self::Isize) -> Self
portable_simd
#86656)
Calculates the offset from a pointer using wrapping arithmetic.
Equivalent to calling pointer::wrapping_offset
on each lane.
fn wrapping_add(self, count: Self::Usize) -> Self
portable_simd
#86656)
Calculates the offset from a pointer using wrapping arithmetic.
Equivalent to calling pointer::wrapping_add
on each lane.
fn wrapping_sub(self, count: Self::Usize) -> Self
portable_simd
#86656)
Calculates the offset from a pointer using wrapping arithmetic.
Equivalent to calling pointer::wrapping_sub
on each lane.
Object Safety
Implementors
impl<T, const LANES: usize> SimdMutPtr for Simd<*mut T, LANES>
where
LaneCount<LANES>: SupportedLaneCount,
type Usize = Simd<usize, LANES>
type Isize = Simd<isize, LANES>
type CastPtr<U> = Simd<*mut U, LANES>
type ConstPtr = Simd<*const T, LANES>
type Mask = Mask<isize, LANES>
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/simd/trait.SimdMutPtr.html