#string-formatting #write #macro #formatting #writeln

swrite

Infallible alternatives to write! and writeln! for Strings

3 unstable releases

Uses old Rust 2015

0.1.0 Apr 8, 2023
0.0.2 Apr 8, 2023
0.0.1 Apr 6, 2023

#399 in Value formatting

Download history 82855/week @ 2025-12-04 60430/week @ 2025-12-11 48852/week @ 2025-12-18 37163/week @ 2025-12-25 51593/week @ 2026-01-01 61798/week @ 2026-01-08 53700/week @ 2026-01-15 69186/week @ 2026-01-22 71289/week @ 2026-01-29 78301/week @ 2026-02-05 73521/week @ 2026-02-12 68266/week @ 2026-02-19 80846/week @ 2026-02-26 96261/week @ 2026-03-05 98365/week @ 2026-03-12 97910/week @ 2026-03-19

387,663 downloads per month
Used in 20 crates (3 directly)

MIT/Apache

9KB
78 lines

swrite

CI crates.io docs.rs Minimum rustc version

swrite is a tiny Rust crate providing the swrite! and swriteln! macros as infallible alternatives to write! and writeln! for Strings. This is safe because writing to a String never returns Err(_).

The implementation uses the SWrite trait. It is implemented for String. With the osstring feature is enabled, it is also implemented for std::ffi::OsString.

Minimum Supported Rust Version (MSRV):

  • Without the osstring feature (default): 1.30.0
  • With the osstring feature: 1.64.0

Usage

In Cargo.toml:

[dependencies]
swrite = "0.1.0"

In your Rust code:

use swrite::{SWrite, swrite, swriteln};

Examples

Using swrite! and swriteln! with a String:

use swrite::{SWrite, swrite, swriteln};

let mut s = String::new();
swrite!(s, "Hello, {}! ", "world");
swriteln!(s, "The answer is {}.", 42);

println!("{}", s);

Output:

Hello, world! The answer is 42.

License

This project is dual-licensed under Apache 2.0 and MIT licenses.

No runtime deps

Features