mirror of
https://github.com/rclone/rclone.git
synced 2025-12-11 22:14:05 +01:00
build: modernize Go usage
This commit modernizes Go usage. This was done with:
go run golang.org/x/tools/gopls/internal/analysis/modernize/cmd/modernize@latest -fix -test ./...
Then files needed to be `go fmt`ed and a few comments needed to be
restored.
The modernizations include replacing
- if/else conditional assignment by a call to the built-in min or max functions added in go1.21
- sort.Slice(x, func(i, j int) bool) { return s[i] < s[j] } by a call to slices.Sort(s), added in go1.21
- interface{} by the 'any' type added in go1.18
- append([]T(nil), s...) by slices.Clone(s) or slices.Concat(s), added in go1.21
- loop around an m[k]=v map update by a call to one of the Collect, Copy, Clone, or Insert functions from the maps package, added in go1.21
- []byte(fmt.Sprintf...) by fmt.Appendf(nil, ...), added in go1.19
- append(s[:i], s[i+1]...) by slices.Delete(s, i, i+1), added in go1.21
- a 3-clause for i := 0; i < n; i++ {} loop by for i := range n {}, added in go1.22
This commit is contained in:
28
lib/cache/cache.go
vendored
28
lib/cache/cache.go
vendored
@@ -16,7 +16,7 @@ type Cache struct {
|
||||
expireRunning bool
|
||||
expireDuration time.Duration // expire the cache entry when it is older than this
|
||||
expireInterval time.Duration // interval to run the cache expire
|
||||
finalize func(value interface{})
|
||||
finalize func(value any)
|
||||
}
|
||||
|
||||
// New creates a new cache with the default expire duration and interval
|
||||
@@ -26,7 +26,7 @@ func New() *Cache {
|
||||
expireRunning: false,
|
||||
expireDuration: 300 * time.Second,
|
||||
expireInterval: 60 * time.Second,
|
||||
finalize: func(_ interface{}) {},
|
||||
finalize: func(_ any) {},
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,17 +56,17 @@ func (c *Cache) SetExpireInterval(d time.Duration) *Cache {
|
||||
|
||||
// cacheEntry is stored in the cache
|
||||
type cacheEntry struct {
|
||||
value interface{} // cached item
|
||||
err error // creation error
|
||||
key string // key
|
||||
lastUsed time.Time // time used for expiry
|
||||
pinCount int // non zero if the entry should not be removed
|
||||
value any // cached item
|
||||
err error // creation error
|
||||
key string // key
|
||||
lastUsed time.Time // time used for expiry
|
||||
pinCount int // non zero if the entry should not be removed
|
||||
}
|
||||
|
||||
// CreateFunc is called to create new values. If the create function
|
||||
// returns an error it will be cached if ok is true, otherwise the
|
||||
// error will just be returned, allowing negative caching if required.
|
||||
type CreateFunc func(key string) (value interface{}, ok bool, error error)
|
||||
type CreateFunc func(key string) (value any, ok bool, error error)
|
||||
|
||||
// used marks an entry as accessed now and kicks the expire timer off
|
||||
// should be called with the lock held
|
||||
@@ -80,7 +80,7 @@ func (c *Cache) used(entry *cacheEntry) {
|
||||
|
||||
// Get gets a value named key either from the cache or creates it
|
||||
// afresh with the create function.
|
||||
func (c *Cache) Get(key string, create CreateFunc) (value interface{}, err error) {
|
||||
func (c *Cache) Get(key string, create CreateFunc) (value any, err error) {
|
||||
c.mu.Lock()
|
||||
entry, ok := c.cache[key]
|
||||
if !ok {
|
||||
@@ -125,7 +125,7 @@ func (c *Cache) Unpin(key string) {
|
||||
}
|
||||
|
||||
// PutErr puts a value named key with err into the cache
|
||||
func (c *Cache) PutErr(key string, value interface{}, err error) {
|
||||
func (c *Cache) PutErr(key string, value any, err error) {
|
||||
c.mu.Lock()
|
||||
defer c.mu.Unlock()
|
||||
if c.noCache() {
|
||||
@@ -141,12 +141,12 @@ func (c *Cache) PutErr(key string, value interface{}, err error) {
|
||||
}
|
||||
|
||||
// Put puts a value named key into the cache
|
||||
func (c *Cache) Put(key string, value interface{}) {
|
||||
func (c *Cache) Put(key string, value any) {
|
||||
c.PutErr(key, value, nil)
|
||||
}
|
||||
|
||||
// GetMaybe returns the key and true if found, nil and false if not
|
||||
func (c *Cache) GetMaybe(key string) (value interface{}, found bool) {
|
||||
func (c *Cache) GetMaybe(key string) (value any, found bool) {
|
||||
c.mu.Lock()
|
||||
defer c.mu.Unlock()
|
||||
entry, found := c.cache[key]
|
||||
@@ -192,7 +192,7 @@ func (c *Cache) DeletePrefix(prefix string) (deleted int) {
|
||||
//
|
||||
// If there was an existing item at newKey then it takes precedence
|
||||
// and is returned otherwise the item (if any) at oldKey is returned.
|
||||
func (c *Cache) Rename(oldKey, newKey string) (value interface{}, found bool) {
|
||||
func (c *Cache) Rename(oldKey, newKey string) (value any, found bool) {
|
||||
c.mu.Lock()
|
||||
if newEntry, newFound := c.cache[newKey]; newFound {
|
||||
// If new entry is found use that
|
||||
@@ -255,7 +255,7 @@ func (c *Cache) Entries() int {
|
||||
}
|
||||
|
||||
// SetFinalizer sets a function to be called when a value drops out of the cache
|
||||
func (c *Cache) SetFinalizer(finalize func(interface{})) {
|
||||
func (c *Cache) SetFinalizer(finalize func(any)) {
|
||||
c.mu.Lock()
|
||||
c.finalize = finalize
|
||||
c.mu.Unlock()
|
||||
|
||||
10
lib/cache/cache_test.go
vendored
10
lib/cache/cache_test.go
vendored
@@ -18,7 +18,7 @@ var (
|
||||
|
||||
func setup(t *testing.T) (*Cache, CreateFunc) {
|
||||
called = 0
|
||||
create := func(path string) (interface{}, bool, error) {
|
||||
create := func(path string) (any, bool, error) {
|
||||
assert.Equal(t, 0, called)
|
||||
called++
|
||||
switch path {
|
||||
@@ -289,7 +289,7 @@ func TestDelete(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDeletePrefix(t *testing.T) {
|
||||
create := func(path string) (interface{}, bool, error) {
|
||||
create := func(path string) (any, bool, error) {
|
||||
return path, true, nil
|
||||
}
|
||||
c := New()
|
||||
@@ -317,7 +317,7 @@ func TestDeletePrefix(t *testing.T) {
|
||||
|
||||
func TestCacheRename(t *testing.T) {
|
||||
c := New()
|
||||
create := func(path string) (interface{}, bool, error) {
|
||||
create := func(path string) (any, bool, error) {
|
||||
return path, true, nil
|
||||
}
|
||||
|
||||
@@ -353,10 +353,10 @@ func TestCacheRename(t *testing.T) {
|
||||
func TestCacheFinalize(t *testing.T) {
|
||||
c := New()
|
||||
numCalled := 0
|
||||
c.SetFinalizer(func(v interface{}) {
|
||||
c.SetFinalizer(func(v any) {
|
||||
numCalled++
|
||||
})
|
||||
create := func(path string) (interface{}, bool, error) {
|
||||
create := func(path string) (any, bool, error) {
|
||||
return path, true, nil
|
||||
}
|
||||
_, _ = c.Get("ok", create)
|
||||
|
||||
Reference in New Issue
Block a user