pub struct Worker { /* private fields */ }rayon only.Expand description
Per-thread state container for a WorkerPool.
Holds a type-erased Box<dyn Any> that can be initialized and accessed with concrete types
via init and get.
Implementations§
Source§impl Worker
impl Worker
Sourcepub fn init<T: 'static>(&mut self, f: impl FnOnce(Option<&mut T>) -> T)
pub fn init<T: 'static>(&mut self, f: impl FnOnce(Option<&mut T>) -> T)
Initializes the worker state.
If state of type T already exists, passes Some(&mut T) to the closure so resources
can be reused. On first init, passes None.
Sourcepub fn get<T: 'static>(&self) -> &T
pub fn get<T: 'static>(&self) -> &T
Returns a reference to the state, downcasted to T.
§Panics
Panics if the worker has not been initialized or if the type does not match.
Sourcepub fn get_mut<T: 'static>(&mut self) -> &mut T
pub fn get_mut<T: 'static>(&mut self) -> &mut T
Returns a mutable reference to the state, downcasted to T.
§Panics
Panics if the worker has not been initialized or if the type does not match.
Sourcepub fn get_or_init<T: 'static>(&mut self, f: impl FnOnce() -> T) -> &mut T
pub fn get_or_init<T: 'static>(&mut self, f: impl FnOnce() -> T) -> &mut T
Returns a mutable reference to the state, initializing it with f on first access.
§Panics
Panics if the state was previously initialized with a different type.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Worker
impl !RefUnwindSafe for Worker
impl !Send for Worker
impl !Sync for Worker
impl Unpin for Worker
impl UnsafeUnpin for Worker
impl !UnwindSafe for Worker
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<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
Source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 16 bytes