5 个版本
使用旧的 Rust 2015
0.1.2 | 2021年10月14日 |
---|---|
0.1.1 | 2019年1月28日 |
0.1.0 | 2018年4月15日 |
0.0.2 | 2017年9月10日 |
0.0.1 | 2017年9月10日 |
#794 in Rust 模式
24,603 每月下载量
在 46 个 crate 中使用 (9 直接使用)
14KB
243 行
cstr-argument
一个将函数参数转换为空终止字符串的特质
用法
将其添加到您的 Cargo.toml
[dependencies]
cstr-argument = "0.0.2"
并将其添加到您的 crate 根目录
extern crate cstr_argument;
示例
use std::os::raw::c_char;
use cstr_argument::CStrArgument;
extern "C" {
fn foo(s: *const c_char);
}
fn bar<S: CStrArgument>(s: S) {
let s = s.into_cstr();
unsafe {
foo(s.as_ref().as_ptr())
}
}
fn baz() {
bar("hello "); // Argument will be converted to a CString requiring an allocation
bar("world\0"); // Argument will be converted to a CStr without allocation
bar("!".to_owned()); // Argument will be converted to a CString possibly requiring an allocation
}
依赖项
~170–315KB