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

Function extract_items_into_context

crates/derive-impl/src/pyclass.rs:76–101  ·  view source on GitHub ↗
(
    context: &mut ImplContext,
    items: impl Iterator<Item = &'a mut Item>,
)

Source from the content-addressed store, hash-verified

74}
75
76fn extract_items_into_context<'a, Item>(
77 context: &mut ImplContext,
78 items: impl Iterator<Item = &'a mut Item>,
79) where
80 Item: ItemLike + ToTokens + GetIdent + syn_ext::ext::ItemAttrExt + 'a,
81{
82 for item in items {
83 let r = item.try_split_attr_mut(|attrs, item| {
84 let (py_items, cfgs) = attrs_to_content_items(attrs, impl_item_new::<Item>)?;
85 for py_item in py_items.iter().rev() {
86 let r = py_item.gen_impl_item(ImplItemArgs::<Item> {
87 item,
88 attrs,
89 context,
90 cfgs: cfgs.as_slice(),
91 });
92 context.errors.ok_or_push(r);
93 }
94 Ok(())
95 });
96 context.errors.ok_or_push(r);
97 }
98 context.errors.ok_or_push(context.method_items.validate());
99 context.errors.ok_or_push(context.getset_items.validate());
100 context.errors.ok_or_push(context.member_items.validate());
101}
102
103pub(crate) fn impl_pyclass_impl(attr: PunctuatedNestedMeta, item: Item) -> Result<TokenStream> {
104 let mut context = ImplContext::default();

Callers 1

impl_pyclass_implFunction · 0.85

Calls 7

attrs_to_content_itemsFunction · 0.85
gen_impl_itemMethod · 0.80
ok_or_pushMethod · 0.80
revMethod · 0.45
iterMethod · 0.45
as_sliceMethod · 0.45
validateMethod · 0.45

Tested by

no test coverage detected