pub fn create_padding(element: char, required: usize, actual: usize) -> String {
if let Some(count) = required.checked_sub(actual) {
std::iter::repeat(element).take(count).collect()
} else {
String::from("")
}
}
pub fn remove_char(string: &str, index: usize) -> String {
let next = index + 1;
return format!("{}{}", &string[..index], &string[next..]);
}
#[cfg(test)]
pub mod tests {
use std::io;
use std::io::Write;
pub struct BufferWriter {
pub buffer: String,
}
impl BufferWriter {
pub fn new() -> BufferWriter {
let buffer = String::new();
return BufferWriter { buffer };
}
}
impl Write for BufferWriter {
fn write(&mut self, buffer: &[u8]) -> io::Result<usize> {
unsafe { self.buffer.as_mut_vec().write(buffer) }
}
fn flush(&mut self) -> io::Result<()> {
Ok(())
}
}
}