Skip to main content

execute

Function execute 

Source
pub fn execute(
    workspace: &Workspace,
    graph: &TaskGraph,
    bearing_project: Option<&ProjectName>,
    spec: &QuerySpec,
) -> Result<Vec<TaskId>, QueryError>
Expand description

Run the engine against a workspace and return the matching task identities in canonical (ProjectName, TaskName) order.

Evaluates every filter family of QRY-003..QRY-005 against the candidate set determined by bearing_project per QRY’s candidate-set vocabulary. Filters compose by intersection per QRY-006.

graph MUST be the validated hard-edge graph (DAG-008) of workspace; the engine consults it only to evaluate the four QRY-004 relational filters. Callers without any relational filter in spec MAY pass &TaskGraph::default() or use execute_non_relational.

bearing_project is the cwd-derived bearing project name per EXEC-022. It restricts the candidate set per QRY vocabulary and supplies the canonicalisation root for any project-relative --inputs / --outputs atoms.

§Errors

Returns QueryError when the bearing project does not exist, when a project-relative atom is supplied without a bearing project, or when the glob-glob intersection routine fails.