diff options
| author | Ophestra <cat@gensokyo.uk> | 2024-12-20 23:21:19 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2024-12-20 23:21:19 +0900 |
| commit | b9cc318314f8e398ea38e25756f0f544f77fb063 (patch) | |
| tree | 1d4898b54388bc70fa5aaa146e30b7722251bbb9 /internal/system | |
| parent | ed10574deacf5a27be9572a94c1ae2e39e11ff6c (diff) | |
system: implement Enablements String method
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/system')
| -rw-r--r-- | internal/system/enablement.go | 19 |
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(), ", ") +} |
