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{},
 | |
| 	}
 | |
| }
 | 
