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 reed_solomon::{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 parity_shards = [
parity[0].as_mut_slice(),
parity[1].as_mut_slice(),
parity[2].as_mut_slice(),
];
encode(data_shards, parity_shards).unwrap();