20 releases
0.2.11 | Sep 24, 2022 |
---|---|
0.2.10 | Feb 25, 2022 |
0.2.9 | Sep 24, 2021 |
0.2.8 | Dec 6, 2020 |
0.1.3 | Feb 14, 2018 |
#90 in Procedural macros
58,045 downloads per month
Used in 32 crates
(26 directly)
12KB
230 lines
cstr
A macro for getting &'static CStr
from literal or identifier.
This macro checks whether the given literal is valid for CStr
at compile time, and returns a static reference of CStr
.
This macro can be used to to initialize constants on Rust 1.64 and above.
Example
use cstr::cstr;
use std::ffi::CStr;
let test = cstr!(b"hello\xff");
assert_eq!(test, CStr::from_bytes_with_nul(b"hello\xff\0").unwrap());
let test = cstr!("hello");
assert_eq!(test, CStr::from_bytes_with_nul(b"hello\0").unwrap());
let test = cstr!(hello);
assert_eq!(test, CStr::from_bytes_with_nul(b"hello\0").unwrap());
lib.rs
:
A macro for getting &'static CStr
from literal or identifier.
This macro checks whether the given literal is valid for CStr
at compile time, and returns a static reference of CStr
.
This macro can be used to to initialize constants on Rust 1.64 and above.
Example
use cstr::cstr;
use std::ffi::CStr;
let test = cstr!(b"hello\xff");
assert_eq!(test, CStr::from_bytes_with_nul(b"hello\xff\0").unwrap());
let test = cstr!("hello");
assert_eq!(test, CStr::from_bytes_with_nul(b"hello\0").unwrap());
let test = cstr!(hello);
assert_eq!(test, CStr::from_bytes_with_nul(b"hello\0").unwrap());
Dependencies
~99KB