literal_cstr 0.1.1

A macro that makes it easier to create literal C strings
Documentation

Literal C String

Build Status

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

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.