package opt import "strconv" type FloatOption struct { name string shortName string description string value float64 } var _ Option = (*FloatOption)(nil) func Float(name, shortName string, defaultValue float64, description string) *FloatOption { return &FloatOption{ name: name, shortName: shortName, description: description, value: defaultValue, } } // Description implements Option. func (o *FloatOption) Description() string { return o.description } // Name implements Option. func (o *FloatOption) Name() string { return o.name } // ShortName implements Option. func (o *FloatOption) ShortName() string { return o.shortName } // Value implements Option. func (o *FloatOption) Parse(raw string) error { if raw == "" { return nil } floatVal, err := strconv.ParseFloat(raw, 64) if err != nil { return err } o.value = floatVal return nil } // RequiresVal implements Option. func (*FloatOption) RequiresVal() bool { return true } func (o *FloatOption) Value() float64 { return o.value }