1pub use genet_abi::decoder::{Decoder, ExecType, Status, Worker};
4
5#[doc(hidden)]
6pub use genet_abi::decoder::DecoderBox;
7
8#[macro_export]
10macro_rules! genet_decoders {
11 ( $( $x:expr ), * ) => {
12 thread_local! {
13 static DISSECTORS: Vec<genet_sdk::decoder::DecoderBox> = {
14 use genet_sdk::decoder::DecoderBox;
15 let mut v = Vec::new();
16 $(
17 v.push(DecoderBox::new($x));
18 )*
19 v
20 };
21 }
22 #[no_mangle]
23 pub extern "C" fn genet_abi_v1_get_decoders(len: *mut u64) -> *const genet_sdk::decoder::DecoderBox {
24 DISSECTORS.with(|d| {
25 unsafe {
26 *len = d.len() as u64;
27 }
28 d.as_ptr()
29 })
30 }
31 };
32}