Initial QSfera import
This commit is contained in:
+51
@@ -0,0 +1,51 @@
|
||||
package tw
|
||||
|
||||
// State represents an on/off state
|
||||
type State int
|
||||
|
||||
// Public: Methods for State type
|
||||
|
||||
// Enabled checks if the state is on
|
||||
func (o State) Enabled() bool { return o == Success }
|
||||
|
||||
// Default checks if the state is unknown
|
||||
func (o State) Default() bool { return o == Unknown }
|
||||
|
||||
// Disabled checks if the state is off
|
||||
func (o State) Disabled() bool { return o == Fail }
|
||||
|
||||
// Toggle switches the state between on and off
|
||||
func (o State) Toggle() State {
|
||||
if o == Fail {
|
||||
return Success
|
||||
}
|
||||
return Fail
|
||||
}
|
||||
|
||||
// Cond executes a condition if the state is enabled
|
||||
func (o State) Cond(c func() bool) bool {
|
||||
if o.Enabled() {
|
||||
return c()
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// Or returns this state if enabled, else the provided state
|
||||
func (o State) Or(c State) State {
|
||||
if o.Enabled() {
|
||||
return o
|
||||
}
|
||||
return c
|
||||
}
|
||||
|
||||
// String returns the string representation of the state
|
||||
func (o State) String() string {
|
||||
if o.Enabled() {
|
||||
return "on"
|
||||
}
|
||||
|
||||
if o.Disabled() {
|
||||
return "off"
|
||||
}
|
||||
return "undefined"
|
||||
}
|
||||
Reference in New Issue
Block a user