Skip to main content

encode

Function encode 

Source
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

§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();