You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
583 B
31 lines
583 B
4 years ago
|
use super::*;
|
||
|
use std::fmt;
|
||
|
|
||
|
pub trait JoinStrsExt: Sized
|
||
|
{
|
||
|
/// Join an iterator of `str` with a seperator
|
||
|
fn join(self, with: &str) -> String;
|
||
|
}
|
||
|
|
||
|
impl<T,I> JoinStrsExt for I
|
||
|
where I: IntoIterator<Item=T>,
|
||
|
T: fmt::Display
|
||
|
{
|
||
|
/// Join an iterator of `str` with a seperator
|
||
|
fn join(self, with: &str) -> String
|
||
|
{
|
||
|
let mut output = String::new();
|
||
|
let mut first=true;
|
||
|
for string in self.into_iter()
|
||
|
{
|
||
|
if !first {
|
||
|
output.push_str(with);
|
||
|
}
|
||
|
let string = string.to_string();
|
||
|
output.push_str(&string[..]);
|
||
|
first=false;
|
||
|
}
|
||
|
output
|
||
|
}
|
||
|
}
|