diff --git a/.gitignore b/.gitignore index 0026861..4eb156d 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,4 @@ _cgo_export.* _testmain.go *.exe +.idea \ No newline at end of file diff --git a/README.md b/README.md index 2da6e80..1a3f7df 100644 --- a/README.md +++ b/README.md @@ -18,20 +18,20 @@ post about it ## Documentation -[![GoDoc](https://img.shields.io/badge/godoc-reference-blue.svg)](http://godoc.org/github.com/gozelle/go-spew/spew) +[![GoDoc](https://img.shields.io/badge/godoc-reference-blue.svg)](http://godoc.org/github.com/gozelle/spew) Full `go doc` style documentation for the project can be viewed online without installing this package by using the excellent GoDoc site here: -http://godoc.org/github.com/gozelle/go-spew/spew +http://godoc.org/github.com/gozelle/spew You can also view the documentation locally once the package is installed with the `godoc` tool by running `godoc -http=":6060"` and pointing your browser to -http://localhost:6060/pkg/github.com/gozelle/go-spew/spew +http://localhost:6060/pkg/github.com/gozelle/spew ## Installation ```bash -$ go get -u github.com/gozelle/go-spew/spew +$ go get -u github.com/gozelle/spew ``` ## Quick Start @@ -39,7 +39,7 @@ $ go get -u github.com/gozelle/go-spew/spew Add this import line to the file you're working in: ```Go -import "github.com/gozelle/go-spew/spew" +import "github.com/gozelle/spew" ``` To dump a variable with full newlines, indentation, type, and pointer @@ -75,7 +75,7 @@ import ( "html" "net/http" - "github.com/gozelle/go-spew/spew" + "github.com/gozelle/spew" ) func handler(w http.ResponseWriter, r *http.Request) { diff --git a/spew/bypass.go b/bypass.go similarity index 100% rename from spew/bypass.go rename to bypass.go diff --git a/spew/bypasssafe.go b/bypasssafe.go similarity index 100% rename from spew/bypasssafe.go rename to bypasssafe.go diff --git a/spew/common.go b/common.go similarity index 100% rename from spew/common.go rename to common.go diff --git a/spew/common_test.go b/common_test.go similarity index 99% rename from spew/common_test.go rename to common_test.go index 1ee593c..2cf9d19 100644 --- a/spew/common_test.go +++ b/common_test.go @@ -21,7 +21,7 @@ import ( "reflect" "testing" - "github.com/gozelle/go-spew/spew" + "github.com/gozelle/spew" ) // custom type to test Stinger interface on non-pointer receiver. diff --git a/spew/config.go b/config.go similarity index 100% rename from spew/config.go rename to config.go diff --git a/spew/doc.go b/doc.go similarity index 100% rename from spew/doc.go rename to doc.go diff --git a/spew/dump.go b/dump.go similarity index 100% rename from spew/dump.go rename to dump.go diff --git a/spew/dump_test.go b/dump_test.go similarity index 99% rename from spew/dump_test.go rename to dump_test.go index 4471ee3..c4d1205 100644 --- a/spew/dump_test.go +++ b/dump_test.go @@ -67,7 +67,7 @@ import ( "testing" "unsafe" - "github.com/gozelle/go-spew/spew" + "github.com/gozelle/spew" ) // dumpTest is used to describe a test to be performed against the Dump method. diff --git a/spew/dumpcgo_test.go b/dumpcgo_test.go similarity index 98% rename from spew/dumpcgo_test.go rename to dumpcgo_test.go index 75940d9..a42f1a6 100644 --- a/spew/dumpcgo_test.go +++ b/dumpcgo_test.go @@ -27,7 +27,7 @@ package spew_test import ( "fmt" - "github.com/gozelle/go-spew/spew/testdata" + "github.com/gozelle/spew/testdata" ) func addCgoDumpTests() { diff --git a/spew/dumpnocgo_test.go b/dumpnocgo_test.go similarity index 97% rename from spew/dumpnocgo_test.go rename to dumpnocgo_test.go index 52a0971..9498d98 100644 --- a/spew/dumpnocgo_test.go +++ b/dumpnocgo_test.go @@ -16,6 +16,7 @@ // when either cgo is not supported or "-tags testcgo" is not added to the go // test command line. This file intentionally does not setup any cgo tests in // this scenario. +//go:build !cgo || !testcgo // +build !cgo !testcgo package spew_test diff --git a/spew/example_test.go b/example_test.go similarity index 99% rename from spew/example_test.go rename to example_test.go index 6e55dfa..7647d1e 100644 --- a/spew/example_test.go +++ b/example_test.go @@ -19,7 +19,7 @@ package spew_test import ( "fmt" - "github.com/gozelle/go-spew/spew" + "github.com/gozelle/spew" ) type Flag int diff --git a/spew/format.go b/format.go similarity index 99% rename from spew/format.go rename to format.go index b04edb7..dfab074 100644 --- a/spew/format.go +++ b/format.go @@ -46,15 +46,15 @@ type formatState struct { // function won't ever be called. func (f *formatState) buildDefaultFormat() (format string) { buf := bytes.NewBuffer(percentBytes) - + for _, flag := range supportedFlags { if f.fs.Flag(int(flag)) { buf.WriteRune(flag) } } - + buf.WriteRune('v') - + format = buf.String() return format } @@ -64,24 +64,24 @@ func (f *formatState) buildDefaultFormat() (format string) { // automatic deferral of all format strings this package doesn't support. func (f *formatState) constructOrigFormat(verb rune) (format string) { buf := bytes.NewBuffer(percentBytes) - + for _, flag := range supportedFlags { if f.fs.Flag(int(flag)) { buf.WriteRune(flag) } } - + if width, ok := f.fs.Width(); ok { buf.WriteString(strconv.Itoa(width)) } - + if precision, ok := f.fs.Precision(); ok { buf.Write(precisionBytes) buf.WriteString(strconv.Itoa(precision)) } - + buf.WriteRune(verb) - + format = buf.String() return format } @@ -109,7 +109,7 @@ func (f *formatState) formatPtr(v reflect.Value) { f.fs.Write(nilAngleBytes) return } - + // Remove pointers at or below the current depth from map used to detect // circular refs. for k, depth := range f.pointers { @@ -117,10 +117,10 @@ func (f *formatState) formatPtr(v reflect.Value) { delete(f.pointers, k) } } - + // Keep list of all dereferenced pointers to possibly show later. pointerChain := make([]uintptr, 0) - + // Figure out how many levels of indirection there are by derferencing // pointers and unpacking interfaces down the chain while detecting circular // references. @@ -142,7 +142,7 @@ func (f *formatState) formatPtr(v reflect.Value) { break } f.pointers[addr] = f.depth - + ve = ve.Elem() if ve.Kind() == reflect.Interface { if ve.IsNil() { @@ -152,7 +152,7 @@ func (f *formatState) formatPtr(v reflect.Value) { ve = ve.Elem() } } - + // Display type or indirection level depending on flags. if showTypes && !f.ignoreNextType { f.fs.Write(openParenBytes) @@ -167,7 +167,7 @@ func (f *formatState) formatPtr(v reflect.Value) { f.fs.Write([]byte(strings.Repeat("*", indirects))) f.fs.Write(closeAngleBytes) } - + // Display pointer information depending on flags. if f.fs.Flag('+') && (len(pointerChain) > 0) { f.fs.Write(openParenBytes) @@ -179,15 +179,15 @@ func (f *formatState) formatPtr(v reflect.Value) { } f.fs.Write(closeParenBytes) } - + // Display dereferenced value. switch { case nilFound: f.fs.Write(nilAngleBytes) - + case cycleFound: f.fs.Write(circularShortBytes) - + default: f.ignoreNextType = true f.format(ve) @@ -205,13 +205,13 @@ func (f *formatState) format(v reflect.Value) { f.fs.Write(invalidAngleBytes) return } - + // Handle pointers specially. if kind == reflect.Ptr { f.formatPtr(v) return } - + // Print type information unless already handled elsewhere. if !f.ignoreNextType && f.fs.Flag('#') { f.fs.Write(openParenBytes) @@ -219,7 +219,7 @@ func (f *formatState) format(v reflect.Value) { f.fs.Write(closeParenBytes) } f.ignoreNextType = false - + // Call Stringer/error interfaces if they exist and the handle methods // flag is enabled. if !f.cs.DisableMethods { @@ -229,40 +229,40 @@ func (f *formatState) format(v reflect.Value) { } } } - + switch kind { case reflect.Invalid: // Do nothing. We should never get here since invalid has already // been handled above. - + case reflect.Bool: printBool(f.fs, v.Bool()) - + case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int: printInt(f.fs, v.Int(), 10) - + case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint: printUint(f.fs, v.Uint(), 10) - + case reflect.Float32: printFloat(f.fs, v.Float(), 32) - + case reflect.Float64: printFloat(f.fs, v.Float(), 64) - + case reflect.Complex64: printComplex(f.fs, v.Complex(), 32) - + case reflect.Complex128: printComplex(f.fs, v.Complex(), 64) - + case reflect.Slice: if v.IsNil() { f.fs.Write(nilAngleBytes) break } fallthrough - + case reflect.Array: f.fs.Write(openBracketBytes) f.depth++ @@ -280,28 +280,28 @@ func (f *formatState) format(v reflect.Value) { } f.depth-- f.fs.Write(closeBracketBytes) - + case reflect.String: f.fs.Write([]byte(v.String())) - + case reflect.Interface: // The only time we should get here is for nil interfaces due to // unpackValue calls. if v.IsNil() { f.fs.Write(nilAngleBytes) } - + case reflect.Ptr: // Do nothing. We should never get here since pointers have already // been handled above. - + case reflect.Map: // nil maps should be indicated as different than empty maps if v.IsNil() { f.fs.Write(nilAngleBytes) break } - + f.fs.Write(openMapBytes) f.depth++ if (f.cs.MaxDepth != 0) && (f.depth > f.cs.MaxDepth) { @@ -324,7 +324,7 @@ func (f *formatState) format(v reflect.Value) { } f.depth-- f.fs.Write(closeMapBytes) - + case reflect.Struct: numFields := v.NumField() f.fs.Write(openBraceBytes) @@ -347,13 +347,13 @@ func (f *formatState) format(v reflect.Value) { } f.depth-- f.fs.Write(closeBraceBytes) - + case reflect.Uintptr: printHexPtr(f.fs, uintptr(v.Uint())) - + case reflect.UnsafePointer, reflect.Chan, reflect.Func: printHexPtr(f.fs, v.Pointer()) - + // There were not any other types at the time this code was written, but // fall back to letting the default fmt package handle it if any get added. default: @@ -370,14 +370,14 @@ func (f *formatState) format(v reflect.Value) { // details. func (f *formatState) Format(fs fmt.State, verb rune) { f.fs = fs - + // Use standard formatting for verbs that are not v. if verb != 'v' { format := f.constructOrigFormat(verb) fmt.Fprintf(fs, format, f.value) return } - + if f.value == nil { if fs.Flag('#') { fs.Write(interfaceBytes) @@ -385,7 +385,7 @@ func (f *formatState) Format(fs fmt.State, verb rune) { fs.Write(nilAngleBytes) return } - + f.format(reflect.ValueOf(f.value)) } diff --git a/spew/format_test.go b/format_test.go similarity index 99% rename from spew/format_test.go rename to format_test.go index bba4bbf..75566c9 100644 --- a/spew/format_test.go +++ b/format_test.go @@ -72,7 +72,7 @@ import ( "testing" "unsafe" - "github.com/gozelle/go-spew/spew" + "github.com/gozelle/spew" ) // formatterTest is used to describe a test to be performed against NewFormatter. diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..ec1dd96 --- /dev/null +++ b/go.mod @@ -0,0 +1,3 @@ +module github.com/gozelle/spew + +go 1.18 diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..e69de29 diff --git a/spew/internal_test.go b/internal_test.go similarity index 99% rename from spew/internal_test.go rename to internal_test.go index e312b4f..cf4b0cd 100644 --- a/spew/internal_test.go +++ b/internal_test.go @@ -53,7 +53,7 @@ func (dfs *dummyFmtState) Width() (int, bool) { // API. func TestInvalidReflectValue(t *testing.T) { i := 1 - + // Dump invalid reflect value. v := new(reflect.Value) buf := new(bytes.Buffer) @@ -65,7 +65,7 @@ func TestInvalidReflectValue(t *testing.T) { t.Errorf("InvalidReflectValue #%d\n got: %s want: %s", i, s, want) } i++ - + // Formatter invalid reflect value. buf2 := new(dummyFmtState) f := formatState{value: *v, cs: &Config, fs: buf2} diff --git a/spew/internalunsafe_test.go b/internalunsafe_test.go similarity index 97% rename from spew/internalunsafe_test.go rename to internalunsafe_test.go index 80dc221..a82b5bf 100644 --- a/spew/internalunsafe_test.go +++ b/internalunsafe_test.go @@ -16,6 +16,7 @@ // when the code is not running on Google App Engine, compiled by GopherJS, and // "-tags safe" is not added to the go build command line. The "disableunsafe" // tag is deprecated and thus should not be used. +//go:build !js && !appengine && !safe && !disableunsafe && go1.4 // +build !js,!appengine,!safe,!disableunsafe,go1.4 /* @@ -51,7 +52,7 @@ func changeKind(v *reflect.Value, readOnly bool) { // the language. func TestAddedReflectValue(t *testing.T) { i := 1 - + // Dump using a reflect.Value that is exported. v := reflect.ValueOf(int8(5)) changeKind(&v, false) @@ -64,7 +65,7 @@ func TestAddedReflectValue(t *testing.T) { t.Errorf("TestAddedReflectValue #%d\n got: %s want: %s", i, s, want) } i++ - + // Dump using a reflect.Value that is not exported. changeKind(&v, true) buf.Reset() @@ -75,7 +76,7 @@ func TestAddedReflectValue(t *testing.T) { t.Errorf("TestAddedReflectValue #%d\n got: %s want: %s", i, s, want) } i++ - + // Formatter using a reflect.Value that is exported. changeKind(&v, false) buf2 := new(dummyFmtState) @@ -87,7 +88,7 @@ func TestAddedReflectValue(t *testing.T) { t.Errorf("TestAddedReflectValue #%d got: %s want: %s", i, s, want) } i++ - + // Formatter using a reflect.Value that is not exported. changeKind(&v, true) buf2.Reset() diff --git a/spew/spew.go b/spew.go similarity index 100% rename from spew/spew.go rename to spew.go diff --git a/spew/spew_test.go b/spew_test.go similarity index 99% rename from spew/spew_test.go rename to spew_test.go index e0a0687..458adc3 100644 --- a/spew/spew_test.go +++ b/spew_test.go @@ -23,7 +23,7 @@ import ( "os" "testing" - "github.com/gozelle/go-spew/spew" + "github.com/gozelle/spew" ) // spewFunc is used to identify which public function of the spew package or diff --git a/test_coverage.txt b/test_coverage.txt index 473de3e..699920d 100644 --- a/test_coverage.txt +++ b/test_coverage.txt @@ -1,61 +1,61 @@ -github.com/gozelle/go-spew/spew/dump.go dumpState.dump 100.00% (88/88) -github.com/gozelle/go-spew/spew/format.go formatState.format 100.00% (82/82) -github.com/gozelle/go-spew/spew/format.go formatState.formatPtr 100.00% (52/52) -github.com/gozelle/go-spew/spew/dump.go dumpState.dumpPtr 100.00% (44/44) -github.com/gozelle/go-spew/spew/dump.go dumpState.dumpSlice 100.00% (39/39) -github.com/gozelle/go-spew/spew/common.go handleMethods 100.00% (30/30) -github.com/gozelle/go-spew/spew/common.go printHexPtr 100.00% (18/18) -github.com/gozelle/go-spew/spew/common.go unsafeReflectValue 100.00% (13/13) -github.com/gozelle/go-spew/spew/format.go formatState.constructOrigFormat 100.00% (12/12) -github.com/gozelle/go-spew/spew/dump.go fdump 100.00% (11/11) -github.com/gozelle/go-spew/spew/format.go formatState.Format 100.00% (11/11) -github.com/gozelle/go-spew/spew/common.go init 100.00% (10/10) -github.com/gozelle/go-spew/spew/common.go printComplex 100.00% (9/9) -github.com/gozelle/go-spew/spew/common.go valuesSorter.Less 100.00% (8/8) -github.com/gozelle/go-spew/spew/format.go formatState.buildDefaultFormat 100.00% (7/7) -github.com/gozelle/go-spew/spew/format.go formatState.unpackValue 100.00% (5/5) -github.com/gozelle/go-spew/spew/dump.go dumpState.indent 100.00% (4/4) -github.com/gozelle/go-spew/spew/common.go catchPanic 100.00% (4/4) -github.com/gozelle/go-spew/spew/config.go ConfigState.convertArgs 100.00% (4/4) -github.com/gozelle/go-spew/spew/spew.go convertArgs 100.00% (4/4) -github.com/gozelle/go-spew/spew/format.go newFormatter 100.00% (3/3) -github.com/gozelle/go-spew/spew/dump.go Sdump 100.00% (3/3) -github.com/gozelle/go-spew/spew/common.go printBool 100.00% (3/3) -github.com/gozelle/go-spew/spew/common.go sortValues 100.00% (3/3) -github.com/gozelle/go-spew/spew/config.go ConfigState.Sdump 100.00% (3/3) -github.com/gozelle/go-spew/spew/dump.go dumpState.unpackValue 100.00% (3/3) -github.com/gozelle/go-spew/spew/spew.go Printf 100.00% (1/1) -github.com/gozelle/go-spew/spew/spew.go Println 100.00% (1/1) -github.com/gozelle/go-spew/spew/spew.go Sprint 100.00% (1/1) -github.com/gozelle/go-spew/spew/spew.go Sprintf 100.00% (1/1) -github.com/gozelle/go-spew/spew/spew.go Sprintln 100.00% (1/1) -github.com/gozelle/go-spew/spew/common.go printFloat 100.00% (1/1) -github.com/gozelle/go-spew/spew/config.go NewDefaultConfig 100.00% (1/1) -github.com/gozelle/go-spew/spew/common.go printInt 100.00% (1/1) -github.com/gozelle/go-spew/spew/common.go printUint 100.00% (1/1) -github.com/gozelle/go-spew/spew/common.go valuesSorter.Len 100.00% (1/1) -github.com/gozelle/go-spew/spew/common.go valuesSorter.Swap 100.00% (1/1) -github.com/gozelle/go-spew/spew/config.go ConfigState.Errorf 100.00% (1/1) -github.com/gozelle/go-spew/spew/config.go ConfigState.Fprint 100.00% (1/1) -github.com/gozelle/go-spew/spew/config.go ConfigState.Fprintf 100.00% (1/1) -github.com/gozelle/go-spew/spew/config.go ConfigState.Fprintln 100.00% (1/1) -github.com/gozelle/go-spew/spew/config.go ConfigState.Print 100.00% (1/1) -github.com/gozelle/go-spew/spew/config.go ConfigState.Printf 100.00% (1/1) -github.com/gozelle/go-spew/spew/config.go ConfigState.Println 100.00% (1/1) -github.com/gozelle/go-spew/spew/config.go ConfigState.Sprint 100.00% (1/1) -github.com/gozelle/go-spew/spew/config.go ConfigState.Sprintf 100.00% (1/1) -github.com/gozelle/go-spew/spew/config.go ConfigState.Sprintln 100.00% (1/1) -github.com/gozelle/go-spew/spew/config.go ConfigState.NewFormatter 100.00% (1/1) -github.com/gozelle/go-spew/spew/config.go ConfigState.Fdump 100.00% (1/1) -github.com/gozelle/go-spew/spew/config.go ConfigState.Dump 100.00% (1/1) -github.com/gozelle/go-spew/spew/dump.go Fdump 100.00% (1/1) -github.com/gozelle/go-spew/spew/dump.go Dump 100.00% (1/1) -github.com/gozelle/go-spew/spew/spew.go Fprintln 100.00% (1/1) -github.com/gozelle/go-spew/spew/format.go NewFormatter 100.00% (1/1) -github.com/gozelle/go-spew/spew/spew.go Errorf 100.00% (1/1) -github.com/gozelle/go-spew/spew/spew.go Fprint 100.00% (1/1) -github.com/gozelle/go-spew/spew/spew.go Fprintf 100.00% (1/1) -github.com/gozelle/go-spew/spew/spew.go Print 100.00% (1/1) -github.com/gozelle/go-spew/spew ------------------------------- 100.00% (505/505) +github.com/gozelle/spew/dump.go dumpState.dump 100.00% (88/88) +github.com/gozelle/spew/format.go formatState.format 100.00% (82/82) +github.com/gozelle/spew/format.go formatState.formatPtr 100.00% (52/52) +github.com/gozelle/spew/dump.go dumpState.dumpPtr 100.00% (44/44) +github.com/gozelle/spew/dump.go dumpState.dumpSlice 100.00% (39/39) +github.com/gozelle/spew/common.go handleMethods 100.00% (30/30) +github.com/gozelle/spew/common.go printHexPtr 100.00% (18/18) +github.com/gozelle/spew/common.go unsafeReflectValue 100.00% (13/13) +github.com/gozelle/spew/format.go formatState.constructOrigFormat 100.00% (12/12) +github.com/gozelle/spew/dump.go fdump 100.00% (11/11) +github.com/gozelle/spew/format.go formatState.Format 100.00% (11/11) +github.com/gozelle/spew/common.go init 100.00% (10/10) +github.com/gozelle/spew/common.go printComplex 100.00% (9/9) +github.com/gozelle/spew/common.go valuesSorter.Less 100.00% (8/8) +github.com/gozelle/spew/format.go formatState.buildDefaultFormat 100.00% (7/7) +github.com/gozelle/spew/format.go formatState.unpackValue 100.00% (5/5) +github.com/gozelle/spew/dump.go dumpState.indent 100.00% (4/4) +github.com/gozelle/spew/common.go catchPanic 100.00% (4/4) +github.com/gozelle/spew/config.go ConfigState.convertArgs 100.00% (4/4) +github.com/gozelle/spew/spew.go convertArgs 100.00% (4/4) +github.com/gozelle/spew/format.go newFormatter 100.00% (3/3) +github.com/gozelle/spew/dump.go Sdump 100.00% (3/3) +github.com/gozelle/spew/common.go printBool 100.00% (3/3) +github.com/gozelle/spew/common.go sortValues 100.00% (3/3) +github.com/gozelle/spew/config.go ConfigState.Sdump 100.00% (3/3) +github.com/gozelle/spew/dump.go dumpState.unpackValue 100.00% (3/3) +github.com/gozelle/spew/spew.go Printf 100.00% (1/1) +github.com/gozelle/spew/spew.go Println 100.00% (1/1) +github.com/gozelle/spew/spew.go Sprint 100.00% (1/1) +github.com/gozelle/spew/spew.go Sprintf 100.00% (1/1) +github.com/gozelle/spew/spew.go Sprintln 100.00% (1/1) +github.com/gozelle/spew/common.go printFloat 100.00% (1/1) +github.com/gozelle/spew/config.go NewDefaultConfig 100.00% (1/1) +github.com/gozelle/spew/common.go printInt 100.00% (1/1) +github.com/gozelle/spew/common.go printUint 100.00% (1/1) +github.com/gozelle/spew/common.go valuesSorter.Len 100.00% (1/1) +github.com/gozelle/spew/common.go valuesSorter.Swap 100.00% (1/1) +github.com/gozelle/spew/config.go ConfigState.Errorf 100.00% (1/1) +github.com/gozelle/spew/config.go ConfigState.Fprint 100.00% (1/1) +github.com/gozelle/spew/config.go ConfigState.Fprintf 100.00% (1/1) +github.com/gozelle/spew/config.go ConfigState.Fprintln 100.00% (1/1) +github.com/gozelle/spew/config.go ConfigState.Print 100.00% (1/1) +github.com/gozelle/spew/config.go ConfigState.Printf 100.00% (1/1) +github.com/gozelle/spew/config.go ConfigState.Println 100.00% (1/1) +github.com/gozelle/spew/config.go ConfigState.Sprint 100.00% (1/1) +github.com/gozelle/spew/config.go ConfigState.Sprintf 100.00% (1/1) +github.com/gozelle/spew/config.go ConfigState.Sprintln 100.00% (1/1) +github.com/gozelle/spew/config.go ConfigState.NewFormatter 100.00% (1/1) +github.com/gozelle/spew/config.go ConfigState.Fdump 100.00% (1/1) +github.com/gozelle/spew/config.go ConfigState.Dump 100.00% (1/1) +github.com/gozelle/spew/dump.go Fdump 100.00% (1/1) +github.com/gozelle/spew/dump.go Dump 100.00% (1/1) +github.com/gozelle/spew/spew.go Fprintln 100.00% (1/1) +github.com/gozelle/spew/format.go NewFormatter 100.00% (1/1) +github.com/gozelle/spew/spew.go Errorf 100.00% (1/1) +github.com/gozelle/spew/spew.go Fprint 100.00% (1/1) +github.com/gozelle/spew/spew.go Fprintf 100.00% (1/1) +github.com/gozelle/spew/spew.go Print 100.00% (1/1) +github.com/gozelle/spew ------------------------------- 100.00% (505/505) diff --git a/spew/testdata/dumpcgo.go b/testdata/dumpcgo.go similarity index 100% rename from spew/testdata/dumpcgo.go rename to testdata/dumpcgo.go