From 631a630e68daa9ca834fb3d7323a396ac310a17c Mon Sep 17 00:00:00 2001 From: sophia Date: Wed, 1 Sep 2021 14:53:31 -0500 Subject: [PATCH] Implement statebag --- internal/core/state_bag.go | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 internal/core/state_bag.go 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)