Navigation Menu

Skip to content

Commit

Permalink
Merge pull request #147 from mgeisler/termwidth-hyphenation
Browse files Browse the repository at this point in the history
examples: let termwidth example use hyphenation
  • Loading branch information
mgeisler committed Sep 2, 2018
2 parents ac59881 + 22cc184 commit 887b754
Showing 1 changed file with 19 additions and 3 deletions.
22 changes: 19 additions & 3 deletions examples/termwidth.rs
@@ -1,20 +1,36 @@
#[cfg(feature = "term_size")]
#[cfg(feature = "hyphenation")]
extern crate hyphenation;
extern crate textwrap;

#[cfg(feature = "hyphenation")]
use hyphenation::Language;
use textwrap::Wrapper;

#[cfg(not(feature = "term_size"))]
fn main() {
println!("Please enable the term_size feature to run this example.");
}

#[cfg(feature = "term_size")]
fn main() {
#[cfg(not(feature = "hyphenation"))]
fn new_wrapper<'a>() -> (&'static str, Wrapper<'a, textwrap::HyphenSplitter>) {
("without hyphenation", Wrapper::with_termwidth())
}

#[cfg(feature = "hyphenation")]
fn new_wrapper<'a>() -> (&'static str, Wrapper<'a, hyphenation::Corpus>) {
let corpus = hyphenation::load(Language::English_US).unwrap();
("with hyphenation", Wrapper::with_splitter(textwrap::termwidth(), corpus))
}

let example = "Memory safety without garbage collection. \
Concurrency without data races. \
Zero-cost abstractions.";
// Create a new Wrapper -- automatically set the width to the
// current terminal width.
let wrapper = textwrap::Wrapper::with_termwidth();
println!("Formatted in within {} columns:", wrapper.width);
let (msg, wrapper) = new_wrapper();
println!("Formatted {} in {} columns:", msg, wrapper.width);
println!("----");
println!("{}", wrapper.fill(example));
println!("----");
Expand Down

0 comments on commit 887b754

Please sign in to comment.