fn resolve_component_type(segment: &'a PathSegment) -> ComponentPart<'a> {
        if segment.arguments.is_empty() {
            abort!(
                segment.ident,
                "expected at least one angle bracket argument but was 0"
            );
        };

        let mut generic_component_type = ComponentPart::convert(&segment.ident, segment);

        generic_component_type.child = Some(Rc::new(ComponentPart::from_type(
            match &segment.arguments {
                PathArguments::AngleBracketed(angle_bracketed_args) => {
                    ComponentPart::get_generic_arg_type(0, angle_bracketed_args)
                }
                _ => abort!(
                    segment.ident,
                    "unexpected path argument, expected angle bracketed path argument"
                ),
            },
        )));

        generic_component_type
    }
// Only when type is a generic type we get to this function.
Only when type is a generic type we get to this function.
Only when type is a generic type we get to this function .
fn resolve_component_type(segment: &'a PathSegment) -> ComponentPart<'a> {
        if segment.arguments.is_empty() {
            abort!(
                segment.ident,
                "expected at least one angle bracket argument but was 0"
            );
        };
        let mut generic_component_type = ComponentPart::convert(&segment.ident, segment);
        generic_component_type.child = Some(Rc::new(ComponentPart::from_type(
            match &segment.arguments {
                PathArguments::AngleBracketed(angle_bracketed_args) => {
                    ComponentPart::get_generic_arg_type(0, angle_bracketed_args)
                }
                _ => abort!(
                    segment.ident,
                    "unexpected path argument, expected angle bracketed path argument"
                ),
            },
        )));
        generic_component_type
    }
fn resolve_component_type ( segment : & ' a PathSegment ) -> ComponentPart < ' a > { if segment . arguments . is_empty ( ) { abort ! ( segment ident " " ) ; } ; let mut generic_component_type = ComponentPart :: convert ( & segment . ident , segment ) ; generic_component_type . child = Some ( Rc :: new ( ComponentPart :: from_type ( match & segment . arguments { PathArguments :: AngleBracketed ( angle_bracketed_args ) => { ComponentPart :: get_generic_arg_type ( 0 , angle_bracketed_args ) } _ => abort ! ( segment ident " " ) , } , ) ) ) ; generic_component_type }
Only when type is a generic type we get to this function.
Only when type is a generic type we get to this function .
segment
&'a PathSegment