feat: add ColumnType as_str method and improve error handling

This commit is contained in:
Andrew Phillips (aider)
2025-05-10 13:41:48 -03:00
parent ceb50a03b3
commit 33fa31bbb6
2 changed files with 19 additions and 2 deletions

View File

@@ -59,6 +59,22 @@ pub enum ColumnType {
Meta,
}
impl ColumnType {
/// Returns the human-readable string representation of the column type
pub fn as_str(&self) -> &str {
match self {
ColumnType::Id => "id",
ColumnType::Time => "time",
ColumnType::Size => "size",
ColumnType::Compression => "compression",
ColumnType::FileSize => "filesize",
ColumnType::FilePath => "filepath",
ColumnType::Tags => "tags",
ColumnType::Meta => "meta",
}
}
}
pub fn get_format_box_chars_no_border_line_separator() -> TableFormat {
prettytable::format::FormatBuilder::new()
.column_separator('│')

View File

@@ -69,8 +69,9 @@ pub fn mode_list(
for column in list_format.clone() {
let mut column_format = column.split(":").into_iter();
let column_name = column_format.next().expect("Unable to parse column name");
let column_type = ColumnType::from_str(column_name)
.expect(format!("Unknown column {:?}", column_name).as_str());
let column_type = ColumnType::from_str(column_name).map_err(|_| {
anyhow!("Unknown column {:?}", column_name)
})?;
if column_type == ColumnType::Meta {
let meta_name = column_format