From c19bdcf84a0e7ff0a5c3528c06040f75dfa954ee Mon Sep 17 00:00:00 2001 From: Scott Andrews Date: Tue, 30 Nov 2021 17:48:42 -0500 Subject: [PATCH] Make the readme types concrete The previous symbol names like `Die` looks too much like Go generics and could cause confusion. It was only intended as a placeholder, which has now been expanded. Signed-off-by: Scott Andrews --- README.md | 40 +++++++++++++++++++------------------- apis/meta/v1/objectmeta.go | 4 ++++ 2 files changed, 24 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 66a5b7b..d0a0a1d 100644 --- a/README.md +++ b/README.md @@ -100,47 +100,47 @@ Additional methods will be added to dies over time to make common operations eas ### Common methods ```go -// for managed type `` +// for managed type `MyResource` -// Blank is an empty die that mutations can be stamped from. All die blanks +// MyResourceBlank is an empty die that mutations can be stamped from. All die blanks // are immutable. -var Blank *Die +var MyResourceBlank *MyResourceDie -type Die interface { +type MyResourceDie interface { // DieStamp returns a new die with the resource passed to the callback // function. The resource is mutable. - DieStamp(fn func(r *)) *Die + DieStamp(fn func(r *MyResource)) *MyResourceDie // DieFeed returns a new die with the provided resource. - DieFeed(r ) *Die + DieFeed(r MyResource) *MyResourceDie // DieFeedPtr returns a new die with the provided resource pointer. If the // resource is nil, the empty value is used instead. - DieFeedPtr(r *) *Die + DieFeedPtr(r *MyResource) *MyResourceDie // DieRelease returns the resource managed by the die. - DieRelease() + DieRelease() MyResource // DieReleasePtr returns a pointer to the resource managed by the die. - DieReleasePtr() * + DieReleasePtr() *MyResource // DieImmutable returns a new die for the current die's state that is // either mutable (`false`) or immutable (`true`). - DieImmutable(immutable bool) *Die + DieImmutable(immutable bool) *MyResourceDie // DeepCopy returns a new die with equivalent state. Useful for // snapshotting a mutable die. - DeepCopy() *Die + DeepCopy() *MyResourceDie } ``` -For each exported field `` on ``, a method is registered to set that field. +For each exported field `MyField` on `MyResource`, a method is registered to set that field. ```go -type Die interface { +type MyResourceDie interface { // continued - () *Die + MyField(*MyResource) *MyResourceDie } ``` @@ -153,7 +153,7 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" ) -type Die interface { +type MyResourceDie interface { // continued runtime.Object @@ -165,15 +165,15 @@ type Die interface { DieReleaseUnstructured() runtime.Unstructured // MetadataDie stamps the resource's ObjectMeta field with a mutable die. - MetadataDie(fn func(d *diemetav1.ObjectMetaDie)) *Die + MetadataDie(fn func(d *diemetav1.ObjectMetaDie)) *MyResourceDie // SpecDie stamps the resource's spec field with a mutable die. This method - // is only created if `SpecDie` is defined. - SpecDie(fn func(d *SpecDie)) *Die + // is only created if `MyResourceSpecDie` is defined. + SpecDie(fn func(d *MyResourceSpecDie)) *MyResourceDie // StatusDie stamps the resource's status field with a mutable die. This - // method is only created if `StatusDie` is defined. - StatusDie(fn func(d *StatusDie)) *Die + // method is only created if `MyResourceStatusDie` is defined. + StatusDie(fn func(d *MyResourceStatusDie)) *MyResourceDie } ``` diff --git a/apis/meta/v1/objectmeta.go b/apis/meta/v1/objectmeta.go index 83fa3ba..5122093 100644 --- a/apis/meta/v1/objectmeta.go +++ b/apis/meta/v1/objectmeta.go @@ -87,12 +87,16 @@ type FrozenObjectMeta struct { // methods required to implement metav1.ObjectMetaAccessor +var _ metav1.ObjectMetaAccessor = (*FrozenObjectMeta)(nil) + func (d *FrozenObjectMeta) GetObjectMeta() metav1.Object { return d } // methods required to implement metav1.Object +var _ metav1.Object = (*FrozenObjectMeta)(nil) + func (d *FrozenObjectMeta) GetNamespace() string { return d.r.DeepCopy().GetNamespace() }