(c *Cache, k K)
| 84 | } |
| 85 | |
| 86 | func getCacheOf[T any, K keyType](c *Cache, k K) (v *T, ok bool) { |
| 87 | typstr := reflect.ValueOf(v).Type().String() |
| 88 | typ := cacheTypesMap[typstr] |
| 89 | if typ == 0 { |
| 90 | return |
| 91 | } |
| 92 | key := uint64(typ)<<32 | uint64(k) |
| 93 | unsafev, ok := c.m.Load(key) |
| 94 | if ok { |
| 95 | v = (*T)(unsafev) |
| 96 | } |
| 97 | return |
| 98 | } |
| 99 | |
| 100 | func rangeCacheOf[T any, K keyType](c *Cache, iter func(k K, v *T) bool) { |
| 101 | typ := cacheTypesMap[typenameof[T]()] |
no test coverage detected