rowboat 0.1.0

A package for working with row/column/cell structured data AKA dataframe.
Documentation
use core::fmt;

pub const MAX_CELL_DISPLAY: usize = 20;
pub const MAX_COL_DISPLAY: usize = 8;

#[derive(Debug, Clone)]
pub struct Error {
    reason: String,
}
impl Error {
    pub fn new(reason: String) -> Self {
        Error { reason }
    }
}
impl fmt::Display for Error {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        write!(f, "{}", self.reason)
    }
}

pub fn pad_string(s: &str, w: usize, left: bool) -> String {
    if s.len() == w {
        return s.to_string();
    } else if s.len() > w {
        return format!("{}..", s[..(w - 2)].to_string());
    }
    let spaces = " ".to_string().repeat(w - s.len());
    match left {
        false => format!("{s}{spaces}"),
        true => format!("{spaces}{s}"),
    }
}