#cstr #macro #file-content

nightly macro include_cstr

Macro for building static CStr reference from file content

1 unstable release

0.1.0 Apr 22, 2021

#882 in Procedural macros

MIT license

10KB
177 lines

include_cstr

A macro for getting &'static CStr from a file.

This macro checks whether the content of the given file 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.46 and above.

It currently requires nightly compiler for proc_macro_span feature for resolving relative path to the file, so that it can be used in a similar way as include_str! and include_bytes! macro.

Example

use include_cstr::include_cstr;
use std::ffi::CStr;

let example = include_cstr!("example.txt");
assert_eq!(example, CStr::from_bytes_with_nul(b"content in example.txt\0").unwrap());

lib.rs:

A macro for getting &'static CStr from a file.

This macro checks whether the content of the given file 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.46 and above.

It currently requires nightly compiler for proc_macro_span feature for resolving relative path to the file, so that it can be used in a similar way as include_str! and include_bytes! macro.

Example

use include_cstr::include_cstr;
use std::ffi::CStr;

let example = include_cstr!("example.txt");
assert_eq!(example, CStr::from_bytes_with_nul(b"content in example.txt\0").unwrap());

Dependencies

~76KB