Enum textwrap::core::WrapAlgorithm
source · pub enum WrapAlgorithm {
OptimalFit,
FirstFit,
}
Expand description
Wrapping algorithms.
After a text has been broken into Fragment
s, the one now has
to decide how to break the fragments into lines. The simplest
algorithm for this is implemented by wrap_first_fit
: it uses
no look-ahead and simply adds fragments to the line as long as
they fit. However, this can lead to poor line breaks if a large
fragment almost-but-not-quite fits on a line. When that happens,
the fragment is moved to the next line and it will leave behind a
large gap. A more advanced algorithm, implemented by
wrap_optimal_fit
, will take this into account. The optimal-fit
algorithm considers all possible line breaks and will attempt to
minimize the gaps left behind by overly short lines.
While both algorithms run in linear time, the first-fit algorithm is about 4 times faster than the optimal-fit algorithm.
Variants§
OptimalFit
Use an advanced algorithm which considers the entire paragraph
to find optimal line breaks. Implemented by
wrap_optimal_fit
.
Note: Only available when the smawk
Cargo feature is
enabled.
FirstFit
Use a fast and simple algorithm with no look-ahead to find
line breaks. Implemented by wrap_first_fit
.
Trait Implementations§
source§impl Clone for WrapAlgorithm
impl Clone for WrapAlgorithm
source§fn clone(&self) -> WrapAlgorithm
fn clone(&self) -> WrapAlgorithm
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for WrapAlgorithm
impl Debug for WrapAlgorithm
source§impl PartialEq<WrapAlgorithm> for WrapAlgorithm
impl PartialEq<WrapAlgorithm> for WrapAlgorithm
source§fn eq(&self, other: &WrapAlgorithm) -> bool
fn eq(&self, other: &WrapAlgorithm) -> bool
self
and other
values to be equal, and is used
by ==
.