diff options
Diffstat (limited to 'internal/state/enablement.go')
| -rw-r--r-- | internal/state/enablement.go | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/internal/state/enablement.go b/internal/state/enablement.go new file mode 100644 index 00000000..9358f432 --- /dev/null +++ b/internal/state/enablement.go @@ -0,0 +1,34 @@ +package state + +type ( + Enablement uint8 + Enablements uint64 +) + +const ( + EnableWayland Enablement = iota + EnableX + EnableDBus + EnablePulse + + enableLength +) + +var enablementString = [enableLength]string{ + "Wayland", + "X11", + "D-Bus", + "PulseAudio", +} + +func (e Enablement) String() string { + return enablementString[e] +} + +func (e Enablement) Mask() Enablements { + return 1 << e +} + +func (es Enablements) Has(e Enablement) bool { + return es&e.Mask() != 0 +} |
