diff options
| author | Tim Hockin <[email protected]> | 2015-03-31 13:55:04 -0700 |
|---|---|---|
| committer | Tim Hockin <[email protected]> | 2015-04-10 08:46:42 -0700 |
| commit | 3e6e67c4dcea3ac2f25fd4731abc0e1deaf36216 (patch) | |
| tree | 42e0d210e3ed2efe1cc4e931135d0956398de246 /spew/config.go | |
| parent | fc32781af5e85e548d3f1abaf0fa3dbe8a72495c (diff) | |
Enable methods to sort map keys and spew itself as last resort
If enabled by flags, try to use methods to stringify map keys and sort on that.
If we can't use primitive sorting and we can't use methods, we can still fall
back on spew itself. If SpewKeys is enabled, use Sprintf("%#v") to generate a
string and sort by that.
Diffstat (limited to 'spew/config.go')
| -rw-r--r-- | spew/config.go | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/spew/config.go b/spew/config.go index e516675..9e21b38 100644 --- a/spew/config.go +++ b/spew/config.go @@ -76,10 +76,16 @@ type ConfigState struct { // SortKeys specifies map keys should be sorted before being printed. Use // this to have a more deterministic, diffable output. Note that only - // native types (bool, int, uint, floats, uintptr and string) are supported - // with other types sorted according to the reflect.Value.String() output - // which guarantees display stability. + // native types (bool, int, uint, floats, uintptr and string) and types + // that support the error or Stringer interfaces (if methods are + // enabled) are supported, with other types sorted according to the + // reflect.Value.String() output which guarantees display stability. SortKeys bool + + // SpewKeys specifies that, as a last resort attempt, map keys should + // be spewed to strings and sorted by those strings. This is only + // considered if SortKeys is true. + SpewKeys bool } // Config is the active configuration of the top-level functions. |
