]>
Commit | Line | Data |
---|---|---|
bae9f6d2 JC |
1 | /* |
2 | * Copyright (c) 2013-2016 Dave Collins <dave@davec.name> | |
3 | * | |
4 | * Permission to use, copy, modify, and distribute this software for any | |
5 | * purpose with or without fee is hereby granted, provided that the above | |
6 | * copyright notice and this permission notice appear in all copies. | |
7 | * | |
8 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
9 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
10 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
11 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
12 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
13 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
14 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
15 | */ | |
16 | ||
17 | package spew | |
18 | ||
19 | import ( | |
20 | "fmt" | |
21 | "io" | |
22 | ) | |
23 | ||
24 | // Errorf is a wrapper for fmt.Errorf that treats each argument as if it were | |
25 | // passed with a default Formatter interface returned by NewFormatter. It | |
26 | // returns the formatted string as a value that satisfies error. See | |
27 | // NewFormatter for formatting details. | |
28 | // | |
29 | // This function is shorthand for the following syntax: | |
30 | // | |
31 | // fmt.Errorf(format, spew.NewFormatter(a), spew.NewFormatter(b)) | |
32 | func Errorf(format string, a ...interface{}) (err error) { | |
33 | return fmt.Errorf(format, convertArgs(a)...) | |
34 | } | |
35 | ||
36 | // Fprint is a wrapper for fmt.Fprint that treats each argument as if it were | |
37 | // passed with a default Formatter interface returned by NewFormatter. It | |
38 | // returns the number of bytes written and any write error encountered. See | |
39 | // NewFormatter for formatting details. | |
40 | // | |
41 | // This function is shorthand for the following syntax: | |
42 | // | |
43 | // fmt.Fprint(w, spew.NewFormatter(a), spew.NewFormatter(b)) | |
44 | func Fprint(w io.Writer, a ...interface{}) (n int, err error) { | |
45 | return fmt.Fprint(w, convertArgs(a)...) | |
46 | } | |
47 | ||
48 | // Fprintf is a wrapper for fmt.Fprintf that treats each argument as if it were | |
49 | // passed with a default Formatter interface returned by NewFormatter. It | |
50 | // returns the number of bytes written and any write error encountered. See | |
51 | // NewFormatter for formatting details. | |
52 | // | |
53 | // This function is shorthand for the following syntax: | |
54 | // | |
55 | // fmt.Fprintf(w, format, spew.NewFormatter(a), spew.NewFormatter(b)) | |
56 | func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) { | |
57 | return fmt.Fprintf(w, format, convertArgs(a)...) | |
58 | } | |
59 | ||
60 | // Fprintln is a wrapper for fmt.Fprintln that treats each argument as if it | |
61 | // passed with a default Formatter interface returned by NewFormatter. See | |
62 | // NewFormatter for formatting details. | |
63 | // | |
64 | // This function is shorthand for the following syntax: | |
65 | // | |
66 | // fmt.Fprintln(w, spew.NewFormatter(a), spew.NewFormatter(b)) | |
67 | func Fprintln(w io.Writer, a ...interface{}) (n int, err error) { | |
68 | return fmt.Fprintln(w, convertArgs(a)...) | |
69 | } | |
70 | ||
71 | // Print is a wrapper for fmt.Print that treats each argument as if it were | |
72 | // passed with a default Formatter interface returned by NewFormatter. It | |
73 | // returns the number of bytes written and any write error encountered. See | |
74 | // NewFormatter for formatting details. | |
75 | // | |
76 | // This function is shorthand for the following syntax: | |
77 | // | |
78 | // fmt.Print(spew.NewFormatter(a), spew.NewFormatter(b)) | |
79 | func Print(a ...interface{}) (n int, err error) { | |
80 | return fmt.Print(convertArgs(a)...) | |
81 | } | |
82 | ||
83 | // Printf is a wrapper for fmt.Printf that treats each argument as if it were | |
84 | // passed with a default Formatter interface returned by NewFormatter. It | |
85 | // returns the number of bytes written and any write error encountered. See | |
86 | // NewFormatter for formatting details. | |
87 | // | |
88 | // This function is shorthand for the following syntax: | |
89 | // | |
90 | // fmt.Printf(format, spew.NewFormatter(a), spew.NewFormatter(b)) | |
91 | func Printf(format string, a ...interface{}) (n int, err error) { | |
92 | return fmt.Printf(format, convertArgs(a)...) | |
93 | } | |
94 | ||
95 | // Println is a wrapper for fmt.Println that treats each argument as if it were | |
96 | // passed with a default Formatter interface returned by NewFormatter. It | |
97 | // returns the number of bytes written and any write error encountered. See | |
98 | // NewFormatter for formatting details. | |
99 | // | |
100 | // This function is shorthand for the following syntax: | |
101 | // | |
102 | // fmt.Println(spew.NewFormatter(a), spew.NewFormatter(b)) | |
103 | func Println(a ...interface{}) (n int, err error) { | |
104 | return fmt.Println(convertArgs(a)...) | |
105 | } | |
106 | ||
107 | // Sprint is a wrapper for fmt.Sprint that treats each argument as if it were | |
108 | // passed with a default Formatter interface returned by NewFormatter. It | |
109 | // returns the resulting string. See NewFormatter for formatting details. | |
110 | // | |
111 | // This function is shorthand for the following syntax: | |
112 | // | |
113 | // fmt.Sprint(spew.NewFormatter(a), spew.NewFormatter(b)) | |
114 | func Sprint(a ...interface{}) string { | |
115 | return fmt.Sprint(convertArgs(a)...) | |
116 | } | |
117 | ||
118 | // Sprintf is a wrapper for fmt.Sprintf that treats each argument as if it were | |
119 | // passed with a default Formatter interface returned by NewFormatter. It | |
120 | // returns the resulting string. See NewFormatter for formatting details. | |
121 | // | |
122 | // This function is shorthand for the following syntax: | |
123 | // | |
124 | // fmt.Sprintf(format, spew.NewFormatter(a), spew.NewFormatter(b)) | |
125 | func Sprintf(format string, a ...interface{}) string { | |
126 | return fmt.Sprintf(format, convertArgs(a)...) | |
127 | } | |
128 | ||
129 | // Sprintln is a wrapper for fmt.Sprintln that treats each argument as if it | |
130 | // were passed with a default Formatter interface returned by NewFormatter. It | |
131 | // returns the resulting string. See NewFormatter for formatting details. | |
132 | // | |
133 | // This function is shorthand for the following syntax: | |
134 | // | |
135 | // fmt.Sprintln(spew.NewFormatter(a), spew.NewFormatter(b)) | |
136 | func Sprintln(a ...interface{}) string { | |
137 | return fmt.Sprintln(convertArgs(a)...) | |
138 | } | |
139 | ||
140 | // convertArgs accepts a slice of arguments and returns a slice of the same | |
141 | // length with each argument converted to a default spew Formatter interface. | |
142 | func convertArgs(args []interface{}) (formatters []interface{}) { | |
143 | formatters = make([]interface{}, len(args)) | |
144 | for index, arg := range args { | |
145 | formatters[index] = NewFormatter(arg) | |
146 | } | |
147 | return formatters | |
148 | } |