2 个版本
0.1.1 | 2019年2月18日 |
---|---|
0.1.0 | 2019年2月16日 |
#12 in #safer
96 每月下载量
25KB
678 代码行数(不含注释)
::byte-strings
Rust 零成本字节字符串操作,为更好的 FFI 提供安全保障
示例
包含 c_str!
宏,用于创建 有效的 C 字符串字面量,且没有任何运行时成本!
#[macro_use]
extern crate byte_strings;
/// Some lib
mod safe {
use ::std::{
ffi::CStr,
os::raw::{c_char, c_int},
};
/// private unsafe C FFI
mod ffi {
use super::*;
extern "C" {
pub
fn puts (_: *const c_char)
-> c_int
;
}
}
/// lib API: safe Rust wrapper => uses `CStr`
pub
fn puts (message: &'_ CStr)
-> i32
{
unsafe {
ffi::puts(message.as_ptr()) as i32
}
}
}
fn main ()
{
safe::puts(c!("Hello, World!"));
}
依赖项
~2MB
~46K SLoC