From 4b7d616862dc7d8c73561b85deb0ca1fabf30781 Mon Sep 17 00:00:00 2001 From: Ophestra Umiker Date: Tue, 17 Sep 2024 13:48:42 +0900 Subject: exit: move final and early code to internal package Exit cleanup state information is now stored in a dedicated struct and built up using methods of that struct. Signed-off-by: Ophestra Umiker --- internal/enablement.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 internal/enablement.go (limited to 'internal/enablement.go') diff --git a/internal/enablement.go b/internal/enablement.go new file mode 100644 index 00000000..a2dd1e6a --- /dev/null +++ b/internal/enablement.go @@ -0,0 +1,34 @@ +package internal + +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 +} -- cgit v1.3.1