solverforge-macros 0.12.1

Derive macros for SolverForge constraint solver
Documentation
use std::collections::{BTreeMap, BTreeSet};
use std::path::{Path, PathBuf};

use proc_macro2::TokenStream;
use quote::{format_ident, quote, ToTokens};
use syn::parse::{Parse, ParseStream};
use syn::{
    Attribute, Error, Fields, Ident, Item, ItemMod, ItemStruct, ItemType, ItemUse, LitStr, Result,
    Token, Type, UseTree, Visibility,
};

use crate::attr_parse::{
    get_attribute, has_attribute, parse_attribute_bool, parse_attribute_list,
    parse_attribute_string,
};
use crate::attr_validation::{
    validate_list_element_collection_attribute, validate_no_attribute_args,
    validate_planning_entity_attribute, validate_planning_list_variable_attribute,
    validate_planning_solution_attribute, validate_planning_variable_attribute,
    validate_problem_fact_attribute, validate_shadow_updates_attribute,
    validate_shadow_variable_attribute,
};

include!("planning_model/manifest.rs");
include!("planning_model/modules.rs");
include!("planning_model/metadata.rs");
include!("planning_model/support_groups.rs");
include!("planning_model/support.rs");
include!("planning_model/shadows.rs");
include!("planning_model/tests.rs");