#ifndef ROTAGEN_H #define ROTAGEN_H #include #define MAX_JOBS 8 enum constraint_type { JOB_EXEMPTION_CONSTRAINT, SLOT_EXEMPTION_CONSTRAINT, }; struct constraint { int person; enum constraint_type type; union { int job; /* Job constraints */ int slot; /* Slot constraints */ } object; }; struct allocation { int person; int job; int slot; }; struct slot_result { struct allocation allocations[MAX_JOBS]; }; #endif