#c-strings #c-str

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

#1375 in Procedural macros

Unlicense

8KB
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.

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.

Dependencies

~120KB