Struct desync::desync::Desync
[−]
[src]
pub struct Desync<T: Send> { /* fields omitted */ }
A data storage structure used to govern synchronous and asynchronous access to an underlying object.
Methods
impl<T: 'static + Send> Desync<T>
[src]
pub fn new(data: T) -> Desync<T>
[src]
Creates a new Desync object
pub fn async<TFn>(&self, job: TFn) where
TFn: 'static + Send + FnOnce(&mut T),
[src]
TFn: 'static + Send + FnOnce(&mut T),
Performs an operation asynchronously on this item. This function will return immediately and the job will happen on a separate thread at some time in the future (generally fairly soon).
Jobs are always performed in the order that they are queued and are always performed synchronously with respect to this object.
pub fn sync<TFn, Result>(&self, job: TFn) -> Result where
TFn: Send + FnOnce(&mut T) -> Result,
Result: Send,
[src]
TFn: Send + FnOnce(&mut T) -> Result,
Result: Send,
Performs an operation synchronously on this item. This will be queued with any other jobs that this item may be performing, and this function will not return until the job is complete and the result is available.
ⓘImportant traits for Box<W>pub fn future<TFn, Item: 'static + Send>(
&self,
job: TFn
) -> Box<Future<Item = Item, Error = Canceled>> where
TFn: 'static + Send + FnOnce(&mut T) -> Item,
[src]
&self,
job: TFn
) -> Box<Future<Item = Item, Error = Canceled>> where
TFn: 'static + Send + FnOnce(&mut T) -> Item,
Performs an operation asynchronously on the contents of this item, returning the result via a future.
ⓘImportant traits for Box<W>pub fn after<'a, TFn, Item: 'static + Send, Error: 'static + Send, Res: 'static + Send, Fut: 'a + Future<Item = Item, Error = Error>>(
&self,
after: Fut,
job: TFn
) -> Box<Future<Item = Res, Error = Error> + 'a> where
TFn: 'static + Send + FnOnce(&mut T, Result<Item, Error>) -> Result<Res, Error>,
[src]
&self,
after: Fut,
job: TFn
) -> Box<Future<Item = Res, Error = Error> + 'a> where
TFn: 'static + Send + FnOnce(&mut T, Result<Item, Error>) -> Result<Res, Error>,
After the pending operations for this item are performed, waits for the supplied future to complete and then calls the specified function