Mercurial > gemma
view pkg/misc/encode.go @ 854:83c271cb2344
Reverted fcb38cedc680 (More tightened color model.)
The get request did no longer work:
HTTP/1.1 500 Internal Server Error
Content-Type: text/plain; charset=utf-8
X-Content-Type-Options: nosniff
Date: Fri, 28 Sep 2018 11:47:14 GMT
Content-Length: 65
error: sql: Scan error on column index 3: Unexpected type string
author | Sascha Wilde <wilde@intevation.de> |
---|---|
date | Fri, 28 Sep 2018 13:54:57 +0200 |
parents | f827dc4f3e95 |
children | a244b18cb916 |
line wrap: on
line source
package misc import ( "encoding/binary" "io" ) type BinReader struct { io.Reader Err error } func (r *BinReader) Read(buf []byte) (int, error) { if r.Err != nil { return 0, r.Err } var n int n, r.Err = r.Read(buf) return n, r.Err } func (r *BinReader) ReadBin(x interface{}) { if r.Err == nil { r.Err = binary.Read(r.Reader, binary.BigEndian, x) } } func (r *BinReader) ReadString(s *string) { if r.Err != nil { return } var l uint32 if r.Err = binary.Read(r.Reader, binary.BigEndian, &l); r.Err != nil { return } b := make([]byte, l) if r.Err = binary.Read(r.Reader, binary.BigEndian, b); r.Err != nil { return } *s = string(b) } type BinWriter struct { io.Writer Err error } func (w *BinWriter) Write(buf []byte) (int, error) { if w.Err != nil { return 0, w.Err } var n int n, w.Err = w.Writer.Write(buf) return n, w.Err } func (w *BinWriter) WriteBin(x interface{}) { if w.Err == nil { w.Err = binary.Write(w.Writer, binary.BigEndian, x) } } func (w *BinWriter) WriteString(s string) { if w.Err == nil { w.Err = binary.Write(w.Writer, binary.BigEndian, uint32(len(s))) } if w.Err == nil { w.Err = binary.Write(w.Writer, binary.BigEndian, []byte(s)) } }