Skip to main content

harn_vm/
stdlib_modules.rs

1/// Embedded standard library modules.
2///
3/// Each module is a `.harn` source file compiled into the binary via `include_str!`.
4/// They are only parsed/executed when a script does `import "std/<module>"`.
5pub fn get_stdlib_source(module: &str) -> Option<&'static str> {
6    match module {
7        "text" => Some(include_str!("stdlib_text.harn")),
8        "collections" => Some(include_str!("stdlib_collections.harn")),
9        "math" => Some(include_str!("stdlib_math.harn")),
10        "path" => Some(include_str!("stdlib_path.harn")),
11        "json" => Some(include_str!("stdlib_json.harn")),
12        "schema" => Some(include_str!("stdlib_schema.harn")),
13        "testing" => Some(include_str!("stdlib_testing.harn")),
14        "context" => Some(include_str!("stdlib_context.harn")),
15        "runtime" => Some(include_str!("stdlib_runtime.harn")),
16        "project" => Some(include_str!("stdlib_project.harn")),
17        "async" => Some(include_str!("stdlib_async.harn")),
18        "agents" => Some(include_str!("stdlib_agents.harn")),
19        "agent_state" => Some(include_str!("stdlib_agent_state.harn")),
20        "checkpoint" => Some(include_str!("stdlib_checkpoint.harn")),
21        "host" => Some(include_str!("stdlib_host.harn")),
22        "hitl" => Some(include_str!("stdlib_hitl.harn")),
23        "worktree" => Some(include_str!("stdlib_worktree.harn")),
24        "acp" => Some(include_str!("stdlib_acp.harn")),
25        "triggers" => Some(include_str!("stdlib_triggers.harn")),
26        "connectors/github" => Some(include_str!("stdlib_connectors_github.harn")),
27        "connectors/linear" => Some(include_str!("stdlib_connectors_linear.harn")),
28        "connectors/notion" => Some(include_str!("stdlib_connectors_notion.harn")),
29        "connectors/slack" => Some(include_str!("stdlib_connectors_slack.harn")),
30        _ => None,
31    }
32}