From ae2c93f25511eafaa56eba7526526f65237d90c7 Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Wed, 28 Jul 2021 18:25:00 -0700 Subject: [PATCH] addrs: All AbsMovable implementations implement UniqueKeyer --- internal/addrs/module_call.go | 8 ++++++++ internal/addrs/moveable.go | 1 + internal/addrs/resource.go | 8 ++++++++ 3 files changed, 17 insertions(+) diff --git a/internal/addrs/module_call.go b/internal/addrs/module_call.go index d80b35a58..4e8ce34f2 100644 --- a/internal/addrs/module_call.go +++ b/internal/addrs/module_call.go @@ -70,6 +70,14 @@ func (c AbsModuleCall) Instance(key InstanceKey) ModuleInstance { return ret } +type absModuleCallInstanceKey string + +func (c AbsModuleCall) UniqueKey() UniqueKey { + return absModuleCallInstanceKey(c.String()) +} + +func (mk absModuleCallInstanceKey) uniqueKeySigil() {} + // ModuleCallInstance is the address of one instance of a module created from // a module call, which might create multiple instances using "count" or // "for_each" arguments. diff --git a/internal/addrs/moveable.go b/internal/addrs/moveable.go index fd93b58dc..a85fe72c1 100644 --- a/internal/addrs/moveable.go +++ b/internal/addrs/moveable.go @@ -11,6 +11,7 @@ package addrs // the current module where the address is defined. The type MoveEndpoint type AbsMoveable interface { absMoveableSigil() + UniqueKeyer String() string } diff --git a/internal/addrs/resource.go b/internal/addrs/resource.go index a7b7ee308..a26f941c9 100644 --- a/internal/addrs/resource.go +++ b/internal/addrs/resource.go @@ -194,6 +194,14 @@ func (r AbsResource) absMoveableSigil() { // AbsResource is moveable } +type absResourceKey string + +func (r AbsResource) UniqueKey() UniqueKey { + return absResourceInstanceKey(r.String()) +} + +func (rk absResourceKey) uniqueKeySigil() {} + // AbsResourceInstance is an absolute address for a resource instance under a // given module path. type AbsResourceInstance struct {