diff pkg/misc/encode.go @ 1371:5b9b8eabcd01

Backend: Added the API documentation of the misc package.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Tue, 27 Nov 2018 12:49:53 +0100
parents a244b18cb916
children
line wrap: on
line diff
--- a/pkg/misc/encode.go	Tue Nov 27 11:09:03 2018 +0100
+++ b/pkg/misc/encode.go	Tue Nov 27 12:49:53 2018 +0100
@@ -18,11 +18,15 @@
 	"io"
 )
 
+// BinReader is a io.Reader to support an error tolerant way
+// to read big endian encoded binary data.
 type BinReader struct {
 	io.Reader
+	// Err is the first encountered error.
 	Err error
 }
 
+// Read implements io.Reader without any endian awareness.
 func (r *BinReader) Read(buf []byte) (int, error) {
 	if r.Err != nil {
 		return 0, r.Err
@@ -32,12 +36,18 @@
 	return n, r.Err
 }
 
+// ReadBin reads big endian encodes binary data into x.
+// If an error was encountered before no data is read.
 func (r *BinReader) ReadBin(x interface{}) {
 	if r.Err == nil {
 		r.Err = binary.Read(r.Reader, binary.BigEndian, x)
 	}
 }
 
+// ReadString reads a big endian encoded string from
+// the underlying io.Reader into *s.
+// If an error was encountered before no data is read
+// and *s is unmodified.
 func (r *BinReader) ReadString(s *string) {
 	if r.Err != nil {
 		return
@@ -53,11 +63,15 @@
 	*s = string(b)
 }
 
+// BinWriter is a io.Writer to support an error tolerant way
+// to write big endian encoded binary data.
 type BinWriter struct {
 	io.Writer
+	// Err is the first encountered error.
 	Err error
 }
 
+// Write implements io.Writer without any endian awareness.
 func (w *BinWriter) Write(buf []byte) (int, error) {
 	if w.Err != nil {
 		return 0, w.Err
@@ -67,12 +81,17 @@
 	return n, w.Err
 }
 
+// WriteBin writes x big endian encoded to the underlying io.Writer.
+// If an error was encountered before no data is written.
 func (w *BinWriter) WriteBin(x interface{}) {
 	if w.Err == nil {
 		w.Err = binary.Write(w.Writer, binary.BigEndian, x)
 	}
 }
 
+// WriteString writes a big endian encoded string to
+// the underlying io.Writer.
+// If an error was encountered before no data is written.
 func (w *BinWriter) WriteString(s string) {
 	if w.Err == nil {
 		w.Err = binary.Write(w.Writer, binary.BigEndian, uint32(len(s)))