This structure is constructed by levels and passed to LevelSource when requesting for
chunk loading, the chunk must be constructed from the given data.
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.
A trait to implement for level generators, this trait provides a synchronous method to
generate a specific chunk. This trait is not valid for methods expecting a LevelSource,
to do this you need to wrap it into LevelGeneratorSource, this structure will clone your
generator in any given workers count and run them asynchronously.
A trait used by LevelGeneratorSource in order to build a specific LevelGenerator in each
worker thread, this allows the generator to be thread unsafe. For this specific use, this
implies that this builder should be send and sync for.
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.