aboutsummaryrefslogtreecommitdiff
path: root/mingling_cli/src/metadata/cmd_metadata.rs
blob: 3ee9f093bcf7627273ae45bdfb563cc9e83632ee (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
use cargo_metadata::Metadata;
use mingling::{
    LazyRes,
    macros::{chain, dispatcher, metadata, pack},
    metadata::Description,
};

use crate::metadata::setup::ResMetadata;

dispatcher!("metadata");

#[metadata(EntryMetadata)]
pub fn desc_metadata() -> Description {
    "Check your workspace metadata using 'cargo metadata'"
        .to_string()
        .into()
}

pack!(ResultMetadata = ResMetadata);

#[chain]
pub fn handle_metadata(_: EntryMetadata, metadata: &mut LazyRes<ResMetadata>) -> Metadata {
    let metadata = metadata.get_ref().clone();
    metadata.data().clone()
}