summaryrefslogtreecommitdiff
path: root/ez.go
diff options
context:
space:
mode:
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
+}