#libc #stdlib #macro #printing #print #println #stderr

libc-print

在无 stdlib 的 libc 上使用 println! 和 eprintln! 宏

24 个版本

0.1.23 2024 年 4 月 16 日
0.1.22 2023 年 9 月 26 日
0.1.21 2023 年 2 月 25 日
0.1.20 2022 年 7 月 28 日
0.1.7 2018 年 12 月 30 日

Rust 模式 中排名 #275

Download history 1854/week @ 2024-04-20 1706/week @ 2024-04-27 2013/week @ 2024-05-04 2023/week @ 2024-05-11 2147/week @ 2024-05-18 1943/week @ 2024-05-25 1789/week @ 2024-06-01 1900/week @ 2024-06-08 1732/week @ 2024-06-15 1772/week @ 2024-06-22 1339/week @ 2024-06-29 1586/week @ 2024-07-06 2197/week @ 2024-07-13 1832/week @ 2024-07-20 2079/week @ 2024-07-27 1843/week @ 2024-08-03

每月下载量 8,181
41 crate 使用(其中 18 个直接使用)

Apache-2.0 或 MIT

13KB
241 行代码(不包括注释)

无 stdlib 的 libc print/println/eprint/eprintln/dbg

Build Status docs.rs crates.io

在不需要使用分配器的情况下,在 libc crate 上实现 println!eprintln!dbg!

允许您在 #![no_std] 上下文或传统 Rust 流可能不可用的情况下(例如:在进程关闭时)使用这些宏。

默认情况下,此 crate 提供 libc-prefixed 宏,但也允许通过 std_name 模块导入具有与 stdlib 打印宏相同名称的别名。

用法

与使用 println!eprintln!dbg! 相同。

#![no_std]

// Use the default `libc_`-prefixed macros:
libc_println!("Hello {}!", "stdout");
libc_eprintln!("Hello {}!", "stderr");
let a = 2;
let b = libc_dbg!(a * 2) + 1;
assert_eq!(b, 5);

或者您可以将别名导入到 std 名称中

use libc_print::std_name::{println, eprintln, dbg};

println!("Hello {}!", "stdout");
eprintln!("Hello {}!", "stderr");
let a = 2;
let b = dbg!(a * 2) + 1;
assert_eq!(b, 5);

依赖

~43KB