cargo-msrv 0.19.1

Find your minimum supported Rust version (MSRV)!
Documentation
use crate::context::ListContext;
use crate::dependency_graph::resolver::{CargoMetadataResolver, DependencyResolver};
use crate::error::TResult;
use crate::reporter::event::ListResult;
use crate::reporter::Reporter;
use crate::SubCommand;

#[derive(Default)]
pub struct List;

impl SubCommand for List {
    type Context = ListContext;
    type Output = ();

    fn run(&self, ctx: &Self::Context, reporter: &impl Reporter) -> TResult<Self::Output> {
        list_msrv(ctx, reporter)
    }
}

fn list_msrv(ctx: &ListContext, reporter: &impl Reporter) -> TResult<()> {
    let resolver = CargoMetadataResolver::from_manifest_path(&ctx.environment.manifest());
    let graph = resolver.resolve()?;
    let variant = ctx.variant;

    reporter.report_event(ListResult::new(variant, graph))?;

    Ok(())
}