impl Parse for EnumDiscriminantsMeta { fn parse(input: ParseStream) -> syn::Result<Self> { if input.peek(kw::derive) { let kw = input.parse()?; let content;
parenthesized!(content in input); let paths = content.parse_terminated(Path::parse, Token![,])?;
Ok(EnumDiscriminantsMeta::Derive {
kw,
paths: paths.into_iter().collect(),
})
} elseif input.peek(kw::name) { let kw = input.parse()?; let content;
parenthesized!(content in input); let name = content.parse()?;
Ok(EnumDiscriminantsMeta::Name { kw, name })
} elseif input.peek(kw::vis) { let kw = input.parse()?; let content;
parenthesized!(content in input); let vis = content.parse()?;
Ok(EnumDiscriminantsMeta::Vis { kw, vis })
} else { let path = input.parse()?; let content;
parenthesized!(content in input); let nested = content.parse()?;
Ok(EnumDiscriminantsMeta::Other { path, nested })
}
}
}
pubtrait DeriveInputExt { /// Get all the strum metadata associated with an enum. fn get_metadata(&self) -> syn::Result<Vec<EnumMeta>>;
/// Get all the `strum_discriminants` metadata associated with an enum. fn get_discriminants_metadata(&self) -> syn::Result<Vec<EnumDiscriminantsMeta>>;
}
impl Parse for InnerVariantMeta { fn parse(input: ParseStream) -> syn::Result<Self> { let lookahead = input.lookahead1(); if lookahead.peek(kw::default_with) { let kw = input.parse()?; let _: Token![=] = input.parse()?; let value = input.parse()?;
Ok(InnerVariantMeta::DefaultWith { kw, value })
} else {
Err(lookahead.error())
}
}
}
pubtrait InnerVariantExt { /// Get all the metadata associated with an enum variant inner. fn get_named_metadata(&self) -> syn::Result<Vec<InnerVariantMeta>>;
}
impl InnerVariantExt for Field { fn get_named_metadata(&self) -> syn::Result<Vec<InnerVariantMeta>> { let result = get_metadata_inner("strum", &self.attrs)?; self.attrs
.iter()
.filter(|attr| attr.meta.path().is_ident("default_with"))
.try_fold(result, |vec, _attr| Ok(vec))
}
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.9 Sekunden
(vorverarbeitet am 2026-06-21)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.