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

Method member_name

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

Source from the content-addressed store, hash-verified

1701
1702impl MemberItemMeta {
1703 fn member_name(&self) -> Result<(String, MemberItemKind)> {
1704 let inner = self.inner();
1705 let sig_name = inner.item_name();
1706 let extract_prefix_name = |prefix, item_typ| {
1707 if let Some(name) = sig_name.strip_prefix(prefix) {
1708 if name.is_empty() {
1709 Err(err_span!(
1710 inner.meta_ident,
1711 r#"A #[{}({typ})] fn with a {prefix}* name must \
1712 have something after "{prefix}""#,
1713 inner.meta_name(),
1714 typ = item_typ,
1715 prefix = prefix
1716 ))
1717 } else {
1718 Ok(name.to_owned())
1719 }
1720 } else {
1721 Err(err_span!(
1722 inner.meta_ident,
1723 r#"A #[{}(setter)] fn must either have a `name` \
1724 parameter or a fn name along the lines of "set_*""#,
1725 inner.meta_name()
1726 ))
1727 }
1728 };
1729 let kind = if inner._bool("setter")? {
1730 MemberItemKind::Set
1731 } else {
1732 MemberItemKind::Get
1733 };
1734 let name = match kind {
1735 MemberItemKind::Get => sig_name,
1736 MemberItemKind::Set => extract_prefix_name("set_", "setter")?,
1737 };
1738 Ok((name, kind))
1739 }
1740
1741 fn member_kind(&self) -> Result<Option<String>> {
1742 let inner = self.inner();

Callers 1

gen_impl_itemMethod · 0.80

Calls 7

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

Tested by

no test coverage detected