Function compression_encode_buffer

Source
pub unsafe extern "C" fn compression_encode_buffer(
    dst_buffer: *mut uint8_t,
    dst_size: size_t,
    src: *const uint8_t,
    src_size: size_t,
    scratch_buffer: *mut c_void,
    algorithm: compression_algorithm,
) -> size_t
Expand description

Compresses the contents of a source buffer into a destination buffer.

§Arguments

§Examples

use rust_macios::{compression::{compression_algorithm, compression_encode_buffer}, kernel::size_t};

let source_string = r#"
    Lorem ipsum dolor sit amet consectetur adipiscing elit mi
    nibh ornare proin blandit diam ridiculus, faucibus mus
    dui eu vehicula nam donec dictumst sed vivamus bibendum
    aliquet efficitur. Felis imperdiet sodales dictum morbi
    vivamus augue dis duis aliquet velit ullamcorper porttitor,
    lobortis dapibus hac purus aliquam natoque iaculis blandit
    montes nunc pretium."#;

let source_buffer = source_string.as_bytes();

let mut dest_buffer = vec![0; source_string.len()];

let algorithm = compression_algorithm::LZFSE;

let compressed_size = unsafe {
    compression_encode_buffer(
        dest_buffer.as_mut_ptr(),
        source_string.len() as size_t,
        source_buffer.as_ptr(),
        source_string.len() as size_t,
        std::ptr::null_mut(),
        algorithm,
    )
};

assert!(compressed_size != 0, "Encoding failed.");

§Returns

The number of bytes written to the destination buffer after compressing the input. If the funtion can’t compress the entire input to fit into the provided destination buffer, or an error occurs, 0 is returned.