cgp-macro-lib 0.7.0

Context-generic programming core component macros implemented as a library.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use syn::ItemTrait;

use crate::cgp_fn::expand_use_type_attributes_on_trait;
use crate::derive_component::attributes::parse_component_attributes;

pub fn preprocess_consumer_trait(consumer_trait: &mut ItemTrait) -> syn::Result<()> {
    let attributes = parse_component_attributes(&mut consumer_trait.attrs)?;

    consumer_trait.supertraits.extend(attributes.extend.clone());

    if !attributes.use_type.is_empty() {
        *consumer_trait =
            expand_use_type_attributes_on_trait(consumer_trait, &attributes.use_type)?;
    }

    Ok(())
}