27 lines
485 B
Go
27 lines
485 B
Go
package eap
|
|
|
|
import "slices"
|
|
|
|
type Settings struct {
|
|
ChallengesToOffer []Type
|
|
ChallengeSettings map[Type]interface{}
|
|
}
|
|
|
|
type StateManager interface {
|
|
GetEAPSettings() Settings
|
|
GetEAPState(string) *State
|
|
SetEAPState(string, *State)
|
|
}
|
|
|
|
type State struct {
|
|
ChallengesToOffer []Type
|
|
TypeState map[Type]any
|
|
}
|
|
|
|
func BlankState(settings Settings) *State {
|
|
return &State{
|
|
ChallengesToOffer: slices.Clone(settings.ChallengesToOffer),
|
|
TypeState: map[Type]any{},
|
|
}
|
|
}
|