use std::borrow::Borrow;
pub(crate) fn join<I, T>(iter: I, seperator: &str) -> String
where
T: Borrow<str>,
I: Iterator<Item = T>,
{
let mut result = String::new();
let mut added = false;
for item in iter {
if added {
result.push_str(seperator);
}
result.push_str(item.borrow());
added = true;
}
result
}