about summary refs log tree commit diff
path: root/IrcTokens/StatefulDecoder.cs
diff options
context:
space:
mode:
authorBen Harris <ben@tilde.team>2020-04-28 00:35:52 -0400
committerBen Harris <ben@tilde.team>2020-04-28 00:35:52 -0400
commit80afa2c0aec37b7f98cc22615417c36672e695da (patch)
tree63ca3e309a5daa5093e54bdfdb493115c7a3d942 /IrcTokens/StatefulDecoder.cs
parent933a4f85604e21445c9bac8272d64cf3e6f65e00 (diff)
tidy up, work on stateful
Diffstat (limited to 'IrcTokens/StatefulDecoder.cs')
-rw-r--r--IrcTokens/StatefulDecoder.cs25
1 files changed, 8 insertions, 17 deletions
diff --git a/IrcTokens/StatefulDecoder.cs b/IrcTokens/StatefulDecoder.cs
index 47106d9..bdaf81d 100644
--- a/IrcTokens/StatefulDecoder.cs
+++ b/IrcTokens/StatefulDecoder.cs
@@ -11,17 +11,20 @@ namespace IrcTokens
         private Encoding _encoding;
         private Encoding _fallback;
 
+        public StatefulDecoder()
+        {
+            Clear();
+        }
+
         public Encoding Encoding
         {
             get => _encoding ?? Encoding.GetEncoding(Encoding.UTF8.CodePage, EncoderFallback.ExceptionFallback,
-                       DecoderFallback.ExceptionFallback);
+                DecoderFallback.ExceptionFallback);
             set
             {
                 if (value != null)
-                {
                     _encoding = Encoding.GetEncoding(value.CodePage, EncoderFallback.ExceptionFallback,
                         DecoderFallback.ReplacementFallback);
-                }
             }
         }
 
@@ -32,20 +35,13 @@ namespace IrcTokens
             set
             {
                 if (value != null)
-                {
                     _fallback = Encoding.GetEncoding(value.CodePage, EncoderFallback.ReplacementFallback,
                         DecoderFallback.ReplacementFallback);
-                }
             }
         }
 
         public string Pending => Encoding.GetString(_buffer);
 
-        public StatefulDecoder()
-        {
-            Clear();
-        }
-
         public void Clear()
         {
             _buffer = Array.Empty<byte>();
@@ -58,16 +54,13 @@ namespace IrcTokens
 
         public List<Line> Push(byte[] data)
         {
-            if (data == null || data.Length == 0)
-            {
-                return null;
-            }
+            if (data == null || data.Length == 0) return null;
 
             _buffer = _buffer.Concat(data).ToArray();
 
             // simulate string.Split('\n') before decoding
             var newLineIndices = _buffer.Select((b, i) => b == '\n' ? i : -1).Where(i => i != -1).ToArray();
-            var lines = new List<byte[]>();
+            var lines          = new List<byte[]>();
 
             for (int i = 0, currentIndex = 0; i < newLineIndices.Length; ++i)
             {
@@ -99,7 +92,6 @@ namespace IrcTokens
 
             var decodeLines = new List<string>();
             foreach (var line in listLines.Select(l => l.ToArray()))
-            {
                 try
                 {
                     decodeLines.Add(Encoding.GetString(line));
@@ -108,7 +100,6 @@ namespace IrcTokens
                 {
                     decodeLines.Add(Fallback.GetString(line));
                 }
-            }
 
             return decodeLines
                 .Select(l => new Line(l))