defaultIsZeroValue returns true if the default value for this flag represents a zero value.
()
| 557 | // defaultIsZeroValue returns true if the default value for this flag represents |
| 558 | // a zero value. |
| 559 | func (f *Flag) defaultIsZeroValue() bool { |
| 560 | switch f.Value.(type) { |
| 561 | case boolFlag: |
| 562 | return f.DefValue == "false" || f.DefValue == "" |
| 563 | case *durationValue: |
| 564 | // Beginning in Go 1.7, duration zero values are "0s" |
| 565 | return f.DefValue == "0" || f.DefValue == "0s" |
| 566 | case *intValue, *int8Value, *int32Value, *int64Value, *uintValue, *uint8Value, *uint16Value, *uint32Value, *uint64Value, *countValue, *float32Value, *float64Value: |
| 567 | return f.DefValue == "0" |
| 568 | case *stringValue: |
| 569 | return f.DefValue == "" |
| 570 | case *ipValue, *ipMaskValue, *ipNetValue: |
| 571 | return f.DefValue == "<nil>" |
| 572 | case *intSliceValue, *stringSliceValue, *stringArrayValue: |
| 573 | return f.DefValue == "[]" |
| 574 | default: |
| 575 | switch f.DefValue { |
| 576 | case "false": |
| 577 | return true |
| 578 | case "<nil>": |
| 579 | return true |
| 580 | case "": |
| 581 | return true |
| 582 | case "0": |
| 583 | return true |
| 584 | } |
| 585 | return false |
| 586 | } |
| 587 | } |
| 588 | |
| 589 | // UnquoteUsage extracts a back-quoted name from the usage |
| 590 | // string for a flag and returns it and the un-quoted usage. |