diff options
Diffstat (limited to 'IrcTokens/StatefulEncoder.cs')
-rw-r--r-- | IrcTokens/StatefulEncoder.cs | 14 |
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; } } } |