Increase library read buffer size.
[lightning.git] / gob.go
1 package main
2
3 import (
4         "bufio"
5         "encoding/gob"
6         "io"
7         _ "net/http/pprof"
8
9         "golang.org/x/crypto/blake2b"
10 )
11
12 type CompactGenome struct {
13         Name     string
14         Variants []tileVariantID
15 }
16
17 type TileVariant struct {
18         Tag      tagID
19         Blake2b  [blake2b.Size256]byte
20         Sequence []byte
21 }
22
23 type LibraryEntry struct {
24         TagSet         [][]byte
25         CompactGenomes []CompactGenome
26         TileVariants   []TileVariant
27 }
28
29 func ReadCompactGenomes(rdr io.Reader) ([]CompactGenome, error) {
30         dec := gob.NewDecoder(bufio.NewReaderSize(rdr, 1<<26))
31         var ret []CompactGenome
32         for {
33                 var ent LibraryEntry
34                 err := dec.Decode(&ent)
35                 if err == io.EOF {
36                         return ret, nil
37                 } else if err != nil {
38                         return nil, err
39                 }
40                 ret = append(ret, ent.CompactGenomes...)
41         }
42 }