Implement statebag

This commit is contained in:
sophia 2021-09-01 14:53:31 -05:00 committed by Paul Hinze
parent f5fe88de15
commit 631a630e68
No known key found for this signature in database
GPG Key ID: B69DEDF2D55501C0

View File

@ -0,0 +1,33 @@
package core
import (
"github.com/hashicorp/vagrant-plugin-sdk/core"
)
// The StateBag keeps the state of Vagrant during execution
type StateBag struct {
state map[string]interface{}
}
// Get implements core.StateBag
func (s *StateBag) Get(key string) interface{} {
return s.state[key]
}
// GetOk implements core.StateBag
func (s *StateBag) GetOk(key string) (val interface{}, ok bool) {
val, ok = s.state[key]
return
}
// Put implements core.StateBag
func (s *StateBag) Put(key string, val interface{}) {
s.state[key] = val
}
// Remove implements core.StateBag
func (s *StateBag) Remove(key string) {
delete(s.state, key)
}
var _ core.StateBag = (*StateBag)(nil)