From b3aa441c2d61ba324396deaf70f2c5818fd3f528 Mon Sep 17 00:00:00 2001 From: Lakelezz <12222135+Lakelezz@users.noreply.github.com> Date: Sat, 7 Oct 2017 14:34:39 +0200 Subject: Help-commands filtering and Member-prefix-search (#182) --- src/model/guild/mod.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/model') diff --git a/src/model/guild/mod.rs b/src/model/guild/mod.rs index 8173a04..e6023cb 100644 --- a/src/model/guild/mod.rs +++ b/src/model/guild/mod.rs @@ -741,6 +741,24 @@ impl Guild { }) } + /// Retrieves all [`Member`] that start with a given `String`. + /// + /// If the prefix is "zey", following results are possible: + /// - "zey", "zeyla", "zey mei" + /// But the following are not because case-sensitivity: + /// - "Zey", "ZEYla", "zeY mei" + /// + /// [`Member`]: struct.Member.html + pub fn members_starting_with(&self, prefix: &str) -> Vec<&Member> { + self.members + .values() + .filter(|member| + member.user.read().unwrap().name.starts_with(prefix) + || member.nick.as_ref() + .map_or(false, |nick| + nick.starts_with(prefix))).collect() + } + /// Moves a member to a specific voice channel. /// /// Requires the [Move Members] permission. -- cgit v1.2.3