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

Method getset_name

crates/derive-impl/src/pyclass.rs:1562–1603  ·  view source on GitHub ↗
(&self)

Source from the content-addressed store, hash-verified

1560
1561impl GetSetItemMeta {
1562 fn getset_name(&self) -> Result<(String, GetSetItemKind)> {
1563 let inner = self.inner();
1564 let kind = if inner._bool("setter")? {
1565 GetSetItemKind::Set
1566 } else {
1567 GetSetItemKind::Get
1568 };
1569 let name = inner._optional_str("name")?;
1570 let py_name = if let Some(name) = name {
1571 name
1572 } else {
1573 let sig_name = inner.item_name();
1574 let extract_prefix_name = |prefix, item_typ| {
1575 if let Some(name) = sig_name.strip_prefix(prefix) {
1576 if name.is_empty() {
1577 Err(err_span!(
1578 inner.meta_ident,
1579 r#"A #[{}({typ})] fn with a {prefix}* name must \
1580 have something after "{prefix}""#,
1581 inner.meta_name(),
1582 typ = item_typ,
1583 prefix = prefix
1584 ))
1585 } else {
1586 Ok(name.to_owned())
1587 }
1588 } else {
1589 Err(err_span!(
1590 inner.meta_ident,
1591 r#"A #[{}(setter)] fn must either have a `name` \
1592 parameter or a fn name along the lines of "set_*""#,
1593 inner.meta_name()
1594 ))
1595 }
1596 };
1597 match kind {
1598 GetSetItemKind::Get => sig_name,
1599 GetSetItemKind::Set => extract_prefix_name("set_", "setter")?,
1600 }
1601 };
1602 Ok((py_name, kind))
1603 }
1604}
1605
1606struct SlotItemMeta(ItemMetaInner);

Callers 1

gen_impl_itemMethod · 0.80

Calls 8

_boolMethod · 0.80
_optional_strMethod · 0.80
item_nameMethod · 0.80
strip_prefixMethod · 0.80
ErrClass · 0.50
innerMethod · 0.45
is_emptyMethod · 0.45
to_ownedMethod · 0.45

Tested by

no test coverage detected