+ err := DecodeLibrary(rdr, gz, func(ent *LibraryEntry) error {
+ ret = append(ret, ent.CompactGenomes...)
+ return nil
+ })
+ return ret, err
+}
+
+func DecodeLibrary(rdr io.Reader, gz bool, cb func(*LibraryEntry) error) error {
+ zrdr := ioutil.NopCloser(rdr)
+ var err error
+ if gz {
+ zrdr, err = pgzip.NewReader(bufio.NewReaderSize(rdr, 1<<20))
+ if err != nil {
+ return err
+ }
+ }
+ dec := gob.NewDecoder(zrdr)
+ for err == nil {