aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorspf13 <[email protected]>2014-07-11 10:25:27 -0400
committerspf13 <[email protected]>2014-07-11 10:25:27 -0400
commit463bdc838f2b35e9307e91d480878bda5fff7232 (patch)
treecb01b60a27df6601aa01c06791bec65e0c2674b4
parentb02196a78893a71903e9ad98359e7f891b1e7781 (diff)
Adding Type() method to the values.
-rw-r--r--bool.go4
-rw-r--r--duration.go4
-rw-r--r--flag.go1
-rw-r--r--float32.go4
-rw-r--r--float64.go4
-rw-r--r--int.go4
-rw-r--r--int32.go4
-rw-r--r--int64.go4
-rw-r--r--int8.go4
-rw-r--r--ip.go4
-rw-r--r--ipmask.go4
-rw-r--r--string.go3
-rw-r--r--uint.go4
-rw-r--r--uint16.go5
-rw-r--r--uint32.go4
-rw-r--r--uint64.go4
-rw-r--r--uint8.go4
17 files changed, 65 insertions, 0 deletions
diff --git a/bool.go b/bool.go
index 60beb54..010576c 100644
--- a/bool.go
+++ b/bool.go
@@ -19,6 +19,10 @@ func (b *boolValue) Set(s string) error {
return err
}
+func (b *boolValue) Type() string {
+ return "bool"
+}
+
func (b *boolValue) String() string { return fmt.Sprintf("%v", *b) }
// BoolVar defines a bool flag with specified name, default value, and usage string.
diff --git a/duration.go b/duration.go
index db8bfd5..66ed7ac 100644
--- a/duration.go
+++ b/duration.go
@@ -16,6 +16,10 @@ func (d *durationValue) Set(s string) error {
return err
}
+func (d *durationValue) Type() string {
+ return "duration"
+}
+
func (d *durationValue) String() string { return (*time.Duration)(d).String() }
// DurationVar defines a time.Duration flag with specified name, default value, and usage string.
diff --git a/flag.go b/flag.go
index dfc03d2..47761a0 100644
--- a/flag.go
+++ b/flag.go
@@ -154,6 +154,7 @@ type Flag struct {
type Value interface {
String() string
Set(string) error
+ Type() string
}
// sortFlags returns the flags as a slice in lexicographical sorted order.
diff --git a/float32.go b/float32.go
index a0041e2..b7ad67d 100644
--- a/float32.go
+++ b/float32.go
@@ -19,6 +19,10 @@ func (f *float32Value) Set(s string) error {
return err
}
+func (f *float32Value) Type() string {
+ return "float32"
+}
+
func (f *float32Value) String() string { return fmt.Sprintf("%v", *f) }
// Float32Var defines a float32 flag with specified name, default value, and usage string.
diff --git a/float64.go b/float64.go
index 8d79be0..0315512 100644
--- a/float64.go
+++ b/float64.go
@@ -19,6 +19,10 @@ func (f *float64Value) Set(s string) error {
return err
}
+func (f *float64Value) Type() string {
+ return "float64"
+}
+
func (f *float64Value) String() string { return fmt.Sprintf("%v", *f) }
// Float64Var defines a float64 flag with specified name, default value, and usage string.
diff --git a/int.go b/int.go
index cb85e14..dca9da6 100644
--- a/int.go
+++ b/int.go
@@ -19,6 +19,10 @@ func (i *intValue) Set(s string) error {
return err
}
+func (i *intValue) Type() string {
+ return "int"
+}
+
func (i *intValue) String() string { return fmt.Sprintf("%v", *i) }
// IntVar defines an int flag with specified name, default value, and usage string.
diff --git a/int32.go b/int32.go
index 2e1a317..18eaacd 100644
--- a/int32.go
+++ b/int32.go
@@ -19,6 +19,10 @@ func (i *int32Value) Set(s string) error {
return err
}
+func (i *int32Value) Type() string {
+ return "int32"
+}
+
func (i *int32Value) String() string { return fmt.Sprintf("%v", *i) }
// Int32Var defines an int32 flag with specified name, default value, and usage string.
diff --git a/int64.go b/int64.go
index 43aeced..0114aaa 100644
--- a/int64.go
+++ b/int64.go
@@ -19,6 +19,10 @@ func (i *int64Value) Set(s string) error {
return err
}
+func (i *int64Value) Type() string {
+ return "int64"
+}
+
func (i *int64Value) String() string { return fmt.Sprintf("%v", *i) }
// Int64Var defines an int64 flag with specified name, default value, and usage string.
diff --git a/int8.go b/int8.go
index 539c4eb..aab1022 100644
--- a/int8.go
+++ b/int8.go
@@ -19,6 +19,10 @@ func (i *int8Value) Set(s string) error {
return err
}
+func (i *int8Value) Type() string {
+ return "int8"
+}
+
func (i *int8Value) String() string { return fmt.Sprintf("%v", *i) }
// Int8Var defines an int8 flag with specified name, default value, and usage string.
diff --git a/ip.go b/ip.go
index 3a411fc..9d53bd3 100644
--- a/ip.go
+++ b/ip.go
@@ -26,6 +26,10 @@ func (i *ipValue) Get() interface{} {
return net.IP(*i)
}
+func (i *ipValue) Type() string {
+ return "ip"
+}
+
// IPVar defines an net.IP flag with specified name, default value, and usage string.
// The argument p points to an net.IP variable in which to store the value of the flag.
func (f *FlagSet) IPVar(p *net.IP, name string, value net.IP, usage string) {
diff --git a/ipmask.go b/ipmask.go
index b8a164a..6f85be9 100644
--- a/ipmask.go
+++ b/ipmask.go
@@ -26,6 +26,10 @@ func (i *ipMaskValue) Get() interface{} {
return net.IPMask(*i)
}
+func (i *ipMaskValue) Type() string {
+ return "ipMask"
+}
+
// Parse IPv4 netmask written in IP form (e.g. 255.255.255.0).
// This function should really belong to the net package.
func ParseIPv4Mask(s string) net.IPMask {
diff --git a/string.go b/string.go
index 65c0cb7..362fbf8 100644
--- a/string.go
+++ b/string.go
@@ -14,6 +14,9 @@ func (s *stringValue) Set(val string) error {
*s = stringValue(val)
return nil
}
+func (s *stringValue) Type() string {
+ return "string"
+}
func (s *stringValue) String() string { return fmt.Sprintf("%s", *s) }
diff --git a/uint.go b/uint.go
index 40b9ebb..c063fe7 100644
--- a/uint.go
+++ b/uint.go
@@ -19,6 +19,10 @@ func (i *uintValue) Set(s string) error {
return err
}
+func (i *uintValue) Type() string {
+ return "uint"
+}
+
func (i *uintValue) String() string { return fmt.Sprintf("%v", *i) }
// UintVar defines a uint flag with specified name, default value, and usage string.
diff --git a/uint16.go b/uint16.go
index 182dc40..ec14ab0 100644
--- a/uint16.go
+++ b/uint16.go
@@ -18,10 +18,15 @@ func (i *uint16Value) Set(s string) error {
*i = uint16Value(v)
return err
}
+
func (i *uint16Value) Get() interface{} {
return uint16(*i)
}
+func (i *uint16Value) Type() string {
+ return "uint16"
+}
+
// Uint16Var defines a uint flag with specified name, default value, and usage string.
// The argument p points to a uint variable in which to store the value of the flag.
func (f *FlagSet) Uint16Var(p *uint16, name string, value uint16, usage string) {
diff --git a/uint32.go b/uint32.go
index 165c8b2..05bc3bd 100644
--- a/uint32.go
+++ b/uint32.go
@@ -22,6 +22,10 @@ func (i *uint32Value) Get() interface{} {
return uint32(*i)
}
+func (i *uint32Value) Type() string {
+ return "uint32"
+}
+
// Uint32Var defines a uint32 flag with specified name, default value, and usage string.
// The argument p points to a uint32 variable in which to store the value of the flag.
func (f *FlagSet) Uint32Var(p *uint32, name string, value uint32, usage string) {
diff --git a/uint64.go b/uint64.go
index f41c5a2..99c7e80 100644
--- a/uint64.go
+++ b/uint64.go
@@ -19,6 +19,10 @@ func (i *uint64Value) Set(s string) error {
return err
}
+func (i *uint64Value) Type() string {
+ return "uint64"
+}
+
func (i *uint64Value) String() string { return fmt.Sprintf("%v", *i) }
// Uint64Var defines a uint64 flag with specified name, default value, and usage string.
diff --git a/uint8.go b/uint8.go
index 174f99c..6fef508 100644
--- a/uint8.go
+++ b/uint8.go
@@ -19,6 +19,10 @@ func (i *uint8Value) Set(s string) error {
return err
}
+func (i *uint8Value) Type() string {
+ return "uint8"
+}
+
func (i *uint8Value) String() string { return fmt.Sprintf("%v", *i) }
// Uint8Var defines a uint8 flag with specified name, default value, and usage string.