librsync_sys/
lib.rs

1#![allow(bad_style)]
2
3extern crate libc;
4use libc::*;
5
6pub type rs_magic_number = c_int;
7pub const RS_DELTA_MAGIC: c_int = 0x7273_0236;
8pub const RS_MD4_SIG_MAGIC: c_int = 0x7273_0136;
9pub const RS_BLAKE2_SIG_MAGIC: c_int = 0x7273_0137;
10
11pub type rs_result = c_int;
12pub const RS_DONE: c_int = 0;
13pub const RS_BLOCKED: c_int = 1;
14pub const RS_RUNNING: c_int = 2;
15pub const RS_TEST_SKIPPED: c_int = 77;
16pub const RS_IO_ERROR: c_int = 100;
17pub const RS_SYNTAX_ERROR: c_int = 101;
18pub const RS_MEM_ERROR: c_int = 102;
19pub const RS_INPUT_ENDED: c_int = 103;
20pub const RS_BAD_MAGIC: c_int = 104;
21pub const RS_UNIMPLEMENTED: c_int = 105;
22pub const RS_CORRUPT: c_int = 106;
23pub const RS_INTERNAL_ERROR: c_int = 107;
24pub const RS_PARAM_ERROR: c_int = 108;
25
26pub type rs_loglevel = c_int;
27pub const RS_LOG_EMERG: c_int = 0;
28pub const RS_LOG_ALERT: c_int = 1;
29pub const RS_LOG_CRIT: c_int = 2;
30pub const RS_LOG_ERR: c_int = 3;
31pub const RS_LOG_WARNING: c_int = 4;
32pub const RS_LOG_NOTICE: c_int = 5;
33pub const RS_LOG_INFO: c_int = 6;
34pub const RS_LOG_DEBUG: c_int = 7;
35
36pub const RS_DEFAULT_BLOCK_LEN: size_t = 2048;
37
38pub type rs_long_t = c_longlong;
39
40pub enum rs_job_t {}
41pub enum rs_signature_t {}
42
43#[repr(C)]
44pub struct rs_buffers_t {
45    pub next_in: *const c_char,
46    pub avail_in: size_t,
47    pub eof_in: c_int,
48    pub next_out: *mut c_char,
49    pub avail_out: size_t,
50}
51
52pub type rs_copy_cb = extern "C" fn(
53    opaque: *mut c_void,
54    pos: rs_long_t,
55    len: *mut size_t,
56    buf: *mut *mut c_void,
57) -> rs_result;
58pub type rs_trace_fn_t = extern "C" fn(level: rs_loglevel, msg: *const c_char);
59
60extern "C" {
61    pub fn rs_job_iter(job: *mut rs_job_t, buffers: *mut rs_buffers_t) -> rs_result;
62    pub fn rs_job_free(job: *mut rs_job_t) -> rs_result;
63
64    pub fn rs_sig_begin(
65        new_block_len: size_t,
66        strong_sum_len: size_t,
67        sig_magic: rs_magic_number,
68    ) -> *mut rs_job_t;
69    pub fn rs_delta_begin(sig: *mut rs_signature_t) -> *mut rs_job_t;
70    pub fn rs_loadsig_begin(sig: *mut *mut rs_signature_t) -> *mut rs_job_t;
71    pub fn rs_build_hash_table(sums: *mut rs_signature_t) -> rs_result;
72    pub fn rs_free_sumset(sums: *mut rs_signature_t);
73    pub fn rs_patch_begin(copy_cb: rs_copy_cb, copy_arg: *mut c_void) -> *mut rs_job_t;
74
75    pub fn rs_trace_set_level(level: rs_loglevel);
76    pub fn rs_trace_to(f: rs_trace_fn_t);
77}