pub fn CompressMultiSlice<Alloc: BrotliAlloc + Send + 'static, Spawner: BatchSpawnableLite<CompressionThreadResult<Alloc>, UnionHasher<Alloc>, Alloc, (<Alloc as Allocator<u8>>::AllocatedMemory, BrotliEncoderParams)>>(
    params: &BrotliEncoderParams,
    input_slice: &[u8],
    output: &mut [u8],
    alloc_per_thread: &mut [SendAlloc<CompressionThreadResult<Alloc>, UnionHasher<Alloc>, Alloc, Spawner::JoinHandle>],
    thread_spawner: &mut Spawner
) -> Result<usize, BrotliEncoderThreadError>where
    <Alloc as Allocator<u8>>::AllocatedMemory: Send + Sync,
    <Alloc as Allocator<u16>>::AllocatedMemory: Send + Sync,
    <Alloc as Allocator<u32>>::AllocatedMemory: Send + Sync,