package pflag

import 

// -- uint Value
type uintValue uint

func newUintValue( uint,  *uint) *uintValue {
	* = 
	return (*uintValue)()
}

func ( *uintValue) ( string) error {
	,  := strconv.ParseUint(, 0, 64)
	* = uintValue()
	return 
}

func ( *uintValue) () string {
	return "uint"
}

func ( *uintValue) () string { return strconv.FormatUint(uint64(*), 10) }

func uintConv( string) (interface{}, error) {
	,  := strconv.ParseUint(, 0, 0)
	if  != nil {
		return 0, 
	}
	return uint(), nil
}

// GetUint return the uint value of a flag with the given name
func ( *FlagSet) ( string) (uint, error) {
	,  := .getFlagType(, "uint", uintConv)
	if  != nil {
		return 0, 
	}
	return .(uint), nil
}

// UintVar 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 ( *FlagSet) ( *uint,  string,  uint,  string) {
	.VarP(newUintValue(, ), , "", )
}

// UintVarP is like UintVar, but accepts a shorthand letter that can be used after a single dash.
func ( *FlagSet) ( *uint, ,  string,  uint,  string) {
	.VarP(newUintValue(, ), , , )
}

// UintVar 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 ( *uint,  string,  uint,  string) {
	CommandLine.VarP(newUintValue(, ), , "", )
}

// UintVarP is like UintVar, but accepts a shorthand letter that can be used after a single dash.
func ( *uint, ,  string,  uint,  string) {
	CommandLine.VarP(newUintValue(, ), , , )
}

// Uint defines a uint flag with specified name, default value, and usage string.
// The return value is the address of a uint  variable that stores the value of the flag.
func ( *FlagSet) ( string,  uint,  string) *uint {
	 := new(uint)
	.UintVarP(, , "", , )
	return 
}

// UintP is like Uint, but accepts a shorthand letter that can be used after a single dash.
func ( *FlagSet) (,  string,  uint,  string) *uint {
	 := new(uint)
	.UintVarP(, , , , )
	return 
}

// Uint defines a uint flag with specified name, default value, and usage string.
// The return value is the address of a uint  variable that stores the value of the flag.
func ( string,  uint,  string) *uint {
	return CommandLine.UintP(, "", , )
}

// UintP is like Uint, but accepts a shorthand letter that can be used after a single dash.
func (,  string,  uint,  string) *uint {
	return CommandLine.UintP(, , , )
}