pub struct DelayedWork<T: ?Sized, const ID: u64 = 0> { /* private fields */ }Expand description
Links for a delayed work item.
This struct contains a function pointer to the run function from the WorkItemPointer
trait, and defines the linked list pointers necessary to enqueue a work item in a workqueue in
a delayed manner.
Wraps the kernel’s C struct delayed_work.
This is a helper type used to associate a delayed_work with the WorkItem that uses it.
Implementations§
Source§impl<T: ?Sized, const ID: u64> DelayedWork<T, ID>
impl<T: ?Sized, const ID: u64> DelayedWork<T, ID>
Sourcepub fn project<'__this>(
self: Pin<&'__this mut Self>,
) -> __Projection<'__this, T, ID>
pub fn project<'__this>( self: Pin<&'__this mut Self>, ) -> __Projection<'__this, T, ID>
Pin-projects all fields of Self.
These fields are structurally pinned:
dwork
These fields are not structurally pinned:
_inner
Sourcepub fn with_project<'__this, R>(
self: Pin<&'__this mut Self>,
f: impl FnOnce(__ProjectionLt<'__this, T, ID>) -> R,
) -> R
pub fn with_project<'__this, R>( self: Pin<&'__this mut Self>, f: impl FnOnce(__ProjectionLt<'__this, T, ID>) -> R, ) -> R
Pin-projects all fields of Self with proper lifetime.
These fields are structurally pinned:
dwork
These fields are not structurally pinned:
_inner
Sourcepub fn with_project_ref<'__this, R>(
self: Pin<&'__this Self>,
f: impl FnOnce(__ProjectionRef<'__this, T, ID>) -> R,
) -> R
pub fn with_project_ref<'__this, R>( self: Pin<&'__this Self>, f: impl FnOnce(__ProjectionRef<'__this, T, ID>) -> R, ) -> R
Pin-projects all fields of Self from a shared reference with proper lifetime.
These fields are structurally pinned:
dwork
These fields are not structurally pinned:
_inner
Source§impl<T: ?Sized, const ID: u64> DelayedWork<T, ID>
impl<T: ?Sized, const ID: u64> DelayedWork<T, ID>
Sourcepub fn new(
work_name: &'static CStr,
work_key: Pin<&'static LockClassKey>,
timer_name: &'static CStr,
timer_key: Pin<&'static LockClassKey>,
) -> impl PinInit<Self>where
T: WorkItem<ID>,
pub fn new(
work_name: &'static CStr,
work_key: Pin<&'static LockClassKey>,
timer_name: &'static CStr,
timer_key: Pin<&'static LockClassKey>,
) -> impl PinInit<Self>where
T: WorkItem<ID>,
Creates a new instance of DelayedWork.
Trait Implementations§
Source§impl<T: ?Sized, const ID: u64> HasPinData for DelayedWork<T, ID>
impl<T: ?Sized, const ID: u64> HasPinData for DelayedWork<T, ID>
impl<T: ?Sized, const ID: u64> Send for DelayedWork<T, ID>
impl<T: ?Sized, const ID: u64> Sync for DelayedWork<T, ID>
Auto Trait Implementations§
impl<T, const ID: u64 = 0> !Freeze for DelayedWork<T, ID>
impl<T, const ID: u64 = 0> !RefUnwindSafe for DelayedWork<T, ID>
impl<T, const ID: u64 = 0> !UnsafeUnpin for DelayedWork<T, ID>
impl<T, const ID: u64> UnwindSafe for DelayedWork<T, ID>
Blanket Implementations§
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<S, T> IntoSafeCast<T> for Swhere
T: FromSafeCast<S>,
impl<S, T> IntoSafeCast<T> for Swhere
T: FromSafeCast<S>,
Source§fn into_safe_cast(self) -> T
fn into_safe_cast(self) -> T
self into a T. This operation is guaranteed to be lossless.Source§impl<S, T> IntoSafeCastArch<T> for Swhere
T: FromSafeCastArch<S>,
impl<S, T> IntoSafeCastArch<T> for Swhere
T: FromSafeCastArch<S>,
Source§fn into_safe_cast_arch(self) -> T
fn into_safe_cast_arch(self) -> T
self into a T. This operation is guaranteed to be lossless.