Option to output full list of unplaced tags.
[lightning.git] / taglib.go
index 0de37089a791d1914ce560717dfe950fc156e0c4..f92a91f375560014a9b768a2b37450518505528b 100644 (file)
--- a/taglib.go
+++ b/taglib.go
@@ -47,10 +47,10 @@ func (taglib *tagLibrary) FindAll(buf []byte, fn func(id tagID, pos, taglen int)
                if !isbase[int(base)] {
                        valid = 0
                        continue
-               } else {
-                       valid++
                }
                key = ((key << 2) | twobit[int(base)]) & taglib.keymask
+               valid++
+
                if valid < taglib.keylen {
                        continue
                } else if taginfo, ok := taglib.tagmap[key]; !ok {
@@ -117,3 +117,17 @@ func (taglib *tagLibrary) setTags(tags [][]byte) error {
        }
        return nil
 }
+
+func (taglib *tagLibrary) Tags() [][]byte {
+       out := make([][]byte, len(taglib.tagmap))
+       untwobit := []byte{'a', 'c', 'g', 't'}
+       for key, info := range taglib.tagmap {
+               seq := make([]byte, taglib.keylen)
+               for i := len(seq) - 1; i >= 0; i-- {
+                       seq[i] = untwobit[int(key)&3]
+                       key = key >> 2
+               }
+               out[int(info.id)] = seq
+       }
+       return out
+}