solverforge-macros 0.8.1

Derive macros for SolverForge constraint solver
Documentation
use solverforge::prelude::*;

#[planning_entity]
struct Task {
    #[planning_id]
    id: String,
    #[planning_variable(allows_unassigned = true)]
    worker_idx: Option<usize>,
}

#[problem_fact]
struct Worker {
    #[planning_id]
    id: usize,
}

#[planning_solution]
struct Plan {
    #[planning_entity_collection]
    tasks: Vec<Task>,
    #[problem_fact_collection]
    workers: Vec<Worker>,
    #[planning_score]
    score: Option<HardSoftScore>,
}

fn main() {
    let _ = Plan {
        tasks: Vec::new(),
        workers: Vec::new(),
        score: None,
    };
}