diff --git a/internal/core/state_bag.go b/internal/core/state_bag.go new file mode 100644 index 000000000..afbae3faa --- /dev/null +++ b/internal/core/state_bag.go @@ -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)