cargo-mend 0.16.1

Opinionated visibility auditing for Rust crates and workspaces
mod fix;
mod raw;
mod target;

use std::path::PathBuf;

pub(crate) use fix::FixCli;
pub(crate) use fix::FixExecution;
pub(crate) use fix::FixRequest;
pub(crate) use target::CargoCheckCli;
pub(crate) use target::TargetSelection;
pub(crate) use target::WorkspaceSelection;

use crate::reporting::OutputFormat;

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub(crate) enum BuildInfoMode {
    Run,
    Show,
}

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub(crate) enum WarningPolicy {
    Allow,
    Fail,
}

#[derive(Debug)]
pub(crate) struct Cli {
    pub build_info: BuildInfoMode,

    pub output_format: OutputFormat,

    pub warning_policy: WarningPolicy,

    pub cargo: CargoCheckCli,

    pub manifest: ManifestCli,

    pub fix: FixCli,
}

pub(crate) fn parse(after_help: &str) -> Cli { raw::parse(after_help) }

#[derive(Debug, Clone, Default, PartialEq, Eq)]
pub(crate) struct ManifestCli {
    pub config: Option<PathBuf>,
}