aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/system
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2024-12-20 23:21:19 +0900
committerOphestra <cat@gensokyo.uk>2024-12-20 23:21:19 +0900
commitb9cc318314f8e398ea38e25756f0f544f77fb063 (patch)
tree1d4898b54388bc70fa5aaa146e30b7722251bbb9 /internal/system
parented10574deacf5a27be9572a94c1ae2e39e11ff6c (diff)
system: implement Enablements String method
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/system')
-rw-r--r--internal/system/enablement.go19
1 files changed, 19 insertions, 0 deletions
diff --git a/internal/system/enablement.go b/internal/system/enablement.go
index f4435627..f0911d54 100644
--- a/internal/system/enablement.go
+++ b/internal/system/enablement.go
@@ -1,5 +1,9 @@
package system
+import (
+ "strings"
+)
+
type (
// Enablement represents an optional system resource
Enablement uint8
@@ -47,3 +51,18 @@ func (es *Enablements) Set(e Enablement) {
*es |= e.Mask()
}
+
+func (es *Enablements) String() string {
+ buf := new(strings.Builder)
+ for i := Enablement(0); i < Enablement(ELen); i++ {
+ if es.Has(i) {
+ buf.WriteString(", " + i.String())
+ }
+ }
+
+ if buf.Len() == 0 {
+ buf.WriteString("(No enablements)")
+ }
+
+ return strings.TrimPrefix(buf.String(), ", ")
+}