summaryrefslogtreecommitdiff
path: root/spew
diff options
context:
space:
mode:
authorDave Collins <[email protected]>2013-03-11 18:15:28 -0500
committerDave Collins <[email protected]>2013-03-11 18:15:28 -0500
commit3a62f585a795096661480fd3eed87a505dac5d09 (patch)
tree29ae7bb27a0aecb223b2f9207feee7651f5c3667 /spew
parent9b87fb3e12f244b6e1d4575c39aeb2761deb5f61 (diff)
Add support for Sdump.
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.
Diffstat (limited to 'spew')
-rw-r--r--spew/config.go9
-rw-r--r--spew/dump.go8
2 files changed, 17 insertions, 0 deletions
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