summaryrefslogtreecommitdiff
path: root/ez.go
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2017-11-22 22:04:14 -0500
committerLuke Shumaker <lukeshu@lukeshu.com>2017-11-22 22:13:31 -0500
commit3efa1fc8a98d2d90c204c7bd5a0e2519e1ac7745 (patch)
treefb78c0b98d24be8d1985af1187f0202c052363d1 /ez.go
parentf13250e6a926640c4d0ee858f84fcf8036d612aa (diff)
split the parser up, and have read methods like write emethods
Diffstat (limited to 'ez.go')
-rw-r--r--ez.go65
1 files changed, 65 insertions, 0 deletions
diff --git a/ez.go b/ez.go
new file mode 100644
index 0000000..4c220b5
--- /dev/null
+++ b/ez.go
@@ -0,0 +1,65 @@
+package libfastimport
+
+import (
+ "strconv"
+
+ "git.lukeshu.com/go/libfastimport/textproto"
+)
+
+type ezfiw struct {
+ fiw *textproto.FIWriter
+ err error
+}
+
+func (e *ezfiw) WriteLine(a ...interface{}) {
+ if e.err == nil {
+ e.err = e.fiw.WriteLine(a...)
+ }
+}
+
+func (e *ezfiw) WriteData(data string) {
+ if e.err == nil {
+ e.err = e.fiw.WriteData(data)
+ }
+}
+
+func (e *ezfiw) WriteMark(idnum int) {
+ if e.err == nil {
+ e.err = e.fiw.WriteLine("mark", ":"+strconv.Itoa(idnum))
+ }
+}
+
+type ezfir struct {
+ fir fiReader
+ err error
+}
+
+func (e *ezfir) Defer() error {
+ if r := recover(); r != nil {
+ if e.err != nil {
+ return e.err
+ }
+ panic(r)
+ }
+ return nil
+}
+
+func (e *ezfir) Errcheck(err error) {
+ if err == nil {
+ return
+ }
+ e.err = err
+ panic("everything is fine")
+}
+
+func (e *ezfir) PeekLine() string {
+ line, err := e.fir.PeekLine()
+ e.Errcheck(err)
+ return line
+}
+
+func (e *ezfir) ReadLine() string {
+ line, err := e.fir.ReadLine()
+ e.Errcheck(err)
+ return line
+}