Skip to main content

harn_hostlib/ast/
mod.rs

1//! AST host capability.
2//!
3//! Wraps tree-sitter parsing, symbol extraction, and outline generation —
4//! the Swift `Sources/ASTEngine/` surface ported into Rust. Implementation
5//! lands in follow-up issue B2; this scaffold registers the contract so
6//! `burin-code`'s schema-drift tests can lock the public surface today.
7
8use crate::registry::{BuiltinRegistry, HostlibCapability};
9
10/// AST capability handle. Stateless today; will own a tree-sitter language
11/// registry and parser pool once the implementation lands.
12#[derive(Default)]
13pub struct AstCapability;
14
15impl HostlibCapability for AstCapability {
16    fn module_name(&self) -> &'static str {
17        "ast"
18    }
19
20    fn register_builtins(&self, registry: &mut BuiltinRegistry) {
21        registry.register_unimplemented("hostlib_ast_parse_file", "ast", "parse_file");
22        registry.register_unimplemented("hostlib_ast_symbols", "ast", "symbols");
23        registry.register_unimplemented("hostlib_ast_outline", "ast", "outline");
24    }
25}