It takes advantage of Rust's closures for convenience, generics to avoid pointer indirections and heap allocations, and Drop for automatic memory management.
The API isn't complex, so it may be possible to export a C-compatible wrapper, but due to lack of the aforementioned language features it may be less optimized and less ergonomic.
The API isn't complex, so it may be possible to export a C-compatible wrapper, but due to lack of the aforementioned language features it may be less optimized and less ergonomic.