Trait LevelSource

Source
pub trait LevelSource {
    // Provided methods
    fn request_chunk_load(
        &mut self,
        req: ChunkLoadRequest,
    ) -> Result<(), (LevelSourceError, ChunkLoadRequest)> { ... }
    fn poll_chunk(
        &mut self,
    ) -> Option<Result<ProtoChunk, (LevelSourceError, ChunkLoadRequest)>> { ... }
    fn request_chunk_save(
        &mut self,
        req: ChunkSaveRequest,
    ) -> Result<(), LevelSourceError> { ... }
}
Expand description

Level loader trait to implement for each different loader such as disk or generator loaders, combine these two types of loaders to save and load change in a chunk to avoid generating twice.

Provided Methods§

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.

Implementors§