MCPcopy Index your code
hub / github.com/RustPython/RustPython / pyclass_ident_and_attrs

Function pyclass_ident_and_attrs

crates/derive-impl/src/util.rs:607–631  ·  view source on GitHub ↗
(item: &syn::Item)

Source from the content-addressed store, hash-verified

605}
606
607pub(crate) fn pyclass_ident_and_attrs(item: &syn::Item) -> Result<(&Ident, &[Attribute])> {
608 use syn::Item::*;
609 Ok(match item {
610 Struct(syn::ItemStruct { ident, attrs, .. }) => (ident, attrs),
611 Enum(syn::ItemEnum { ident, attrs, .. }) => (ident, attrs),
612 Use(item_use) => (
613 iter_use_idents(item_use, |ident, _is_unique| Ok(ident))?
614 .into_iter()
615 .exactly_one()
616 .map_err(|_| {
617 err_span!(
618 item_use,
619 "#[pyclass] can only be on single name use statement",
620 )
621 })?,
622 &item_use.attrs,
623 ),
624 other => {
625 bail_span!(
626 other,
627 "#[pyclass] can only be on a struct, enum or use declaration",
628 )
629 }
630 })
631}
632
633pub(crate) fn pyexception_ident_and_attrs(item: &syn::Item) -> Result<(&Ident, &[Attribute])> {
634 use syn::Item::*;

Callers 2

impl_pyclassFunction · 0.85
gen_module_itemMethod · 0.85

Calls 2

iter_use_identsFunction · 0.85
into_iterMethod · 0.45

Tested by

no test coverage detected