Crate hs_bindgen_traits

Crate hs_bindgen_traits 

Source
Expand description

§hs-bingen-traits

Utility traits behind hs-bindgen ergonomics. It helps user to easily define wrapper function to derive a Rust type from and into a C-FFI safe target type (that match the memory layout of an Haskell type).

§What’s this library for?

Does repr(C) define a trait I can use to check structs were declared with #repr(C)? The answer is sadly no … that’s what this library trying to provide, like what safer_ffi does, but in a simpler and more minimal way, since the goal here is only to target Haskell FFI.

§Acknowledgments

⚠️ This is still a working experiment, not yet production ready.

This project was part of a work assignment as an IOG contractor.

§License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Traits§

FromReprC
Generate C-FFI cast from a given Rust type.
FromReprRust
Generate safe Rust wrapper from a given C-FFI type.
IntoReprC
impl IntoReprC<Foo> for Bar -> means from C Foo type into Rust Bar repr
IntoReprRust
impl IntoReprRust<Foo> for Bar -> means from Rust Foo type into C Bar repr