#[derive(Debug, Hash, Default, Clone, PartialEq, PartialOrd, Eq, Ord)]
pub struct StringMutTail {
url: String,
tail_index: usize,
}
impl From<String> for StringMutTail {
fn from(mut base: String) -> Self {
let tail_index = base.len();
base.reserve(10);
Self {
url: base,
tail_index,
}
}
}
impl From<&str> for StringMutTail {
fn from(base: &str) -> Self { Self::from(base.to_string()) }
}
impl StringMutTail {
pub fn with_tail_int(&mut self, integer: impl itoa::Integer) -> &str {
self.url.truncate(self.tail_index);
self.url.push_str(itoa::Buffer::new().format(integer));
&self.url
}
}