AnalyzeOptions#

Options for Project::analyze. They select the analytics that the returned ScheduleResult carries. AnalyzeOptions::default() requests no analytics.

Declaration#

#[derive(Clone, Debug, Default)]
pub struct AnalyzeOptions {
    pub analytics: AnalyticsOptions,
}

The field is public. Build the value with a struct literal or AnalyzeOptions::default().

Fields#

Field Type Default Description
analytics AnalyticsOptions no analytics Requests critical path and slack. Fills ScheduleResult::analytics.

analytics#

pub analytics: AnalyticsOptions

Turns on AnalyticsOptions::slack and AnalyticsOptions::critical_path. Check Analytics::status before reading the data.

Example#

use plen_core::{AnalyticsOptions, AnalyzeOptions, Project, ProjectData, SolveOptions};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut project = Project::default();
    project.solve(Some(ProjectData::default()), &SolveOptions::default())?;

    let options = AnalyzeOptions {
        analytics: AnalyticsOptions {
            critical_path: true,
            ..Default::default()
        },
    };

    let result = project.analyze(None, &options)?;
    if let Some(analytics) = &result.analytics {
        if let Some(critical) = &analytics.critical_path {
            println!("{} critical tasks", critical.tasks.len());
        }
    }
    Ok(())
}