2 releases
Uses old Rust 2015
0.1.1 | Oct 7, 2018 |
---|---|
0.1.0 | Aug 18, 2018 |
#144 in #literals
7KB
Literal C String
A procedural macro for making literal C strings.
Problem
I was tired of typing the following:
let s = CString::new("Hello, world!").unwrap();
Ideally, I would be able to do something similar to the syntax of a byte string c"Hello, world!"
but that requires a language change.
Solution
I decided to create a macro that is close enough.
let s = c!("Hello, world!");
Installation
Currently requires a nightly build of rust. Use rustc 1.31.0-nightly (4efdc04a5 2018-10-06)
or newer.
[dependencies]
literal_cstr = "0.1"
#![feature(proc_macro_hygiene)]
extern crate literal_cstr;
use literal_cstr::c;
Procedural macros are stable, but #![feature(proc_macro_hygiene)]
is required in order to use the macro with a literal string expression.
Usage
let s = c!("Hello, world!");
Check out /examples/show.rs for a full example.
Tests
$ cargo test
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Dependencies
~2MB
~48K SLoC