about summary refs log tree commit diff
path: root/IrcTokens/Line.cs
diff options
context:
space:
mode:
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);