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

#198 in Rust patterns

Download history 1906/week @ 2024-08-04 2421/week @ 2024-08-11 2054/week @ 2024-08-18 2104/week @ 2024-08-25 1951/week @ 2024-09-01 1530/week @ 2024-09-08 1010/week @ 2024-09-15 2651/week @ 2024-09-22 2106/week @ 2024-09-29 2131/week @ 2024-10-06 2579/week @ 2024-10-13 2976/week @ 2024-10-20 2788/week @ 2024-10-27 2740/week @ 2024-11-03 2035/week @ 2024-11-10 1907/week @ 2024-11-17

9,568 downloads per month
Used in 55 crates (20 directly)

Apache-2.0 OR MIT

13KB
241 lines

no_std libc print/println/eprint/eprintln/dbg

Build Status docs.rs crates.io

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