about summary refs log tree commit diff
path: root/IrcTokens/Line.cs
diff options
context:
space:
mode:
authorBen Harris <ben@tilde.team>2020-04-22 11:42:09 -0400
committerBen Harris <ben@tilde.team>2020-04-22 11:42:09 -0400
commitca1518a9705ac289875c65c396a2ef7d219492d5 (patch)
tree1970852a07d58ae7c73fe869e91a425f265c641a /IrcTokens/Line.cs
parent06a9882f65a6c2f7e72cc30340c28cf6bb76bcd1 (diff)
Add sample project
Diffstat (limited to 'IrcTokens/Line.cs')
-rw-r--r--IrcTokens/Line.cs17
1 files changed, 15 insertions, 2 deletions
diff --git a/IrcTokens/Line.cs b/IrcTokens/Line.cs
index 27d9c0d..9056097 100644
--- a/IrcTokens/Line.cs
+++ b/IrcTokens/Line.cs
@@ -18,8 +18,21 @@ namespace IrcTokens
         private Hostmask _hostmask;
         private readonly string _rawLine;
 
-        public override string ToString() =>
-            $"Line(source={Source}, command={Command}, tags={string.Join(";", Tags.Select(kvp => $"{kvp.Key}={kvp.Value}"))}, params={string.Join(",", Params)})";
+        public override string ToString()
+        {
+            var vars = new List<string>();
+
+            if (Command != null)
+                vars.Add($"command={Command}");
+            if (Source != null)
+                vars.Add($"source={Source}");
+            if (Params != null && Params.Any())
+                vars.Add($"params=[{string.Join(",", Params)}]");
+            if (Tags != null && Tags.Any())
+                vars.Add($"tags=[{string.Join(";", Tags.Select(kvp => $"{kvp.Key}={kvp.Value}"))}]");
+
+            return $"Line({string.Join(", ", vars)})";
+        }
 
         public override int GetHashCode() => Format().GetHashCode(StringComparison.Ordinal);