pub fn encode(data: [&[u8]; 6], parity: [&mut [u8]; 3]) -> Result<(), Error>Expand description
Computes the M parity blocks from K data blocks.
Data blocks are assigned indices 0..K and parity blocks indices K..N. All blocks
must have the same length, which must be a positive multiple of BLOCK_ALIGNMENT.
§Errors
Error::InvalidBlockSize— block length is zero or not a multiple ofBLOCK_ALIGNMENT.Error::BlockSizeMismatch— not all blocks have the same length.
§Example
use simd_rs63::{encode, BLOCK_ALIGNMENT};
let block_size = 4 * BLOCK_ALIGNMENT;
let data = [
vec![0; block_size],
vec![1; block_size],
vec![2; block_size],
vec![3; block_size],
vec![4; block_size],
vec![5; block_size],
];
let mut parity = [
vec![0; block_size],
vec![0; block_size],
vec![0; block_size],
];
let data_shards = [
data[0].as_slice(),
data[1].as_slice(),
data[2].as_slice(),
data[3].as_slice(),
data[4].as_slice(),
data[5].as_slice(),
];
let [p0, p1, p2] = &mut parity;
let parity_shards = [p0.as_mut_slice(), p1.as_mut_slice(), p2.as_mut_slice()];
encode(data_shards, parity_shards).unwrap();