github.com/eliastor/durgaform@v0.0.0-20220816172711-d0ab2d17673e/internal/provisioners/factory.go (about)

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