1#[must_use]
9pub fn base_name(s: &str) -> &str {
10 s.rfind(").").map_or(s, |i| &s[i + 2..])
11}
12
13#[cfg(test)]
14mod tests {
15 use super::*;
16
17 #[test]
18 fn strips_pointer_receiver() {
19 assert_eq!(
20 base_name("(*knowledgeService).CreateKnowledgeFromFile"),
21 "CreateKnowledgeFromFile"
22 );
23 }
24
25 #[test]
26 fn strips_value_receiver() {
27 assert_eq!(base_name("(userRepo).Save"), "Save");
28 }
29
30 #[test]
31 fn passthrough_no_receiver() {
32 assert_eq!(base_name("ProcessUsers"), "ProcessUsers");
33 }
34
35 #[test]
36 fn passthrough_empty() {
37 assert_eq!(base_name(""), "");
38 }
39}