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