Skip to main content

rfs_runner/
helper.rs

1use std::fmt;
2
3use colored::Colorize;
4
5pub fn limit_string(max: usize, input: impl ToString, pad: impl Into<Option<char>>) -> String {
6  let input = input.to_string();
7  let pad = pad.into().unwrap_or(' ');
8
9  let truncated: String = input.chars().take(max).collect();
10  let pad_len = max.saturating_sub(truncated.chars().count());
11
12  truncated + &pad.to_string().repeat(pad_len)
13}
14
15pub fn line_err(error: impl ToString) -> String {
16  format!("[{}] {}", dt_now_rfc2822(), error.to_string().red())
17}
18
19pub fn line_ok(info: impl fmt::Display) -> String {
20  format!("[{}] {info}", dt_now_rfc2822())
21}
22
23pub fn dt_now_rfc2822() -> impl fmt::Display {
24  chrono::Local::now().to_rfc2822().dimmed()
25}