#C #ffi #macros #CStr #CString

macro c_macros

A bunch of macros useful for interfacing with C code

1 unstable release

0.1.1 Feb 11, 2020
0.1.0 Feb 11, 2020

#137 in FFI

30 downloads per month


65 lines

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.


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.