fluidattacks-blends-domain 0.41.0

Blends functional core: pure AST graph to syntax graph (no_std)
Documentation
#![allow(dead_code, reason = "will be used by builders")]

use crate::NodeId;
use alloc::boxed::Box;
use alloc::string::String;
use alloc::vec::Vec;

#[derive(Clone, PartialEq, Eq, Debug)]
pub enum CoreSyntaxNode {
    Comment(Comment),
    BoolLiteral(BoolLiteral),
    NumberLiteral(NumberLiteral),
    StringLiteral(StringLiteral),
    ArgumentList(Box<ArgumentList>),
    ArrayExpression(Box<ArrayExpression>),
}
pub type CoreSyntaxNodeWithId = (CoreSyntaxNode, NodeId);

#[derive(Clone, PartialEq, Eq, Debug)]
pub struct BoolLiteral {
    pub value: bool,
}
#[derive(Clone, PartialEq, Eq, Debug)]
pub struct NumberLiteral {
    pub value: String,
}
#[derive(Clone, PartialEq, Eq, Debug)]
pub struct StringLiteral {
    pub value: String,
}
#[derive(Clone, PartialEq, Eq, Debug)]
pub struct Comment {
    pub value: String,
}
#[derive(Clone, PartialEq, Eq, Debug)]
pub struct ArgumentList {
    pub args: Vec<CoreSyntaxNodeWithId>,
}
#[derive(Clone, PartialEq, Eq, Debug)]
pub struct FixedArrayExpression {
    pub elements: Vec<CoreSyntaxNodeWithId>,
}
#[derive(Clone, PartialEq, Eq, Debug)]
pub enum ArrayRepetitionLength {
    Repetition(u64),
    OutOfBounds,
}
#[derive(Clone, PartialEq, Eq, Debug)]
pub struct ArrayRepetition {
    pub element: CoreSyntaxNodeWithId,
    pub repetition: ArrayRepetitionLength,
}
#[derive(Clone, PartialEq, Eq, Debug)]
pub enum ArrayExpression {
    Fixed(FixedArrayExpression),
    Repetition(ArrayRepetition),
}