#string #ffi #null #converting #arguments #cstr #terminated

cstr-argument

一个将函数参数转换为空终止字符串的特质

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 模式

Download history 8335/week @ 2024-03-14 6723/week @ 2024-03-21 5222/week @ 2024-03-28 7672/week @ 2024-04-04 5947/week @ 2024-04-11 6316/week @ 2024-04-18 7025/week @ 2024-04-25 7310/week @ 2024-05-02 7371/week @ 2024-05-09 7029/week @ 2024-05-16 5902/week @ 2024-05-23 5865/week @ 2024-05-30 4792/week @ 2024-06-06 6108/week @ 2024-06-13 7127/week @ 2024-06-20 5466/week @ 2024-06-27

24,603 每月下载量
46 个 crate 中使用 (9 直接使用)

无许可证

14KB
243

cstr-argument

一个将函数参数转换为空终止字符串的特质

Build Status Version

文档

用法

将其添加到您的 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