github.com/hashicorp/terraform-plugin-sdk@v1.17.2/internal/addrs/targetable.go (about)

     1  package addrs
     2  
     3  // Targetable is an interface implemented by all address types that can be
     4  // used as "targets" for selecting sub-graphs of a graph.
     5  type Targetable interface {
     6  	targetableSigil()
     7  
     8  	// TargetContains returns true if the receiver is considered to contain
     9  	// the given other address. Containment, for the purpose of targeting,
    10  	// means that if a container address is targeted then all of the
    11  	// addresses within it are also implicitly targeted.
    12  	//
    13  	// A targetable address always contains at least itself.
    14  	TargetContains(other Targetable) bool
    15  
    16  	// String produces a string representation of the address that could be
    17  	// parsed as a HCL traversal and passed to ParseTarget to produce an
    18  	// identical result.
    19  	String() string
    20  }
    21  
    22  type targetable struct {
    23  }
    24  
    25  func (r targetable) targetableSigil() {
    26  }