Skip to main content

plan

Function plan 

Source
pub fn plan(
    request: &PlanRequest,
    mode: &ModeResolution,
    states: &[AdvisorState],
) -> ReviewPlan
Expand description

Make the plan for one request under one mode, over the advisors’ states in preference order. Pure: the same inputs give the same plan, and every advisor not selected is in excluded with its reason.

use majordomus_cli::reasoning::availability::{ModeResolution, ReasoningMode};
use majordomus_cli::reasoning::policy::*;

let mode = ModeResolution { mode: ReasoningMode::Standard, source: "default".into() };
let request = PlanRequest { materiality: Materiality::High, ..Default::default() };
// No advisor at all: a plan, not an error.
let p = plan(&request, &mode, &[]);
assert_eq!(p.outcome, PlanOutcome::DecideLocally);
assert_eq!(p.budget, 2);
assert!(p.selected.is_empty());
assert!(!p.local_review.is_empty(), "the local path is spelled out");