6 个版本
0.3.1 | 2023 年 6 月 12 日 |
---|---|
0.3.0 | 2023 年 6 月 12 日 |
0.2.2 | 2021 年 12 月 10 日 |
0.2.1 | 2021 年 10 月 28 日 |
#1415 在 过程宏
5,223 每月下载量
在 25 个 Crates 中使用 (2 个直接使用)
8KB
173 行
::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!"));
}
lib.rs
:
该 Crate 不适合直接使用。请使用 https://docs.rs/byte-strings。
依赖项
~295–750KB
~18K SLoC