github.com/songzhibin97/go-baseutils@v0.0.2-0.20240302024150-487d8ce9c082/app/bcache/iterator.go (about)

     1  package bcache
     2  
     3  import (
     4  	"time"
     5  )
     6  
     7  type Iterator[E any] struct {
     8  	// Value 实际存储的对象
     9  	Value E
    10  	// Expire 过期时间
    11  	// 0 不设置过期时间
    12  	Expire int64
    13  }
    14  
    15  // expired 判断是否过期,过期返回 true
    16  func (i Iterator[E]) expired(v ...int64) bool {
    17  	if !i.isVisit() {
    18  		return false
    19  	}
    20  	if len(v) != 0 {
    21  		return v[0] > i.Expire
    22  	}
    23  	return time.Now().UnixNano() > i.Expire
    24  }
    25  
    26  // IsVisit 根据expire判断是否需要监控
    27  func (i Iterator[E]) isVisit() bool {
    28  	return i.Expire > 0
    29  }