From 6a3bfd314d87bed96611d24440b0961a06bf7e91 Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Mon, 20 Apr 2020 17:24:59 -0400 Subject: stateful in progress --- IrcTokens/StatefulDecoder.cs | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 IrcTokens/StatefulDecoder.cs (limited to 'IrcTokens/StatefulDecoder.cs') diff --git a/IrcTokens/StatefulDecoder.cs b/IrcTokens/StatefulDecoder.cs new file mode 100644 index 0000000..65dd3de --- /dev/null +++ b/IrcTokens/StatefulDecoder.cs @@ -0,0 +1,33 @@ +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace IrcTokens +{ + public class StatefulDecoder + { + private string _buffer; + public EncodingInfo Encoding { get; set; } + public EncodingInfo Fallback { get; set; } + + public string Pending => _buffer; + + public void Clear() + { + _buffer = ""; + } + + public List Push(string data) + { + if (string.IsNullOrEmpty(data)) + return null; + + _buffer += data; + return _buffer + .Split('\n') + .Select(l => l.TrimEnd('\r')) + .Select(l => new Line(l)) + .ToList(); + } + } +} -- cgit 1.4.1