From a48008d553925419773e3c3a2c67ec51eb67d3ab Mon Sep 17 00:00:00 2001
From: Janne Koschinski <janne@kuschku.de>
Date: Sat, 26 May 2018 00:43:57 +0200
Subject: [PATCH] Improve performance and clarity of hostmask splitter

---
 .../libquassel/util/irc/HostmaskHelper.kt     | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

diff --git a/lib/src/main/java/de/kuschku/libquassel/util/irc/HostmaskHelper.kt b/lib/src/main/java/de/kuschku/libquassel/util/irc/HostmaskHelper.kt
index 1b6c3dbd2..c4fff7431 100644
--- a/lib/src/main/java/de/kuschku/libquassel/util/irc/HostmaskHelper.kt
+++ b/lib/src/main/java/de/kuschku/libquassel/util/irc/HostmaskHelper.kt
@@ -20,20 +20,15 @@
 package de.kuschku.libquassel.util.irc
 
 object HostmaskHelper {
-  fun nick(mask: String): String {
-    val (nick, _, _) = split(mask)
-    return nick
-  }
+  fun nick(mask: String) = mask
+    .substringBefore('!', missingDelimiterValue = mask)
 
-  fun user(mask: String): String {
-    val (_, user, _) = split(mask)
-    return user
-  }
+  fun user(mask: String) = mask
+    .substringBeforeLast('@', missingDelimiterValue = mask)
+    .substringAfter('!', missingDelimiterValue = "")
 
-  fun host(mask: String): String {
-    val (_, _, host) = split(mask)
-    return host
-  }
+  fun host(mask: String) = mask
+    .substringAfterLast('@', missingDelimiterValue = "")
 
   fun split(mask: String): Triple<String, String, String> {
     val userPartHostSplit = mask.split("@", limit = 2)
-- 
GitLab