Overview
Comment: | [fibonacci] renamed Writer->Encoder, Reader->Decoder. [mtf] moved package mtf to encoding\mtf |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
cb736e7ad34d3611e2e73ff5ea54e76c |
User & Date: | spaskalev on 2015-01-01 15:19:21 |
Other Links: | manifest | tags |
Context
2015-01-02
| ||
14:35 | Minor optimizations to fibonacci.Encoder check-in: 98661a7373 user: spaskalev tags: trunk | |
2015-01-01
| ||
15:19 | [fibonacci] renamed Writer->Encoder, Reader->Decoder. [mtf] moved package mtf to encoding\mtf check-in: cb736e7ad3 user: spaskalev tags: trunk | |
15:12 | Use a common fibonacci number source for each encoder and decoder. Dropped the two-bytes buffer from the encoder struct. check-in: f1a8d5baa9 user: spaskalev tags: trunk | |
Changes
Modified src/0dev.org/commands/mtf/main.go from [b672c1daee] to [8212c2eba2].
1 2 3 4 | package main import ( iou "0dev.org/ioutil" | > < | 1 2 3 4 5 6 7 8 9 10 11 12 | package main import ( mtf "0dev.org/encoding/mtf" iou "0dev.org/ioutil" "fmt" "io" "os" ) func main() { var code int |
︙ | ︙ |
Modified src/0dev.org/encoding/fibonacci/fib.go from [5685c81b13] to [3231551b1f].
︙ | ︙ | |||
11 12 13 14 15 16 17 18 19 20 21 22 23 24 | // 0 - 11, 1 - 110, 2 - 1100, 3 - 1101, 4 - 11000 package fibonacci import ( "io" ) type Numbers []uint64 var ( // Used for encoding and decoding byte values bytesCodec = New(14) ) | > | 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | // 0 - 11, 1 - 110, 2 - 1100, 3 - 1101, 4 - 11000 package fibonacci 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) ) |
︙ | ︙ | |||
75 76 77 78 79 80 81 | value >>= 1 length++ } return result + f[length] - 1, length + 1 } | > | > | 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | value >>= 1 length++ } return result + f[length] - 1, length + 1 } // Returns a fibonacci encoder over the provided io.Writer func Encoder(target io.Writer) io.Writer { var enc encoder enc.target = target return &enc } type encoder struct { target io.Writer remaining byte length byte } // Implements io.Writer func (e *encoder) Write(input []byte) (int, error) { var ( total int err error ) // Flush on a nil slice |
︙ | ︙ | |||
151 152 153 154 155 156 157 | // Account for the processed input byte total++ } return total, err } | > | > | 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 | // Account for the processed input byte total++ } return total, err } // Returns a fibonacci decoder over the provided io.Reader func Decoder(source io.Reader) io.Reader { var dec decoder dec.source = source return &dec } type decoder struct { source io.Reader buffer uint64 at byte } // Implements io.Reader func (d *decoder) Read(output []byte) (int, error) { var ( total int err error ) start: |
︙ | ︙ |
Modified src/0dev.org/encoding/fibonacci/fib_test.go from [33c293fd3b] to [7b29d51e21].
︙ | ︙ | |||
36 37 38 39 40 41 42 | } } } func TestWriterReader(t *testing.T) { var ( buf bytes.Buffer | | | 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | } } } func TestWriterReader(t *testing.T) { var ( buf bytes.Buffer w io.Writer = Encoder(&buf) input []byte = make([]byte, 256) fib Numbers = New(16) ) for i := uint64(0); i < 256; i++ { input[i] = byte(i) } |
︙ | ︙ | |||
79 80 81 82 83 84 85 | t.Fatal("Unexpected location for", i, "value", vs) } output = output[len(vs):] } var ( in *bytes.Reader = bytes.NewReader(buf.Bytes()) | | | 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | t.Fatal("Unexpected location for", i, "value", vs) } output = output[len(vs):] } var ( in *bytes.Reader = bytes.NewReader(buf.Bytes()) r io.Reader = Decoder(in) out bytes.Buffer ) io.Copy(&out, r) decoded := out.Bytes() delta := diff.Diff(diff.D{Len1: len(decoded), Len2: len(input), EqualFunc: func(i, j int) bool { return decoded[i] == input[j] |
︙ | ︙ |
Name change from src/0dev.org/mtf/mtf.go to src/0dev.org/encoding/mtf/mtf.go.
︙ | ︙ |
Name change from src/0dev.org/mtf/mtf_test.go to src/0dev.org/encoding/mtf/mtf_test.go.
︙ | ︙ |