@@ -13,10 +13,11 @@ import ( "io" ) +// Alias type with methods for encoding and decoding integers type Numbers []uint64 var ( // Used for encoding and decoding byte values bytesCodec = New(14) @@ -77,11 +78,12 @@ length++ } return result + f[length] - 1, length + 1 } -func Writer(target io.Writer) io.Writer { +// Returns a fibonacci encoder over the provided io.Writer +func Encoder(target io.Writer) io.Writer { var enc encoder enc.target = target return &enc } @@ -89,10 +91,11 @@ target io.Writer remaining byte length byte } +// Implements io.Writer func (e *encoder) Write(input []byte) (int, error) { var ( total int err error ) @@ -153,11 +156,12 @@ total++ } return total, err } -func Reader(source io.Reader) io.Reader { +// Returns a fibonacci decoder over the provided io.Reader +func Decoder(source io.Reader) io.Reader { var dec decoder dec.source = source return &dec } @@ -165,10 +169,11 @@ source io.Reader buffer uint64 at byte } +// Implements io.Reader func (d *decoder) Read(output []byte) (int, error) { var ( total int err error )