@@ -9,28 +9,28 @@ import (
99)
1010
1111type (
12- withTTL [K comparable , T interface {} ] struct {
12+ cacheWithTTL [K comparable , V any ] struct {
1313 ttl time.Duration
14- list map [K ]* ttlItem [ T ]
14+ list map [K ]* itemCacheTTL [ V ]
1515 mux sync.RWMutex
1616 }
1717
18- ttlItem [ T interface {}] struct {
19- link T
18+ itemCacheTTL [ V interface {}] struct {
19+ link V
2020 ts int64
2121 }
2222)
2323
24- func NewWithTTL [K comparable , T interface {} ](ctx context.Context , ttl time.Duration ) TCache [K , T ] {
25- cache := & withTTL [K , T ]{
24+ func NewWithTTL [K comparable , V any ](ctx context.Context , ttl time.Duration ) TCacheTTL [K , V ] {
25+ cache := & cacheWithTTL [K , V ]{
2626 ttl : ttl ,
27- list : make (map [K ]* ttlItem [ T ], 1000 ),
27+ list : make (map [K ]* itemCacheTTL [ V ], 1000 ),
2828 }
2929 go cache .cleaner (ctx )
3030 return cache
3131}
3232
33- func (v * withTTL [K , T ]) cleaner (ctx context.Context ) {
33+ func (v * cacheWithTTL [K , V ]) cleaner (ctx context.Context ) {
3434 routine .Interval (ctx , v .ttl , func (ctx context.Context ) {
3535 curr := time .Now ().Unix ()
3636
@@ -42,7 +42,7 @@ func (v *withTTL[K, T]) cleaner(ctx context.Context) {
4242 })
4343}
4444
45- func (v * withTTL [K , T ]) Has (key K ) bool {
45+ func (v * cacheWithTTL [K , V ]) Has (key K ) bool {
4646 v .mux .RLock ()
4747 defer v .mux .RUnlock ()
4848
@@ -51,47 +51,47 @@ func (v *withTTL[K, T]) Has(key K) bool {
5151 return ok
5252}
5353
54- func (v * withTTL [K , T ]) Get (key K ) (T , bool ) {
54+ func (v * cacheWithTTL [K , V ]) Get (key K ) (V , bool ) {
5555 v .mux .RLock ()
5656 defer v .mux .RUnlock ()
5757
5858 item , ok := v .list [key ]
5959 if ! ok {
60- var zeroValue T
60+ var zeroValue V
6161 return zeroValue , false
6262 }
6363
6464 return item .link , true
6565}
6666
67- func (v * withTTL [K , T ]) Set (key K , value T ) {
67+ func (v * cacheWithTTL [K , V ]) Set (key K , value V ) {
6868 v .mux .Lock ()
6969 defer v .mux .Unlock ()
7070
71- v .list [key ] = & ttlItem [ T ]{
71+ v .list [key ] = & itemCacheTTL [ V ]{
7272 link : value ,
7373 ts : time .Now ().Add (v .ttl ).Unix (),
7474 }
7575}
7676
77- func (v * withTTL [K , T ]) SetWithTTL (key K , value T , ttl time.Time ) {
77+ func (v * cacheWithTTL [K , V ]) SetWithTTL (key K , value V , ttl time.Time ) {
7878 v .mux .Lock ()
7979 defer v .mux .Unlock ()
8080
81- v .list [key ] = & ttlItem [ T ]{
81+ v .list [key ] = & itemCacheTTL [ V ]{
8282 link : value ,
8383 ts : ttl .Unix (),
8484 }
8585}
8686
87- func (v * withTTL [K , T ]) Del (key K ) {
87+ func (v * cacheWithTTL [K , V ]) Del (key K ) {
8888 v .mux .Lock ()
8989 defer v .mux .Unlock ()
9090
9191 delete (v .list , key )
9292}
9393
94- func (v * withTTL [K , T ]) Keys () []K {
94+ func (v * cacheWithTTL [K , V ]) Keys () []K {
9595 v .mux .RLock ()
9696 defer v .mux .RUnlock ()
9797
@@ -103,7 +103,7 @@ func (v *withTTL[K, T]) Keys() []K {
103103 return result
104104}
105105
106- func (v * withTTL [K , T ]) Flush () {
106+ func (v * cacheWithTTL [K , V ]) Flush () {
107107 v .mux .Lock ()
108108 defer v .mux .Unlock ()
109109
0 commit comments