1 // Copyright (C) The Lightning Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
14 "github.com/klauspost/pgzip"
15 "golang.org/x/crypto/blake2b"
18 type CompactGenome struct {
20 Variants []tileVariantID
25 type CompactSequence struct {
27 TileSequences map[string][]tileLibRef
30 type TileVariant struct {
33 Blake2b [blake2b.Size256]byte
37 type LibraryEntry struct {
39 CompactGenomes []CompactGenome
40 CompactSequences []CompactSequence
41 TileVariants []TileVariant
44 func ReadCompactGenomes(rdr io.Reader, gz bool) ([]CompactGenome, error) {
45 var ret []CompactGenome
46 err := DecodeLibrary(rdr, gz, func(ent *LibraryEntry) error {
47 ret = append(ret, ent.CompactGenomes...)
53 func DecodeLibrary(rdr io.Reader, gz bool, cb func(*LibraryEntry) error) error {
54 zrdr := ioutil.NopCloser(rdr)
57 zrdr, err = pgzip.NewReader(bufio.NewReaderSize(rdr, 1<<20))
62 dec := gob.NewDecoder(zrdr)
65 err = dec.Decode(&ent)