stainless_script 0.1.2

Visual node-based programming language
Documentation
use crate::{class::Class, module::ModulePath, Plugin};
use std::collections::HashMap;

mod any_type;
mod array_type;
mod bool_type;
mod dict_type;
mod flow_nodes;
mod if_node;
mod nop_node;
mod number_type;
mod print_node;
mod string_type;
mod subroutine;
mod variable_node;

pub use any_type::*;
pub use array_type::*;
pub use bool_type::*;
pub use dict_type::*;
pub use flow_nodes::*;
pub use if_node::*;
pub use nop_node::*;
pub use number_type::*;
pub use print_node::*;
pub use string_type::*;
pub use subroutine::*;
pub use variable_node::*;

pub struct StdPlugin;

impl Plugin for StdPlugin {
    fn classes(&self) -> HashMap<ModulePath, Class> {
        [
            any_class(),
            array_class(),
            bool_class(),
            dict_class(),
            start_node_class(),
            end_node_class(),
            if_node_class(),
            nop_node_class(),
            number_class(),
            print_class(),
            string_class(),
            subroutine_class(),
            variable_get_class(),
            variable_set_class(),
        ]
        .into_iter()
        .map(|cl| (ModulePath(vec!["std".into()], cl.name.clone()), cl))
        .collect()
    }
}