From 3a62f585a795096661480fd3eed87a505dac5d09 Mon Sep 17 00:00:00 2001 From: Dave Collins Date: Mon, 11 Mar 2013 18:15:28 -0500 Subject: 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. --- spew/config.go | 9 +++++++++ spew/dump.go | 8 ++++++++ 2 files changed, 17 insertions(+) (limited to 'spew') 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 -- cgit v1.2.3