AnvilLevelSource

Struct AnvilLevelSource 

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

A level source that load chunks from anvil region files. This source internally use a threaded worker to avoid disk access durations overhead. Each opened region file remains opened for REGIONS_CACHE_TIME duration.

Implementations§

Source§

impl AnvilLevelSource

Source

pub fn new<P: AsRef<Path>>(dir: P) -> Self

Trait Implementations§

Source§

impl LevelSource for AnvilLevelSource

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,