Trait binjs_meta::util::Reindentable[][src]

pub trait Reindentable {
    fn reindent(&self, prefix: &str) -> String;
fn fit(&self, prefix: &str, width: usize) -> String; }

A string or string-like construction that can be reindented.

Required Methods

Remove leading whitespace, replace it with prefix.

If self spans more than one line, the leading whitespace is computed from the first line and extracted from all lines and prefix is added to all lines.

use binjs_meta::util::Reindentable;

assert_eq!(&"abc".reindent("   "), "   abc");
assert_eq!(&" def".reindent("   "), "   def");
assert_eq!(&"  ghi".reindent("   "), "   ghi");
assert_eq!(&" jkl\n    mno".reindent("   "), "   jkl\n      mno");

Remove leading whitespace, replace it with prefix, ensure that the text fits within width columns.

If self spans more than one line, the leading whitespace is computed from the first line and extracted from all lines. and prefix is added to all lines.

If the result goes past width columns, self is split into several lines to try and fit within width columns.

use binjs_meta::util::Reindentable;

assert_eq!(&"abc".fit("// ", 30), "// abc");
assert_eq!(&" def".fit("// ", 30), "// def");
assert_eq!(&"  ghi".fit("// ", 30), "// ghi");
assert_eq!(&" jkl\n    mno".fit("// ", 30), "// jkl\n//    mno");
assert_eq!(&"abc def ghi".fit("// ", 8), "// abc\n// def\n// ghi");
assert_eq!(&"abc def ghi".fit("// ", 5), "// abc\n// def\n// ghi");

Implementations on Foreign Types

impl Reindentable for Option<String>
[src]

Implementors