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