#![allow(bad_style)] extern crate libc; use libc::*; pub type rs_magic_number = c_int; pub const RS_DELTA_MAGIC: c_int = 0x7273_0236; pub const RS_MD4_SIG_MAGIC: c_int = 0x7273_0136; pub const RS_BLAKE2_SIG_MAGIC: c_int = 0x7273_0137; pub type rs_result = c_int; pub const RS_DONE: c_int = 0; pub const RS_BLOCKED: c_int = 1; pub const RS_RUNNING: c_int = 2; pub const RS_TEST_SKIPPED: c_int = 77; pub const RS_IO_ERROR: c_int = 100; pub const RS_SYNTAX_ERROR: c_int = 101; pub const RS_MEM_ERROR: c_int = 102; pub const RS_INPUT_ENDED: c_int = 103; pub const RS_BAD_MAGIC: c_int = 104; pub const RS_UNIMPLEMENTED: c_int = 105; pub const RS_CORRUPT: c_int = 106; pub const RS_INTERNAL_ERROR: c_int = 107; pub const RS_PARAM_ERROR: c_int = 108; pub type rs_loglevel = c_int; pub const RS_LOG_EMERG: c_int = 0; pub const RS_LOG_ALERT: c_int = 1; pub const RS_LOG_CRIT: c_int = 2; pub const RS_LOG_ERR: c_int = 3; pub const RS_LOG_WARNING: c_int = 4; pub const RS_LOG_NOTICE: c_int = 5; pub const RS_LOG_INFO: c_int = 6; pub const RS_LOG_DEBUG: c_int = 7; pub const RS_DEFAULT_BLOCK_LEN: size_t = 2048; pub type rs_long_t = c_longlong; pub enum rs_job_t {} pub enum rs_signature_t {} #[repr(C)] pub struct rs_buffers_t { pub next_in: *const c_char, pub avail_in: size_t, pub eof_in: c_int, pub next_out: *mut c_char, pub avail_out: size_t, } pub type rs_copy_cb = extern "C" fn( opaque: *mut c_void, pos: rs_long_t, len: *mut size_t, buf: *mut *mut c_void, ) -> rs_result; pub type rs_trace_fn_t = extern "C" fn(level: rs_loglevel, msg: *const c_char); extern "C" { pub fn rs_job_iter(job: *mut rs_job_t, buffers: *mut rs_buffers_t) -> rs_result; pub fn rs_job_free(job: *mut rs_job_t) -> rs_result; pub fn rs_sig_begin( new_block_len: size_t, strong_sum_len: size_t, sig_magic: rs_magic_number, ) -> *mut rs_job_t; pub fn rs_delta_begin(sig: *mut rs_signature_t) -> *mut rs_job_t; pub fn rs_loadsig_begin(sig: *mut *mut rs_signature_t) -> *mut rs_job_t; pub fn rs_build_hash_table(sums: *mut rs_signature_t) -> rs_result; pub fn rs_free_sumset(sums: *mut rs_signature_t); pub fn rs_patch_begin(copy_cb: rs_copy_cb, copy_arg: *mut c_void) -> *mut rs_job_t; pub fn rs_trace_set_level(level: rs_loglevel); pub fn rs_trace_to(f: rs_trace_fn_t); }