fluidattacks-blends-domain 0.37.0

Blends functional core: pure AST graph to syntax graph (no_std)
Documentation
use crate::ast::node_utils::NodeResolutionError;
use crate::{ast::AstNode, syntax::SyntaxNode};
use alloc::boxed::Box;
use alloc::string::String;

#[derive(Clone, PartialEq, Eq, Debug)]
pub enum SyntaxNodeBuildError {
    Error(String),
    ResolutionError(NodeResolutionError),
    ChainedError { msg: String, parent: Box<Self> },
}

impl core::fmt::Display for SyntaxNodeBuildError {
    fn fmt(&self, formatter: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
        match self {
            Self::Error(msg) => formatter.write_str(msg),
            Self::ResolutionError(err) => err.fmt(formatter),
            Self::ChainedError { msg, parent } => write!(formatter, "{msg}: {parent}"),
        }
    }
}
#[allow(dead_code, reason = "will be used later on the dispatchers")]
pub type NodeBuilder = fn(args: &AstNode) -> Result<SyntaxNode, SyntaxNodeBuildError>;