2023-04-10 15:36:59 +00:00
|
|
|
// Copyright (c) HashiCorp, Inc.
|
|
|
|
// SPDX-License-Identifier: MPL-2.0
|
|
|
|
|
2020-11-09 19:35:02 +00:00
|
|
|
package addrs
|
|
|
|
|
|
|
|
// Referenceable is an interface implemented by all address types that can
|
|
|
|
// appear as references in configuration language expressions.
|
|
|
|
type Referenceable interface {
|
|
|
|
// referenceableSigil is private to ensure that all Referenceables are
|
|
|
|
// implentented in this current package. For now this does nothing.
|
|
|
|
referenceableSigil()
|
|
|
|
|
|
|
|
// String produces a string representation of the address that could be
|
|
|
|
// parsed as a HCL traversal and passed to ParseRef to produce an identical
|
|
|
|
// result.
|
|
|
|
String() string
|
|
|
|
}
|
|
|
|
|
|
|
|
// referenceable is an empty struct that implements Referenceable, add it to
|
|
|
|
// your Referenceable struct so that it can be recognized as such.
|
|
|
|
type referenceable struct {
|
|
|
|
}
|
|
|
|
|
|
|
|
func (r referenceable) referenceableSigil() {
|
|
|
|
}
|