multiprint

Crates.iomultiprint
lib.rsmultiprint
version0.1.3
sourcesrc
created_at2020-01-11 09:33:07.913939
updated_at2020-01-22 00:31:34.573531
descriptionA convenient string multiplication utility crate
homepagehttps://crates.io/crates/multiprint
repositoryhttps://github.com/carribus/rust-multiprint
max_upload_size
id197449
size10,800
Peter Mares (carribus)

documentation

README

Build Status cratesio docsrs

MultiPrint - A convenient string value multiplier trait for Rust

This is a basic crate that provides a string multiplier Trait and implements it for Rust's std::str::String.

If you wish to implement the MultiPrint trait for your types, you will need to ensure that those types support the ToString trait which is implemented by default when you implement std::fmt::Display.

An example of using the crate:

use multiprint::{MultiPrint, Decorate};

fn main() {
    let s = String::from("Echo..");
    println!("{}", s.times(5, ' '));

    assert_eq!(s.times(5, ' '), "Echo.. Echo.. Echo.. Echo.. Echo..");
    assert_eq!("Hello!".to_string().times(2, ' '), "Hello! Hello!");

    // this will output:
    //
    //   Header 1
    //   --------
    //
    println!("{}", "Header 1".to_string().underline('-'));

    // this will output:
    //
    //   --------
    //   Header 1
    //
    println!("{}", "Header 1".to_string().overline('-'));

    // this will output:
    //
    //   ________
    //   Header 1
    //   ========
    //
    println!("{}", "Header 1".to_string().outline('_', '='));

    // this will output:
    //
    //   ------------
    //   | Header 1 |
    //   ------------
    //
    println!("{}", "Header 1".to_string().border('-', '|'));
}

Example(s)

At the moment, there is only one example since the crate is quite simple. If the complexity grows over time, I will add more targetted examples. In the meanwhile, to run the example, just type:

$ cargo run --example sample_headers
Commit count: 17

cargo fmt