diff --git a/spew/config.go b/spew/config.go index 9296e67..80e8d74 100644 --- a/spew/config.go +++ b/spew/config.go @@ -17,6 +17,7 @@ package spew import ( + "bytes" "fmt" "io" "os" @@ -247,6 +248,14 @@ func (c *ConfigState) Dump(a ...interface{}) { fdump(c, os.Stdout, a...) } +// Sdump returns a string with the passed arguments formatted exactly the same +// as Dump. +func (c *ConfigState) Sdump(a ...interface{}) string { + var buf bytes.Buffer + fdump(c, &buf, a...) + return buf.String() +} + // convertArgs accepts a slice of arguments and returns a slice of the same // length with each argument converted to a spew Formatter interface using // the ConfigState associated with s. diff --git a/spew/dump.go b/spew/dump.go index bf61419..7286241 100644 --- a/spew/dump.go +++ b/spew/dump.go @@ -363,6 +363,14 @@ func Fdump(w io.Writer, a ...interface{}) { fdump(&Config, w, a...) } +// Sdump returns a string with the passed arguments formatted exactly the same +// as Dump. +func Sdump(a ...interface{}) string { + var buf bytes.Buffer + fdump(&Config, &buf, a...) + return buf.String() +} + /* Dump displays the passed parameters to standard out with newlines, customizable indentation, and additional debug information such as complete types and all