We currently have custom unsafe functions to split input and output into chunks. Once [`slice_as_chunks`](https://github.com/rust-lang/rust/issues/74985) is stable we can use it.