1#![deny(missing_docs)]
10#![forbid(unsafe_code)]
11
12use std::{path::Path, process::Command};
13
14pub const CARGO_METADATA_ARGS: [&str; 5] =
16 ["metadata", "--format-version", "1", "--locked", "--no-deps"];
17
18pub fn cargo_metadata_command(root: &Path) -> Command {
20 let mut command = Command::new("cargo");
21 command.args(CARGO_METADATA_ARGS).current_dir(root);
22 command
23}
24
25mod base;
26mod check;
27mod classify;
28mod compare;
29mod execute;
30mod generate;
31mod runner;
32mod walk;
33pub use base::{
34 BaseDiffInputs, BaseError, BaseInputsError, BaseSchemasError, DefaultBase, GitToolError,
35 ResolvedBase, base_diff_inputs, base_diff_inputs_with_candidate, base_package_schemas,
36 resolve_base, resolve_default_base,
37};
38pub use check::{
39 CheckClassificationError, ClassifyStepError, DuplicatePackages, PackageSchemas, classify_step,
40};
41pub use classify::{ClassifyError, classify};
42pub use compare::{
43 CompareDifference, CompareStepError, DifferenceKind, compare_plans, compare_step,
44 composition_step,
45};
46pub use execute::{ExecuteError, ExecutePlans, Outcome, execute, execute_plans};
47pub use generate::{GenerationPlan, PlanError, ResolvedImport, plan};
48pub use runner::{
49 CapturedOutput, CommandRunner, CommandSpec, QualityCommand, SpawnError, ToolStep, clippy_spec,
50 fmt_packages, fmt_spec, lock_spec, quality_specs, run_clippy_step, run_command, run_fmt_step,
51 run_lock_step, run_quality_step, run_test_step, test_spec,
52};
53pub use walk::{WalkError, WalkedWorkspace, walk};