#identifier

deprecated macro cstr-macros

Procedural macros for cstr

7 releases

Uses old Rust 2015

0.1.6 Aug 14, 2019
0.1.5 Mar 6, 2019
0.1.4 Dec 2, 2018
0.1.3 Apr 8, 2018
0.1.2 Feb 1, 2018

#260 in #identifier

Download history 50/week @ 2024-07-21 69/week @ 2024-07-28 46/week @ 2024-08-04 64/week @ 2024-08-11 44/week @ 2024-08-18 48/week @ 2024-08-25 34/week @ 2024-09-01 41/week @ 2024-09-08 46/week @ 2024-09-15 48/week @ 2024-09-22 37/week @ 2024-09-29 26/week @ 2024-10-06 52/week @ 2024-10-13 37/week @ 2024-10-20 32/week @ 2024-10-27 77/week @ 2024-11-03

200 downloads per month

MIT license

4KB
64 lines

cstr

CI Crates.io Docs

This crate has been deprecated. Rust 1.77.0 stabilized C-string literals. From that version, c"abc" can be used in place of cstr!("abc") provided by this crate. This new feature gives more concise code and faster compilation. Hence, this crate will no longer be maintained.

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 initialize constants.

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

~1.5MB
~37K SLoC