sim-run-loaders 0.1.1

Feature-composable SIM bootloader loaders.
Documentation
pub(crate) fn parse_symbol_text(value: &str) -> sim_kernel::Symbol {
    match value.split_once('/') {
        Some((namespace, name)) if !namespace.is_empty() && !name.is_empty() => {
            sim_kernel::Symbol::qualified(namespace.to_owned(), name.to_owned())
        }
        _ => sim_kernel::Symbol::new(value.to_owned()),
    }
}

pub(crate) fn expr_kind(expr: &sim_kernel::Expr) -> &'static str {
    match expr {
        sim_kernel::Expr::Nil => "nil",
        sim_kernel::Expr::Bool(_) => "bool",
        sim_kernel::Expr::Number(_) => "number",
        sim_kernel::Expr::Symbol(_) => "symbol",
        sim_kernel::Expr::Local(_) => "local",
        sim_kernel::Expr::String(_) => "string",
        sim_kernel::Expr::Bytes(_) => "bytes",
        sim_kernel::Expr::List(_) => "list",
        sim_kernel::Expr::Vector(_) => "vector",
        sim_kernel::Expr::Map(_) => "map",
        sim_kernel::Expr::Set(_) => "set",
        sim_kernel::Expr::Call { .. } => "call",
        sim_kernel::Expr::Infix { .. } => "infix",
        sim_kernel::Expr::Prefix { .. } => "prefix",
        sim_kernel::Expr::Postfix { .. } => "postfix",
        sim_kernel::Expr::Block(_) => "block",
        sim_kernel::Expr::Quote { .. } => "quote",
        sim_kernel::Expr::Annotated { .. } => "annotated",
        sim_kernel::Expr::Extension { .. } => "extension",
    }
}