package store import ( "time" ) func (m *Memory) GetASNPrefixCache(asn int64) (*ASNPrefixCacheEntry, bool, error) { m.mu.RLock() defer m.mu.RUnlock() if m.asnPrefixCache == nil { return nil, false, nil } e, ok := m.asnPrefixCache[asn] if !ok || e == nil { return nil, false, nil } pfx := append([]string(nil), e.Prefixes...) return &ASNPrefixCacheEntry{ ASN: asn, Holder: e.Holder, Prefixes: pfx, FetchedAt: e.FetchedAt, }, true, nil } func (m *Memory) SetASNPrefixCache(asn int64, holder string, prefixes []string) error { m.mu.Lock() defer m.mu.Unlock() if m.asnPrefixCache == nil { m.asnPrefixCache = make(map[int64]*ASNPrefixCacheEntry) } cp := append([]string(nil), prefixes...) m.asnPrefixCache[asn] = &ASNPrefixCacheEntry{ ASN: asn, Holder: holder, Prefixes: cp, FetchedAt: time.Now().UTC(), } return nil }