Struct LocalKey
struct LocalKey<T: 'static> { ... }
A key for task-local data.
This type is generated by the task_local! macro.
Unlike std::thread::LocalKey, tokio::task::LocalKey will
not lazily initialize the value on first access. Instead, the
value is first initialized when the future containing
the task-local is first polled by a futures executor, like Tokio.
Examples
# async
Implementations
impl<T: 'static> LocalKey<T>
fn scope<F>(self: &'static Self, value: T, f: F) -> TaskLocalFuture<T, F> where F: FutureSets a value
Tas the task-local value for the futureF.On completion of
scope, the task-local will be dropped.Panics
If you poll the returned future inside a call to
withortry_withon the sameLocalKey, then the call topollwill panic.Examples
# asyncfn sync_scope<F, R>(self: &'static Self, value: T, f: F) -> R where F: FnOnce() -> RSets a value
Tas the task-local value for the closureF.On completion of
sync_scope, the task-local will be dropped.Panics
This method panics if called inside a call to
withortry_withon the sameLocalKey.Examples
# asyncfn with<F, R>(self: &'static Self, f: F) -> R where F: FnOnce(&T) -> RAccesses the current task-local and runs the provided closure.
Panics
This function will panic if the task local doesn't have a value set.
fn try_with<F, R>(self: &'static Self, f: F) -> Result<R, AccessError> where F: FnOnce(&T) -> RAccesses the current task-local and runs the provided closure.
If the task-local with the associated key is not present, this method will return an
AccessError. For a panicking variant, seewith.
impl<T: Clone + 'static> LocalKey<T>
fn get(self: &'static Self) -> TReturns a copy of the task-local value if the task-local value implements
Clone.Panics
This function will panic if the task local doesn't have a value set.
impl<T> Any for LocalKey<T>
fn type_id(self: &Self) -> TypeId
impl<T> Borrow for LocalKey<T>
fn borrow(self: &Self) -> &T
impl<T> BorrowMut for LocalKey<T>
fn borrow_mut(self: &mut Self) -> &mut T
impl<T> Freeze for LocalKey<T>
impl<T> From for LocalKey<T>
fn from(t: T) -> TReturns the argument unchanged.
impl<T> RefUnwindSafe for LocalKey<T>
impl<T> Send for LocalKey<T>
impl<T> Sync for LocalKey<T>
impl<T> Unpin for LocalKey<T>
impl<T> UnsafeUnpin for LocalKey<T>
impl<T> UnwindSafe for LocalKey<T>
impl<T, U> Into for LocalKey<T>
fn into(self: Self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom for LocalKey<T>
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto for LocalKey<T>
fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>
impl<T: 'static> Debug for LocalKey<T>
fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result