summaryrefslogtreecommitdiff
path: root/spew/dump.go
AgeCommit message (Collapse)Author
2024-01-14flatten pathsv1.1.3Jeff Carr
Signed-off-by: Jeff Carr <[email protected]>
2017-07-11travis: Use gometalinterDavid Hill
2016-10-29Update license copyright years.Dave Collins
Several files had been updated since the listed years. This updates them accordingly.
2016-10-28Adds new config options:Alexander Staubo
DisablePointerAddresses: Specifies whether to disable the printing of pointer addresses. DisableCapacities specifies whether to disable the printing of capacities for arrays, slices, maps and channels. These are useful when diffing data structures in tests. Printing pointers and capacities would otherwise lead to false negatives.
2015-11-05Add logic to deal with reflect pkg changes on tip.Dave Collins
This commit adds logic to gracefully the internal reflect.Value flag bit changes as of golang commit adf9b30e5594 while maintaining support all the back to Go 1.0. It accomplishes this by adding code to the init time inspection to detect the change and set the flag positions accordingly. While here, also removes a TODO comment since it was already done previously.
2015-06-19Add support for limited mode without unsafe pkg.Dave Collins
This commit adds support for compiling spew without the unsafe package. When compiled without the unsafe package, some of the more advanced features such as invoking stringers on pointers from non-pointer variables and unexported struct fields are not available. By default, spew will be compiled in the limited mode for Google App Engine since the unsafe package is not available there. Additionally, spew can be compiled without the unsafe package manually by specifying the "disableunsafe" build tag. Finally, a new package-level constant named "UnsafeDisabled" has been exposed which can be used to programmatically determine if spew was compiled with access to the unsafe package.
2015-04-10Enable methods to sort map keys and spew itself as last resortTim Hockin
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.
2015-01-19make nil maps appear different than empty mapsdeads2k
2014-05-05Dump non-zero len and cap for applicable types.Josh Rickmar
Closes #16.
2013-11-14Reorganize the new map key sorting functionality.Dave Collins
This commit moves the new code related to sorting reflect.Value items into common.go since it is accessed by both the formatter and the dumper. It also adds comments to the new functions and unexports SortValues since it should be an internal function only.
2013-11-14Fix a few style issues pointed out by golint.Dave Collins
2013-10-28dump: make SortKeys default to string representation instead of nothingPatrick Mezard
The previous version of SortKeys was sorting only native types. Now, if the type is unknown it defaults to its reflect.Value.String() representation which at least guarantees display stability.
2013-10-27config: add SortKeys option to sort native map keys before displayPatrick Mezard
If ConfigState.SortKeys is true, then dump and format will sort map keys before displaying them. Only native types (bool, ints, uint, uintptr, string) are supported, other slices are left unchanged. The motivation is to have more diffable output, mostly for test purpose.
2013-09-21Add better support for dumping cgo char arrays.Dave Collins
This commit adds support for dumping a few cgo types like hexdump -C as requested in issue #11. In particular, it now handles char [#], unsigned char [#], and uint8_t [#].
2013-09-09Detect nil slices and print them as <nil>.Dave Collins
This commit modifies the code to detect nil slices and display them as <nil> (as opposed to simply empty slices). For most instances a nil slice can be treated the same as an empty slice, but there is a difference and things like reflect.DeepEqual notice. This change makes it clear whether the type in question is a nil slice or an empty slice.
2013-03-27Fix incorrect val display on packed nil interfaces.Dave Collins
This was reported by shurcooL as issue #12.
2013-03-11Update docs for new Sdump function.Dave Collins
2013-03-11Add support for Sdump.Dave Collins
This commit adds a function named Sdump which works exactly like Dump and Fdump except it returns the formatted output as a string. This serves the same purpose as the the Sprint* family of functions.
2013-03-08Update docs for new byte array and slice behavior.Dave Collins
2013-03-08Dump byte arrays and slices like hexdump -C.Dave Collins
This commit modifies the Dump family functions to output byte arrays and slices like hexdump -C as specified in issue #9.
2013-03-08Modify printInt and printUint to accept base.Dave Collins
This paves the way to improve how byte arrays are output as well as increases the flexibily of the functions.
2013-02-03Rename pad function to indent.Dave Collins
The name indent better describes the function. This also will help differentiate the function from planned functions that are intended to perform padding for the purposes of aligning fields, types, and values.
2013-01-20Improve invalid reflect value handling.Dave Collins
It was previously possible for an invalid reflect value to lead to a panic in certain obscure cases. Rather than adding multiple checks for the invalid reflect value, handle invalid reflect values immediately.
2013-01-17Implement support for %#v and %#+v in Formatter.Dave Collins
This commit implements feature request #3. In particular, it allows the formatter to respond to %#v and %#+v. The # flag (%#v) adds type information to the output and the combination of the # and + flags (%#+v) adds both type information and pointer information. This allows the consumer a choice between displaying types, pointer information, or both.
2013-01-13Fix a few comment typos and improve consistency.Dave Collins
2013-01-12Fix incorrect type display on nil pointers.Dave Collins
This was reported by korschak as issue #4 who also pinpointed the issue and provided a patch.
2013-01-12Implement support for unqiue config instances.Dave Collins
This commit adds a new type, SpewState, which can be used to create instances with unique configuration options. The methods of SpewState are equivalent to the top-level functions. Full documentation and examples are included.
2013-01-10Add config pointers to format and dump states.Dave Collins
This paves the way to support individual configuration options through a separate type while still providing the simple global config and package level methods.
2013-01-08Initial implementation.Dave Collins