pub struct Study { /* private fields */ }Expand description
Non-clone scheduler and display owner for one declared study plan.
Implementations§
Source§impl Study
impl Study
Sourcepub fn builder(record_path: impl Into<PathBuf>) -> StudyBuilder
pub fn builder(record_path: impl Into<PathBuf>) -> StudyBuilder
Starts an empty builder with the mandatory study-record destination.
Sourcepub fn phases(&self) -> &[Phase]
pub fn phases(&self) -> &[Phase]
Borrows all registered phases in deterministic declaration order.
Sourcepub fn plan(&self) -> StudyPlan
pub fn plan(&self) -> StudyPlan
Materializes a deterministic, side-effect-free description of every registered phase and task.
Sourcepub fn write_plan_json(&self, path: impl AsRef<Path>) -> Result<(), StudyError>
pub fn write_plan_json(&self, path: impl AsRef<Path>) -> Result<(), StudyError>
Writes the complete registered plan as pretty JSON without running it. An existing byte-identical file is accepted. Different existing content is rejected and never overwritten.
Sourcepub fn phase(&self, id: impl Into<PhaseId>) -> Option<&Phase>
pub fn phase(&self, id: impl Into<PhaseId>) -> Option<&Phase>
Borrows one registered phase by stable ID.
Sourcepub fn cancellation_token(&self) -> CancellationToken
pub fn cancellation_token(&self) -> CancellationToken
Returns a cheap token that can request or observe study cancellation.
Sourcepub fn unique_task_matching(
&self,
selector: &TaskSelector,
) -> Result<&Task, StudyError>
pub fn unique_task_matching( &self, selector: &TaskSelector, ) -> Result<&Task, StudyError>
Returns the unique task matching an exact partial selector.
Sourcepub fn run(self) -> Result<StudySummary, StudyError>
pub fn run(self) -> Result<StudySummary, StudyError>
Runs every registered phase in dependency order.
Sourcepub fn run_phases<I, P>(self, phases: I) -> Result<StudySummary, StudyError>
pub fn run_phases<I, P>(self, phases: I) -> Result<StudySummary, StudyError>
Runs exactly the selected phases; omitted unsatisfied dependencies fail.
Sourcepub fn run_phases_with_dependencies<I, P>(
self,
phases: I,
) -> Result<StudySummary, StudyError>
pub fn run_phases_with_dependencies<I, P>( self, phases: I, ) -> Result<StudySummary, StudyError>
Adds unsatisfied dependencies and runs the deterministic closure.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for Study
impl !Sync for Study
impl !UnwindSafe for Study
impl Freeze for Study
impl Send for Study
impl Unpin for Study
impl UnsafeUnpin for Study
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more