func cacheAdj(dt *Digraph, count bytes_int.MultiMap, cache bytes_bytes.MultiMap, key []byte, nodes []lattice.Node) (err error) { if dt.Mode&Caching == 0 { return nil } dt.lock.Lock() defer dt.lock.Unlock() if has, err := count.Has(key); err != nil { return err } else if has { return nil } err = count.Add(key, int32(len(nodes))) if err != nil { return err } for _, n := range nodes { err = cache.Add(key, n.Pattern().Label()) if err != nil { return err } } return nil }