Crate unindent

source ·
Expand description



This crate provides indoc’s indentation logic for use with strings that are not statically known at compile time. For unindenting string literals, use indoc instead.

This crate exposes two unindent functions and an extension trait:

  • fn unindent(&str) -> String
  • fn unindent_bytes(&[u8]) -> Vec<u8>
  • trait Unindent
use unindent::unindent;

fn main() {
    let indented = "
            line one
            line two";
    assert_eq!("line one\nline two", unindent(indented));

The Unindent extension trait expose the same functionality under an extension method.

use unindent::Unindent;

fn main() {
    let indented = format!("
            line {}
            line {}", "one", "two");
    assert_eq!("line one\nline two", indented.unindent());