aboutsummaryrefslogtreecommitdiffhomepage
path: root/hst/enablement.go
diff options
context:
space:
mode:
Diffstat (limited to 'hst/enablement.go')
-rw-r--r--hst/enablement.go52
1 files changed, 21 insertions, 31 deletions
diff --git a/hst/enablement.go b/hst/enablement.go
index 71ddecab..c820ea67 100644
--- a/hst/enablement.go
+++ b/hst/enablement.go
@@ -7,12 +7,12 @@ import (
"syscall"
)
-// Enablement represents an optional host service to export to the target user.
-type Enablement byte
+// Enablements denotes optional host service to export to the target user.
+type Enablements byte
const (
// EWayland exposes a Wayland pathname socket via security-context-v1.
- EWayland Enablement = 1 << iota
+ EWayland Enablements = 1 << iota
// EX11 adds the target user via X11 ChangeHosts and exposes the X11
// pathname socket.
EX11
@@ -28,8 +28,8 @@ const (
EM
)
-// String returns a string representation of the flags set on [Enablement].
-func (e Enablement) String() string {
+// String returns a string representation of the flags set on [Enablements].
+func (e Enablements) String() string {
switch e {
case 0:
return "(no enablements)"
@@ -47,7 +47,7 @@ func (e Enablement) String() string {
buf := new(strings.Builder)
buf.Grow(32)
- for i := Enablement(1); i < EM; i <<= 1 {
+ for i := Enablements(1); i < EM; i <<= 1 {
if e&i != 0 {
buf.WriteString(", " + i.String())
}
@@ -60,12 +60,6 @@ func (e Enablement) String() string {
}
}
-// NewEnablements returns the address of [Enablement] as [Enablements].
-func NewEnablements(e Enablement) *Enablements { return (*Enablements)(&e) }
-
-// Enablements is the [json] adapter for [Enablement].
-type Enablements Enablement
-
// enablementsJSON is the [json] representation of [Enablements].
type enablementsJSON = struct {
Wayland bool `json:"wayland,omitempty"`
@@ -75,24 +69,21 @@ type enablementsJSON = struct {
Pulse bool `json:"pulse,omitempty"`
}
-// Unwrap returns the underlying [Enablement].
-func (e *Enablements) Unwrap() Enablement {
+// Unwrap returns the value pointed to by e.
+func (e *Enablements) Unwrap() Enablements {
if e == nil {
return 0
}
- return Enablement(*e)
+ return *e
}
-func (e *Enablements) MarshalJSON() ([]byte, error) {
- if e == nil {
- return nil, syscall.EINVAL
- }
+func (e Enablements) MarshalJSON() ([]byte, error) {
return json.Marshal(&enablementsJSON{
- Wayland: Enablement(*e)&EWayland != 0,
- X11: Enablement(*e)&EX11 != 0,
- DBus: Enablement(*e)&EDBus != 0,
- PipeWire: Enablement(*e)&EPipeWire != 0,
- Pulse: Enablement(*e)&EPulse != 0,
+ Wayland: e&EWayland != 0,
+ X11: e&EX11 != 0,
+ DBus: e&EDBus != 0,
+ PipeWire: e&EPipeWire != 0,
+ Pulse: e&EPulse != 0,
})
}
@@ -106,22 +97,21 @@ func (e *Enablements) UnmarshalJSON(data []byte) error {
return err
}
- var ve Enablement
+ *e = 0
if v.Wayland {
- ve |= EWayland
+ *e |= EWayland
}
if v.X11 {
- ve |= EX11
+ *e |= EX11
}
if v.DBus {
- ve |= EDBus
+ *e |= EDBus
}
if v.PipeWire {
- ve |= EPipeWire
+ *e |= EPipeWire
}
if v.Pulse {
- ve |= EPulse
+ *e |= EPulse
}
- *e = Enablements(ve)
return nil
}