1 个稳定版本
1.0.0 | 2020 年 5 月 10 日 |
---|
#10 在 #cstr
9KB
104 行
const-cstr
从 Rust 字符串字面量创建静态兼容 C 的字符串。
此项目是从 abonander/const-cstr 分支出来的,以实现符合 Rust API 指南 的 API,并利用 const
函数 隐藏更多实现细节。
使用方法
Cargo.toml
[dependencies]
zombiezen-const-cstr = "1.0"
示例
use zombiezen_const_cstr::{const_cstr, ConstCStr};
use std::os::raw::c_char;
use std::ffi::CStr;
/// Declare a constant:
const HELLO_CSTR: ConstCStr = const_cstr!("Hello, world!");
// Imagine this is an `extern "C"` function linked from some other lib.
unsafe fn print_c_string(cstr: *const c_char) {
println!("{}", CStr::from_ptr(cstr).to_str().unwrap());
}
fn main() {
let goodnight_cstr = const_cstr!("Goodnight, sun!");
unsafe {
print_c_string(HELLO_CSTR.as_ptr());
print_c_string(goodnight_cstr.as_ptr());
}
}
打印
Hello, world!
Goodnight, sun!
许可
许可协议为
- Apache 许可证 2.0 版本 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT),任选其一。
贡献
除非你明确声明,否则你提交给工作的任何贡献都将根据上述方式双重许可,没有其他附加条款或条件。