Created StepValue type
This commit is contained in:
parent
b24ece723d
commit
ee6d5468d1
@ -3,18 +3,25 @@ package attribute
|
|||||||
import "strconv"
|
import "strconv"
|
||||||
import "gitlab.codemonkeysoftware.net/b/hatmill"
|
import "gitlab.codemonkeysoftware.net/b/hatmill"
|
||||||
|
|
||||||
type StepValue *float32
|
type StepValue float32
|
||||||
|
|
||||||
func StepAny() StepValue {
|
func (v *StepValue) String() string {
|
||||||
|
if v == nil {
|
||||||
|
return "any"
|
||||||
|
}
|
||||||
|
return strconv.FormatFloat(float64(*v), 'G', -1, 32)
|
||||||
|
}
|
||||||
|
|
||||||
|
func StepAny() *StepValue {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func StepFloat(value float32) StepValue {
|
func StepFloat(value float32) *StepValue {
|
||||||
return &value
|
return (*StepValue)(&(value))
|
||||||
}
|
}
|
||||||
|
|
||||||
// Step indicates the minimum allowed change to a number input.
|
// Step indicates the minimum allowed change to a number input.
|
||||||
func Step(value StepValue) hatmill.Attrib {
|
func Step(value *StepValue) hatmill.Attrib {
|
||||||
var attr = hatmill.Attrib{Key: "step"}
|
var attr = hatmill.Attrib{Key: "step"}
|
||||||
if value == nil {
|
if value == nil {
|
||||||
attr.Value = String("any")
|
attr.Value = String("any")
|
||||||
|
@ -4,8 +4,23 @@ import (
|
|||||||
"gitlab.codemonkeysoftware.net/b/hatmill/attribute"
|
"gitlab.codemonkeysoftware.net/b/hatmill/attribute"
|
||||||
"gitlab.codemonkeysoftware.net/b/hatmill/element"
|
"gitlab.codemonkeysoftware.net/b/hatmill/element"
|
||||||
"os"
|
"os"
|
||||||
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func TestStepValue(t *testing.T) {
|
||||||
|
t.Run(`String returns "any" for StepAny`, func(t *testing.T) {
|
||||||
|
actual := attribute.StepAny().String()
|
||||||
|
expected := "any"
|
||||||
|
expectEqualStrings(t, actual, expected)
|
||||||
|
})
|
||||||
|
|
||||||
|
t.Run("String returns valid float for StepFloat", func(t *testing.T) {
|
||||||
|
actual := attribute.StepFloat(5.5).String()
|
||||||
|
expected := "5.5"
|
||||||
|
expectEqualStrings(t, actual, expected)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
func ExampleStep() {
|
func ExampleStep() {
|
||||||
s1 := attribute.Step(attribute.StepAny())
|
s1 := attribute.Step(attribute.StepAny())
|
||||||
s2 := attribute.Step(attribute.StepFloat(0.5))
|
s2 := attribute.Step(attribute.StepFloat(0.5))
|
||||||
|
Loading…
Reference in New Issue
Block a user