1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
pub use genet_abi::io::{Reader, ReaderWorker, Writer, WriterWorker};
#[doc(hidden)]
pub use genet_abi::io::{ReaderBox, WriterBox};
#[macro_export]
macro_rules! genet_readers {
( $( $x:expr ), * ) => {
thread_local! {
static READERS: Vec<genet_sdk::io::ReaderBox> = {
use genet_sdk::io::ReaderBox;
let mut v = Vec::new();
$(
v.push(ReaderBox::new($x));
)*
v
};
}
#[no_mangle]
pub extern "C" fn genet_abi_v1_get_readers(len: *mut u64) -> *const genet_sdk::io::ReaderBox {
READERS.with(|d| {
unsafe {
*len = d.len() as u64;
}
d.as_ptr()
})
}
};
}
#[macro_export]
macro_rules! genet_writers {
( $( $x:expr ), * ) => {
thread_local! {
static WRITERS: Vec<genet_sdk::io::WriterBox> = {
use genet_sdk::io::WriterBox;
let mut v = Vec::new();
$(
v.push(WriterBox::new($x));
)*
v
};
}
#[no_mangle]
pub extern "C" fn genet_abi_v1_get_writers(len: *mut u64) -> *const genet_sdk::io::WriterBox {
WRITERS.with(|d| {
unsafe {
*len = d.len() as u64;
}
d.as_ptr()
})
}
};
}