plen_core#

The plen-core crate schedules, edits, levels and scores projects. Every call is synchronous and CPU-only, with no I/O, no clock and no async runtime.

cargo add plen-core

Every public item is re-exported at the crate root, so the import path is plen_core::X. The folders below group items by concern. They aren't Rust module paths.

use plen_core::{Project, ProjectData, ProjectOptions, SolveOptions};

Feature flags#

Feature Effect
serde Serialize and Deserialize for result types, Id, DateTime, Patch<T>, Pause, PauseSource and the re-exported enums. Serialize only for SuggestResult and Slot. Input records and options have no Deserialize.
cargo add plen-core --features serde

Public modules outside the contract#

The modules calendar, datetime, graph, planner, resources and types are public for internal crates and tests. They aren't part of the API contract and aren't documented here. The enums re-exported from types at the crate root (Basis, CalendarMode, ConstraintType, GapBehavior, TimeUnit) are part of the contract and are listed under data.