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§
Sourcefn request_chunk_load(
&mut self,
req: ChunkLoadRequest,
) -> Result<(), (LevelSourceError, ChunkLoadRequest)>
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.
Sourcefn poll_chunk(
&mut self,
) -> Option<Result<ProtoChunk, (LevelSourceError, ChunkLoadRequest)>>
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.
Sourcefn request_chunk_save(
&mut self,
req: ChunkSaveRequest,
) -> Result<(), LevelSourceError>
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.