A macro for getting
&'static CStr from literal.
This macro checks whether the given literal is valid for
at compile time, and returns a static reference of
Note that it currently cannot be used to initialize constants due to restriction of Rust.
Also, it currently only supports a UTF-8 string as input because
Rust's tokenizer only accepts that without the
b prefix. This
may be expanded in the future if necessary.
#[macro_use] extern crate cstr; use std::ffi::CStr; let test = cstr!("hello"); assert_eq!(test, CStr::from_bytes_with_nul(b"hello\0").unwrap());
On Rust 2018 edition, you can not simply use
use cstr::cstr; due to limitation of procedural-masquerade,
the crate we use to build this macro.
You need to stick with 2015 edition's
#[macro_use] or import
everything from this crate via