fluidattacks-blends-domain 0.3.0

Blends functional core: pure AST graph to syntax graph (no_std)
Documentation
//! AST node: source position, tree-sitter kind, optional text, named fields.

use alloc::collections::BTreeMap;
use alloc::string::String;

use crate::NodeId;

#[derive(Clone, PartialEq, Eq, Debug)]
pub struct AstNode {
    pub line: u32,
    pub col: u32,
    pub kind: String,
    pub text: Option<String>,
    pub fields: BTreeMap<String, NodeId>,
}

impl AstNode {
    #[must_use]
    pub const fn new(line: u32, col: u32, kind: String) -> Self {
        Self {
            line,
            col,
            kind,
            text: None,
            fields: BTreeMap::new(),
        }
    }
}