about summary refs log tree commit diff
path: root/IrcTokens/StatefulEncoder.cs
diff options
context:
space:
mode:
authorBen Harris <ben@tilde.team>2020-04-28 21:07:23 -0400
committerBen Harris <ben@tilde.team>2020-04-28 21:07:23 -0400
commit8403fd8d0fb0ac3c69e90f530fda331ea2ab639b (patch)
tree6504febcc485c6335b8cf5e333fa0437229b0704 /IrcTokens/StatefulEncoder.cs
parent6a0b8dc22fc86a5de37278231f3f8418afc9b836 (diff)
Fix example
Diffstat (limited to 'IrcTokens/StatefulEncoder.cs')
-rw-r--r--IrcTokens/StatefulEncoder.cs14
1 files changed, 7 insertions, 7 deletions
diff --git a/IrcTokens/StatefulEncoder.cs b/IrcTokens/StatefulEncoder.cs
index b486736..57f1b96 100644
--- a/IrcTokens/StatefulEncoder.cs
+++ b/IrcTokens/StatefulEncoder.cs
@@ -7,7 +7,7 @@ namespace IrcTokens
 {
     public class StatefulEncoder
     {
-        private Queue<Line> _bufferedLines;
+        private List<Line> _bufferedLines;
         private Encoding _encoding;
 
         public StatefulEncoder()
@@ -45,7 +45,7 @@ namespace IrcTokens
         public void Clear()
         {
             PendingBytes   = Array.Empty<byte>();
-            _bufferedLines = new Queue<Line>();
+            _bufferedLines = new List<Line>();
         }
 
         public void Push(Line line)
@@ -53,7 +53,7 @@ namespace IrcTokens
             if (line == null) throw new ArgumentNullException(nameof(line));
 
             PendingBytes = PendingBytes.Concat(Encoding.GetBytes($"{line.Format()}\r\n")).ToArray();
-            _bufferedLines.Enqueue(line);
+            _bufferedLines.Add(line);
         }
 
         public List<Line> Pop(int byteCount)
@@ -61,11 +61,11 @@ namespace IrcTokens
             var sent = PendingBytes.Take(byteCount).Count(c => c == '\n');
 
             PendingBytes   = PendingBytes.Skip(byteCount).ToArray();
-            _bufferedLines = new Queue<Line>(_bufferedLines.Take(sent));
+            
+            var sentLines = _bufferedLines.Take(sent).ToList();
+            _bufferedLines = _bufferedLines.Skip(sent).ToList();
 
-            return Enumerable.Range(0, sent)
-                .Select(_ => _bufferedLines.Dequeue())
-                .ToList();
+            return sentLines;
         }
     }
 }