| package provisioners |
| |
| // Factory is a function type that creates a new instance of a resource |
| // provisioner, or returns an error if that is impossible. |
| type Factory func() (Interface, error) |
| |
| // FactoryFixed is a helper that creates a Factory that just returns some given |
| // single provisioner. |
| // |
| // Unlike usual factories, the exact same instance is returned for each call |
| // to the factory and so this must be used in only specialized situations where |
| // the caller can take care to either not mutate the given provider at all |
| // or to mutate it in ways that will not cause unexpected behavior for others |
| // holding the same reference. |
| func FactoryFixed(p Interface) Factory { |
| return func() (Interface, error) { |
| return p, nil |
| } |
| } |