nils-memo-cli 0.3.3

CLI crate for nils-memo-cli in the nils-cli workspace.
Documentation
pub mod json;
pub mod text;

pub use json::{emit_json_error, emit_json_result, emit_json_results, emit_json_results_with_meta};

pub fn format_item_id(item_id: i64) -> String {
    format!("itm_{item_id:08}")
}

pub fn parse_item_id(raw: &str) -> Option<i64> {
    let trimmed = raw.trim();
    if trimmed.is_empty() {
        return None;
    }

    if let Some(suffix) = trimmed.strip_prefix("itm_") {
        let parsed = suffix.parse::<i64>().ok()?;
        return (parsed > 0).then_some(parsed);
    }

    let parsed = trimmed.parse::<i64>().ok()?;
    (parsed > 0).then_some(parsed)
}