Struct rust_cuda::kernel::param::ShallowInteriorMutable

source ·
pub struct ShallowInteriorMutable<T: Sync + StackOnly + PortableBitSemantics + TypeGraphLayout + InteriorMutableSync> { /* private fields */ }

Trait Implementations§

source§

impl<'a, T: Sync + StackOnly + PortableBitSemantics + TypeGraphLayout + InteriorMutableSync> CudaKernelParameter for &'a ShallowInteriorMutable<T>

§

type SyncHostType = &'a mut T

Available on crate feature host only.

The kernel takes a mutable borrow of the interior mutable data to ensure the interior mutability is limited to just this kernel invocation.

§

type AsyncHostType<'stream, 'b> = AsyncProj<'b, 'stream, HostAndDeviceConstRef<'b, T>> where Self: 'b

Available on crate feature host only.
§

type DeviceType<'b> = &'b T where Self: 'b

Available on crate feature device only.
source§

fn with_new_async<'stream, 'b, O, E: From<CudaError>>( param: Self::SyncHostType, stream: Stream<'stream>, inner: impl FnOnce(Self::AsyncHostType<'stream, 'b>) -> Result<O, E>, ) -> Result<O, E>
where Self: 'b,

Available on crate feature host only.
source§

impl<T: Sync + StackOnly + PortableBitSemantics + TypeGraphLayout + InteriorMutableSync> Deref for ShallowInteriorMutable<T>

§

type Target = T

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.

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

§

type Discriminant = <T as ExtractDiscriminantSpec<<T as DiscriminantKind>::Discriminant>>::Ty

The type of the discriminant, which must satisfy the trait bounds required by core::mem::Discriminant. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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, U> TryFrom<U> for T
where U: Into<T>,

§

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>,

§

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

impl<T> Erased for T