24 releases
0.1.23 | Apr 16, 2024 |
---|---|
0.1.22 | Sep 26, 2023 |
0.1.21 | Feb 25, 2023 |
0.1.20 | Jul 28, 2022 |
0.1.7 | Dec 30, 2018 |
#188 in Rust patterns
9,703 downloads per month
Used in 50 crates
(19 directly)
13KB
241 lines
no_std libc print/println/eprint/eprintln/dbg
Implements println!
, eprintln!
and dbg!
on the libc
crate without
requiring the use of an allocator.
Allows you to use these macros in a #![no_std]
context, or in a
situation where the traditional Rust streams might not be available
(ie: at process shutdown time).
By default this crate provides libc_
-prefixed macros, but also allows consumers to
import macros with the same name as the stdlib printing macros via the std_name
module.
Usage
Exactly as you'd use println!
, eprintln!
and 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);
Or you can import aliases to std
names:
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);
Dependencies
~44KB