24 lines
729 B
Go
24 lines
729 B
Go
package storage
|
|
|
|
import (
|
|
"github.com/kercylan98/minotaur/utils/generic"
|
|
"time"
|
|
)
|
|
|
|
// IndexDataStorage 全局数据存储器接口
|
|
type IndexDataStorage[I generic.Ordered, T IndexDataItem[I]] interface {
|
|
// Load 加载特定索引数据
|
|
// - 通常情况下当数据不存在时,应当返回空指针
|
|
Load(name string, index I) T
|
|
// LoadAll 加载所有数据
|
|
LoadAll(name string) map[I]T
|
|
// Save 保存特定索引数据
|
|
Save(name string, index I, data T) error
|
|
// SaveAll 保存所有数据
|
|
SaveAll(name string, data map[I]T, errHandle func(err error) bool, retryInterval time.Duration)
|
|
// Delete 删除特定索引数据
|
|
Delete(name string, index I)
|
|
// DeleteAll 删除所有数据
|
|
DeleteAll(name string)
|
|
}
|