summaryrefslogtreecommitdiffstats
path: root/resources/resource/resourcetypes.go
diff options
context:
space:
mode:
Diffstat (limited to 'resources/resource/resourcetypes.go')
-rw-r--r--resources/resource/resourcetypes.go24
1 files changed, 17 insertions, 7 deletions
diff --git a/resources/resource/resourcetypes.go b/resources/resource/resourcetypes.go
index 0766fe232..5d9533223 100644
--- a/resources/resource/resourcetypes.go
+++ b/resources/resource/resourcetypes.go
@@ -233,17 +233,27 @@ type StaleMarker interface {
// StaleInfo tells if a resource is marked as stale.
type StaleInfo interface {
- IsStale() bool
+ StaleVersion() uint32
}
-// IsStaleAny reports whether any of the os is marked as stale.
-func IsStaleAny(os ...any) bool {
- for _, o := range os {
- if s, ok := o.(StaleInfo); ok && s.IsStale() {
- return true
+// StaleVersion returns the StaleVersion for the given os,
+// or 0 if not set.
+func StaleVersion(os any) uint32 {
+ if s, ok := os.(StaleInfo); ok {
+ return s.StaleVersion()
+ }
+ return 0
+}
+
+// StaleVersionSum calculates the sum of the StaleVersionSum for the given oss.
+func StaleVersionSum(oss ...any) uint32 {
+ var version uint32
+ for _, o := range oss {
+ if s, ok := o.(StaleInfo); ok && s.StaleVersion() > 0 {
+ version += s.StaleVersion()
}
}
- return false
+ return version
}
// MarkStale will mark any of the oses as stale, if possible.