Struct WorkerGenLevelSource

Source
pub struct WorkerGenLevelSource { /* private fields */ }
Expand description

A wrapper for LevelGenerator that implements LevelSource to provide asynchronous level generation. This wrapper dispatches incoming chunk request into the given number of worker threads.

Implementations§

Source§

impl WorkerGenLevelSource

Source

pub fn new<B>(generator_builder: B, workers_count: usize) -> Self
where B: LevelGeneratorBuilder + Send + Sync + 'static,

Trait Implementations§

Source§

impl LevelSource for WorkerGenLevelSource

Source§

fn request_chunk_load( &mut self, req: ChunkLoadRequest, ) -> Result<(), (LevelSourceError, ChunkLoadRequest)>

Request loading of the chunk at the given position. If you return an error, you must return back the given ChunkInfo together with the LevelSourceError. If you return Ok(()) you must give a result later when calling poll_chunk. This operation must be non-blocking.
Source§

fn poll_chunk( &mut self, ) -> Option<Result<ProtoChunk, (LevelSourceError, ChunkLoadRequest)>>

Poll the next loaded chunk that is ready to be inserted into the level’s chunk storage. Every requested load chunk request_chunk_load method that returned Ok(()) should return some some result here, even if it’s an error. This operation must be non-blocking.
Source§

fn request_chunk_save( &mut self, req: ChunkSaveRequest, ) -> Result<(), LevelSourceError>

Request saving of the chunk at the given position. This operation must be non-blocking.

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

Source§

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

Source§

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

impl<T> Component for T
where T: Send + Sync + 'static,