Files
niri/model_layout_switch_target.go
2025-07-25 13:41:23 +02:00

37 lines
787 B
Go

package niri
import (
"encoding/json"
"errors"
)
type LayoutSwitchTarget struct {
prev Option[bool]
next Option[bool]
index Option[int]
}
func LayoutSwitchTargetPrev() LayoutSwitchTarget {
return LayoutSwitchTarget{prev: OptionOf(true)}
}
func LayoutSwitchTargetNext() LayoutSwitchTarget {
return LayoutSwitchTarget{next: OptionOf(true)}
}
func LayoutSwitchTargetIndex(index int) LayoutSwitchTarget {
return LayoutSwitchTarget{index: OptionOf(index)}
}
func (m LayoutSwitchTarget) MarshalJSON() ([]byte, error) {
if m.prev != nil {
return json.Marshal("Prev")
} else if m.next != nil {
return json.Marshal("Next")
} else if m.index != nil {
return json.Marshal(map[string]int{"Index": *m.index})
}
return nil, errors.New("LayoutSwitchTarget.MarshalJson()")
}