appcui_proc_macro 0.2.6

Procedural macros for the AppCUI TUI framework.
Documentation
use super::control_builder::ControlBuilder;
use crate::parameter_parser::*;
use proc_macro::*;

static COLORS_TYPE: FlagsSignature = FlagsSignature::new(&[
    "Black",
    "DarkBlue",
    "DarkGreen",
    "Teal",
    "DarkRed",
    "Magenta",
    "Olive",
    "Silver",
    "Gray",
    "Blue",
    "Green",
    "Aqua",
    "Red",
    "Pink",
    "Yellow",
    "White",
    "Transparent",
]);

static POSILITIONAL_PARAMETERS: &[PositionalParameter] = &[PositionalParameter::new("color", ParamType::String)];
static NAMED_PARAMETERS: &[NamedParameter] = &[NamedParameter::new("color", "color", ParamType::String)];

pub(crate) fn create(input: TokenStream) -> TokenStream {
    let mut cb = ControlBuilder::new("colorpicker", input, POSILITIONAL_PARAMETERS, NAMED_PARAMETERS, true);
    cb.init_control("ColorPicker::new");
    cb.add_enum_parameter("color", "Color", &COLORS_TYPE, None);
    cb.add_layout();    
    cb.finish_control_initialization();
    cb.add_basecontrol_operations();
    cb.into()
}