Documentation
¶
Index ¶
- Constants
- Variables
- func GenRngsString(rngs []int) string
- func GetRngs(plugin IPlugin) []int
- func String2Rngs(str string) []int
- type BasicPlugin
- type FastPlugin
- type FuncNewPlugin
- type IPlugin
- type MockPlugin
- type PRNGPlugin
- type PluginBase
- func (bp *PluginBase) AddRngUsed(ri *sgc7utils.RngInfo)
- func (bp *PluginBase) ClearCache()
- func (bp *PluginBase) ClearUsedRngs()
- func (bp *PluginBase) GetScenePool() any
- func (bp *PluginBase) GetUsedRngs() []*sgc7utils.RngInfo
- func (bp *PluginBase) RollbackUsedRngs() error
- func (bp *PluginBase) SetCache(arr []int)
- func (bp *PluginBase) SetScenePool(pool any)
- func (bp *PluginBase) TagUsedRngs()
- type PluginsMgr
Constants ¶
const RngA int64 = 165403
const RngC int64 = 51654324
const RngM int64 = 2147483647
Variables ¶
var ( // ErrInvalidTag - invalid tag ErrInvalidTag = errors.New("invalid tag") )
var IsNoRNGCache bool
Functions ¶
func GenRngsString ¶ added in v0.12.2010
func String2Rngs ¶ added in v0.12.2010
Types ¶
type BasicPlugin ¶
type BasicPlugin struct {
PluginBase
}
BasicPlugin - basic plugin
func (*BasicPlugin) SetSeed ¶ added in v0.13.124
func (bp *BasicPlugin) SetSeed(seed int)
SetSeed - set a seed
type FastPlugin ¶ added in v0.12.17
type FastPlugin struct {
PluginBase
RNG *fastrand.RNG
}
BasicPlugin - basic plugin
func NewFastPlugin ¶ added in v0.12.17
func NewFastPlugin() *FastPlugin
NewFastPlugin - new a BasicPlugin
func (*FastPlugin) SetSeed ¶ added in v0.13.124
func (fp *FastPlugin) SetSeed(seed int)
SetSeed - set a seed
type IPlugin ¶
type IPlugin interface {
// Random - return [0, r)
Random(ctx context.Context, r int) (int, error)
// GetUsedRngs - get used rngs
GetUsedRngs() []*sgc7utils.RngInfo
// ClearUsedRngs - clear used rngs
ClearUsedRngs()
// TagUsedRngs - new a tag for current UsedRngs
TagUsedRngs()
// RollbackUsedRngs - rollback UsedRngs with the latest tag
RollbackUsedRngs() error
// SetCache - set cache
SetCache(arr []int)
// ClearCache - clear cached rngs
ClearCache()
// Init - initial
Init()
// SetScenePool - set scene pool
SetScenePool(any)
// GetScenePool - get scene pool
GetScenePool() any
// SetSeed - set a seed
SetSeed(seed int)
}
IPlugin - plugin
type MockPlugin ¶ added in v0.13.624
type MockPlugin struct {
PluginBase
}
MockPlugin - mock plugin 这个 plugin 是专门给测试使用的 SetCache 一个 int 数组,后面 random 就会顺序返回这个数组作为随机数 如果 cache 为空,则返回 0
func NewMockPlugin ¶ added in v0.13.624
func NewMockPlugin() *MockPlugin
NewMockPlugin - new a MockPlugin
func (*MockPlugin) SetSeed ¶ added in v0.13.624
func (fp *MockPlugin) SetSeed(seed int)
SetSeed - set a seed
type PRNGPlugin ¶ added in v0.13.124
type PRNGPlugin struct {
PluginBase
Seed int
}
PRNGPlugin - prng plugin
func NewPRNGPlugin ¶ added in v0.13.124
func NewPRNGPlugin() *PRNGPlugin
NewPRNGPlugin - new a PRNGPlugin
func (*PRNGPlugin) SetSeed ¶ added in v0.13.124
func (prng *PRNGPlugin) SetSeed(seed int)
SetSeed - set a seed
type PluginBase ¶ added in v0.12.23
PluginBase - base
func NewPluginBase ¶ added in v0.12.23
func NewPluginBase() PluginBase
func (*PluginBase) AddRngUsed ¶ added in v0.12.23
func (bp *PluginBase) AddRngUsed(ri *sgc7utils.RngInfo)
AddRngUsed - added used rngs
func (*PluginBase) ClearCache ¶ added in v0.12.23
func (bp *PluginBase) ClearCache()
ClearCache - clear cached rngs
func (*PluginBase) ClearUsedRngs ¶ added in v0.12.23
func (bp *PluginBase) ClearUsedRngs()
ClearUsedRngs - clear used rngs
func (*PluginBase) GetScenePool ¶ added in v0.12.23
func (bp *PluginBase) GetScenePool() any
GetScenePool - get scene pool
func (*PluginBase) GetUsedRngs ¶ added in v0.12.23
func (bp *PluginBase) GetUsedRngs() []*sgc7utils.RngInfo
GetUsedRngs - get used rngs
func (*PluginBase) RollbackUsedRngs ¶ added in v0.12.23
func (bp *PluginBase) RollbackUsedRngs() error
RollbackUsedRngs - rollback UsedRngs with a tag
func (*PluginBase) SetCache ¶ added in v0.12.23
func (bp *PluginBase) SetCache(arr []int)
SetCache - set cache
func (*PluginBase) SetScenePool ¶ added in v0.12.23
func (bp *PluginBase) SetScenePool(pool any)
SetScenePool - set scene pool
func (*PluginBase) TagUsedRngs ¶ added in v0.12.23
func (bp *PluginBase) TagUsedRngs()
TagUsedRngs - new a tag for current UsedRngs
type PluginsMgr ¶
type PluginsMgr struct {
// contains filtered or unexported fields
}
PluginsMgr - plugins manager
func NewPluginsMgr ¶
func NewPluginsMgr(funcNewPlugin FuncNewPlugin) *PluginsMgr
NewPluginsMgr - new a PluginsMgr
func (*PluginsMgr) FreePlugin ¶
func (mgr *PluginsMgr) FreePlugin(plugin IPlugin)
FreePlugin - free a Plugin