diff options
author | Luke Shumaker <lukeshu@lukeshu.com> | 2017-11-22 22:04:14 -0500 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2017-11-22 22:13:31 -0500 |
commit | 3efa1fc8a98d2d90c204c7bd5a0e2519e1ac7745 (patch) | |
tree | fb78c0b98d24be8d1985af1187f0202c052363d1 /ez.go | |
parent | f13250e6a926640c4d0ee858f84fcf8036d612aa (diff) |
split the parser up, and have read methods like write emethods
Diffstat (limited to 'ez.go')
-rw-r--r-- | ez.go | 65 |
1 files changed, 65 insertions, 0 deletions
@@ -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 +} |