aboutsummaryrefslogtreecommitdiff
path: root/mingling_cli/src/metadata/cmd_metadata.rs
blob: 7f8d4ad6bc08d420373e8c4402e5a8a9f83ed11c (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
26
use cargo_metadata::Metadata;
use mingling::{
    Grouped, LazyRes, Wrap,
    macros::{chain, dispatcher, metadata},
    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()
}

#[derive(Grouped, Wrap)]
pub struct ResultMetadata(ResMetadata);

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