From da3f56d48f9c349b29e1d462b2a535b1a89c5e45 Mon Sep 17 00:00:00 2001 From: HampusM Date: Sun, 21 Aug 2022 19:42:12 +0200 Subject: refactor: improve private method names & clean up InjectableImpl --- macros/src/util/item_impl.rs | 20 ++++++++++++++++++++ macros/src/util/mod.rs | 1 + 2 files changed, 21 insertions(+) create mode 100644 macros/src/util/item_impl.rs (limited to 'macros/src/util') diff --git a/macros/src/util/item_impl.rs b/macros/src/util/item_impl.rs new file mode 100644 index 0000000..271ae2f --- /dev/null +++ b/macros/src/util/item_impl.rs @@ -0,0 +1,20 @@ +use syn::{ImplItem, ImplItemMethod, ItemImpl}; + +pub fn find_impl_method_by_name<'item_impl>( + item_impl: &'item_impl ItemImpl, + method_name: &'static str, +) -> Option<&'item_impl ImplItemMethod> +{ + let impl_items = &item_impl.items; + + impl_items.iter().find_map(|impl_item| match impl_item { + ImplItem::Method(method_item) => { + if method_item.sig.ident == method_name { + Some(method_item) + } else { + None + } + } + &_ => None, + }) +} diff --git a/macros/src/util/mod.rs b/macros/src/util/mod.rs index fe2fbbc..fc7b2c6 100644 --- a/macros/src/util/mod.rs +++ b/macros/src/util/mod.rs @@ -1 +1,2 @@ +pub mod item_impl; pub mod iterator_ext; -- cgit v1.2.3-18-g5258