closure_ffi/
lib.rs

1#![no_std]
2#![cfg_attr(docsrs, feature(doc_cfg))]
3#![cfg_attr(feature = "unstable", feature(unsize))]
4#![cfg_attr(feature = "unstable", feature(ptr_metadata))]
5#![cfg_attr(feature = "tuple_trait", feature(tuple_trait))]
6#![cfg_attr(feature = "c_variadic", feature(c_variadic))]
7#![cfg_attr(feature = "coverage", feature(coverage_attribute))]
8#![doc = include_str!("../README.md")]
9#![cfg_attr(doc, doc = include_str!("../CHANGELOG.md"))]
10
11extern crate alloc;
12
13#[cfg(feature = "std")]
14extern crate std;
15
16#[cfg(feature = "safe_jit")]
17mod safe_jit;
18
19#[doc(hidden)]
20pub mod arch;
21
22pub mod bare_closure;
23pub mod cc;
24pub mod jit_alloc;
25pub mod thunk_factory;
26pub mod traits;
27
28/// Common imports required to use `closure-ffi`.
29pub mod prelude {
30    #[doc(inline)]
31    pub use super::bare_closure::{
32        BareFn, BareFnAny, BareFnMut, BareFnMutAny, BareFnMutSync, BareFnOnce, BareFnOnceAny,
33        BareFnOnceSync, BareFnSync, UntypedBareFn, UntypedBareFnMut, UntypedBareFnOnce,
34    };
35    #[doc(inline)]
36    pub use super::cc;
37    #[doc(inline)]
38    pub use super::jit_alloc::{JitAlloc, JitAllocError};
39}
40
41#[doc(inline)]
42pub use prelude::*;