sim-nest 0.1.5

The SIM constellation umbrella facade: one crate that re-exports the runtime kernel, codecs, number domains, and libraries behind features.
Documentation
use sim_kernel::{Export, Symbol};

use crate::runtime::shape_ops::shape_class_symbols;
use crate::shapes::CORE_SHAPE_CLASS;

use super::optional::append_optional_core_function_exports;

pub(super) fn core_exports() -> Vec<Export> {
    let mut exports = Vec::new();
    for symbol in [
        Symbol::qualified("core", "Class"),
        Symbol::qualified("core", "Function"),
        Symbol::qualified("core", "Macro"),
        Symbol::qualified("core", CORE_SHAPE_CLASS),
        Symbol::qualified("core", "ShapeMatch"),
        Symbol::qualified("core", "Codec"),
        Symbol::qualified("core", "Help"),
        Symbol::qualified("core", "Test"),
        Symbol::qualified("core", "NumberDomain"),
        Symbol::qualified("core", "Nil"),
        Symbol::qualified("core", "Bool"),
        Symbol::qualified("core", "Number"),
        Symbol::qualified("core", "Symbol"),
        Symbol::qualified("core", "String"),
        Symbol::qualified("core", "Bytes"),
        Symbol::qualified("core", "List"),
        Symbol::qualified("core", "Table"),
        Symbol::qualified("core", "Expr"),
        Symbol::qualified("core", "Thunk"),
        Symbol::qualified("core", "EvalRequest"),
        Symbol::qualified("core", "EvalReply"),
        Symbol::qualified("core", "LocalEvalFabric"),
        Symbol::qualified("core", "Card"),
    ] {
        exports.push(Export::Class {
            symbol,
            class_id: None,
        });
    }
    for symbol in shape_class_symbols() {
        exports.push(Export::Class {
            symbol,
            class_id: None,
        });
    }
    for symbol in [
        Symbol::qualified("core", "Any"),
        Symbol::qualified("core", "Number"),
        Symbol::qualified("core", "Expr"),
        Symbol::qualified("core", "EncodeOptions"),
        Symbol::qualified("core", "MacroSyntax"),
        Symbol::qualified("codec", "LispSurface"),
        Symbol::qualified("codec", "JsonTaggedExpr"),
        Symbol::qualified("codec", "BinaryFrame"),
        Symbol::qualified("codec", "BinaryBase64Text"),
        Symbol::qualified("codec", "ChatTranscript"),
        Symbol::qualified("codec", "AlgolSurface"),
        Symbol::qualified("core", "Card"),
        Symbol::qualified("browse", "Help"),
        Symbol::qualified("browse", "Test"),
        Symbol::qualified("browse", "Coverage"),
        Symbol::qualified("browse", "Facet"),
        Symbol::qualified("browse", "Redaction"),
        Symbol::qualified("browse", "TestReport"),
    ] {
        exports.push(Export::Shape {
            symbol,
            shape_id: None,
        });
    }
    for symbol in [
        Symbol::qualified("core", "macroexpand"),
        Symbol::new("macroexpand"),
        Symbol::qualified("core", "lambda"),
        Symbol::new("lambda"),
        Symbol::qualified("core", "with-eval-policy"),
        Symbol::new("with-eval-policy"),
        Symbol::qualified("core", "libs"),
        Symbol::qualified("core", "lib"),
        Symbol::qualified("core", "browse"),
        Symbol::new("browse"),
        Symbol::qualified("core", "exports"),
        Symbol::qualified("core", "export"),
        Symbol::qualified("core", "classes"),
        Symbol::qualified("core", "functions"),
        Symbol::qualified("core", "macros"),
        Symbol::qualified("core", "shapes"),
        Symbol::qualified("core", "codecs"),
        Symbol::qualified("core", "number-domains"),
        Symbol::qualified("core", "eval-policies"),
        Symbol::qualified("core", "tests"),
        Symbol::qualified("core", "lib-tests"),
        Symbol::qualified("core", "run-tests"),
        Symbol::qualified("core", "help"),
        Symbol::qualified("core", "args"),
        Symbol::qualified("core", "result"),
        Symbol::qualified("core", "examples"),
        Symbol::qualified("core", "coverage"),
        Symbol::qualified("core", "facets"),
        Symbol::qualified("core", "help-object"),
        Symbol::qualified("core", "browse-neighbors"),
        Symbol::new("browse-neighbors"),
        Symbol::qualified("core", "browse-path"),
        Symbol::new("browse-path"),
        Symbol::qualified("class", "subclass?"),
        Symbol::qualified("shape", "subshape?"),
        Symbol::qualified("shape", "parents"),
        Symbol::qualified("shape", "check"),
        Symbol::qualified("shape", "check-expr"),
        Symbol::qualified("shape", "assert"),
        Symbol::qualified("shape", "accepted?"),
        Symbol::qualified("shape", "rejected?"),
        Symbol::qualified("shape", "score"),
        Symbol::qualified("shape", "value-captures"),
        Symbol::qualified("shape", "expr-captures"),
        Symbol::qualified("shape", "diagnostics"),
        Symbol::qualified("shape", "and"),
        Symbol::qualified("shape", "or"),
        Symbol::qualified("shape", "not"),
        Symbol::qualified("shape", "list"),
        Symbol::qualified("shape", "list-rest"),
        Symbol::qualified("shape", "table"),
        Symbol::qualified("shape", "table-required"),
        Symbol::qualified("shape", "table-open"),
        Symbol::qualified("shape", "table-closed"),
        Symbol::qualified("shape", "repeat"),
        Symbol::qualified("shape", "repeat-bounds"),
        Symbol::qualified("shape", "all"),
        Symbol::qualified("shape", "any"),
        Symbol::qualified("shape", "none"),
        Symbol::qualified("shape", "without"),
        Symbol::qualified("shape", "compare"),
        Symbol::qualified("shape", "compare-with"),
        Symbol::qualified("shape", "venn"),
        Symbol::qualified("shape", "venn-union"),
        Symbol::qualified("shape", "venn-intersection"),
        Symbol::qualified("shape", "venn-only"),
        Symbol::qualified("shape", "venn-outside"),
        Symbol::qualified("shape", "venn-exactly"),
        Symbol::qualified("shape", "hook"),
        Symbol::qualified("shape", "hook-trace"),
        Symbol::qualified("shape", "hook-score-floor"),
        Symbol::qualified("shape", "hook-accept-on-no-diagnostics"),
        Symbol::qualified("shape", "hook-discard-on-diagnostic-prefix"),
        Symbol::qualified("core", "list"),
        Symbol::new("list"),
        Symbol::qualified("core", "table"),
        Symbol::new("table"),
        Symbol::qualified("table", "catalog"),
        Symbol::qualified("core", "cons"),
        Symbol::new("cons"),
        Symbol::qualified("core", "car"),
        Symbol::new("car"),
        Symbol::qualified("core", "cdr"),
        Symbol::new("cdr"),
        Symbol::qualified("core", "head"),
        Symbol::new("head"),
        Symbol::qualified("core", "tail"),
        Symbol::new("tail"),
        Symbol::qualified("core", "empty?"),
        Symbol::new("empty?"),
        Symbol::qualified("core", "len"),
        Symbol::new("len"),
        Symbol::qualified("core", "len-cmp"),
        Symbol::new("len-cmp"),
        Symbol::qualified("core", "len<"),
        Symbol::new("len<"),
        Symbol::qualified("core", "len<="),
        Symbol::new("len<="),
        Symbol::qualified("core", "len="),
        Symbol::new("len="),
        Symbol::qualified("core", "len>="),
        Symbol::new("len>="),
        Symbol::qualified("core", "len>"),
        Symbol::new("len>"),
        Symbol::qualified("core", "nth"),
        Symbol::new("nth"),
        Symbol::qualified("core", "take"),
        Symbol::new("take"),
        Symbol::qualified("core", "drop"),
        Symbol::new("drop"),
        Symbol::qualified("core", "list-impl"),
        Symbol::new("list-impl"),
        Symbol::qualified("core", "table-impl"),
        Symbol::new("table-impl"),
        Symbol::qualified("core", "get"),
        Symbol::new("get"),
        Symbol::qualified("core", "set"),
        Symbol::new("set"),
        Symbol::qualified("core", "has?"),
        Symbol::new("has?"),
        Symbol::qualified("core", "del"),
        Symbol::new("del"),
        Symbol::qualified("core", "keys"),
        Symbol::new("keys"),
        Symbol::qualified("core", "entries"),
        Symbol::new("entries"),
        Symbol::qualified("core", "clear"),
        Symbol::new("clear"),
        Symbol::qualified("core", "mkdir"),
        Symbol::new("mkdir"),
        Symbol::qualified("core", "opendir"),
        Symbol::new("opendir"),
        Symbol::qualified("core", "rmdir"),
        Symbol::new("rmdir"),
        Symbol::qualified("core", "dir?"),
        Symbol::new("dir?"),
        Symbol::qualified("core", "realize"),
        Symbol::new("realize"),
    ] {
        exports.push(Export::Function {
            symbol,
            function_id: None,
        });
    }
    append_optional_core_function_exports(&mut exports);
    exports.push(Export::Value {
        symbol: Symbol::qualified("core", "local-fabric"),
    });
    exports
}