join-string
A simple crate to join elements as a string, interspersing a separator between all elements.
This is done somewhat efficiently, if possible, meaning if the iterator is cheaply
clonable you can directly print the result of Join::join() without creating a temporary
String in memory. The Join::join() method will appear on anything that implements
std::iter::IntoIterator,
meaning on all iterators and collections. The elements and the separator need to implement
std::fmt::Display. Alternatively
the Join::join_str() method can be used to join elements that only implement
AsRef<str>.
Examples
use Join;
assert_eq!;
println!;
// Output: oof rab zab
You can also write the result more directly to a
std::io::Write or
std::fmt::Write
even if the backing iterator doesn't implement
Clone.
use Join;
.join.write_io?;
let mut str = Stringnew;
.join.write_fmt?;
Notes
The standard library already provides a similar
std::slice::Join
trait on slices, but not on iterators, and the standard library version always directly returns a
new String. Further there are multiple other similar crates that however work a bit differently,
e.g. having more restrictions on element and separator types or always returning a String.