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过程宏

Download history 1704/week @ 2024-03-14 1598/week @ 2024-03-21 1874/week @ 2024-03-28 1435/week @ 2024-04-04 1443/week @ 2024-04-11 1591/week @ 2024-04-18 1839/week @ 2024-04-25 1632/week @ 2024-05-02 1075/week @ 2024-05-09 1320/week @ 2024-05-16 1207/week @ 2024-05-23 1365/week @ 2024-05-30 1415/week @ 2024-06-06 1278/week @ 2024-06-13 1203/week @ 2024-06-20 1083/week @ 2024-06-27

5,223 每月下载量
25 个 Crates 中使用 (2 个直接使用)

Zlib OR MIT OR Apache-2.0

8KB
173

::byte-strings

Rust 零成本字节字符串操作,以实现更好的和更安全的 FFI

Repository Latest version Documentation MSRV License CI

示例

提供 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