This library provide a bunch of macros useful for interacting with C code. # Why c_macros? 1. All alternatives are performant as possible,in particular `to_raw_c_string("Hello world!")` does not convert a vector into a boxed slice as `CString::from_vec_unchecked(String::from("Hello world!").into_bytes()).into_raw()` does. 2. As such,because they use byte literal syntax at the expansion,all are safe abstractions and does not need an unsafe block neither trigger warnings if are inside of one. # Versions This library require a nightly compiler with the following features enabled: [proc_macro_hygiene] because the macros are only useful expanded as expressions,[new_uninit] and [type_ascription] for [to_raw_c_string]. [proc_macro_hygiene]: https://github.com/rust-lang/rust/issues/54727 [new_uninit]: https://github.com/rust-lang/rust/issues/63291 [type_ascription]: https://github.com/rust-lang/rust/issues/23416 [to_raw_c_string]: https://docs.rs/c_macros/0.1.1/c_macros/macro.to_raw_c_string.html