solverforge-derive
Procedural macros for SolverForge domain modeling.
Overview
This crate provides derive macros for implementing planning domain types:
#[derive(PlanningEntity)]- Mark structs as planning entities#[derive(PlanningSolution)]- Mark structs as planning solutions
Usage
Add to your Cargo.toml:
[]
= "0.1"
= "0.1"
Planning Entity
use PlanningEntity;
Entity Attributes
| Attribute | Description |
|---|---|
#[planning_id] |
Unique identifier field (required) |
#[planning_variable(...)] |
Field assigned by solver |
#[planning_list_variable(...)] |
List field assigned by solver |
Planning Solution
use PlanningSolution;
Solution Attributes
| Attribute | Description |
|---|---|
#[constraint_provider = "..."] |
Constraint function name (struct-level) |
#[problem_fact_collection] |
Immutable fact collection |
#[problem_fact] |
Single immutable fact |
#[planning_entity_collection] |
Entity collection modified by solver |
#[planning_entity] |
Single entity modified by solver |
#[value_range_provider(id = "...")] |
Provides values for planning variables |
#[planning_score] |
Score field |
Documentation
License
Apache-2.0