42 lines
1.3 KiB
Rust
42 lines
1.3 KiB
Rust
|
#[cfg(feature = "hyphenation")]
|
||
|
extern crate hyphenation;
|
||
|
extern crate textwrap;
|
||
|
|
||
|
#[cfg(feature = "hyphenation")]
|
||
|
use hyphenation::{Language, Load, Standard};
|
||
|
#[cfg(feature = "term_size")]
|
||
|
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, Standard>) {
|
||
|
let dictionary = Standard::from_embedded(Language::EnglishUS).unwrap();
|
||
|
(
|
||
|
"with hyphenation",
|
||
|
Wrapper::with_splitter(textwrap::termwidth(), dictionary),
|
||
|
)
|
||
|
}
|
||
|
|
||
|
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 (msg, wrapper) = new_wrapper();
|
||
|
println!("Formatted {} in {} columns:", msg, wrapper.width);
|
||
|
println!("----");
|
||
|
println!("{}", wrapper.fill(example));
|
||
|
println!("----");
|
||
|
}
|