Browse Source

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.
Dave Collins 12 years ago
parent
commit
3a62f585a7
2 changed files with 17 additions and 0 deletions
  1. 9 0
      spew/config.go
  2. 8 0
      spew/dump.go

+ 9 - 0
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.

+ 8 - 0
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