Documentation ¶
Overview ¶
Missing feature of the standard library: printing arbitrary inputs as Go code, with proper spacing and support for multi-line output with indentation. The name "repr" stands for "representation" and alludes to the Python function with the same name.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
var Default = Conf{Indent: gg.Indent}
Default config used by top-level formatting functions in this package.
Functions ¶
func CanBackquote ¶ added in v0.0.4
Corrected version of `strconv.CanBackquote` that allows newlines.
func Prn ¶ added in v0.0.5
Shortcut for printing a given value as Go code, prefixed with a description. Very handy for debug-printing.
func String ¶
Similar to `fmt.Sprintf("%#v")` or `gg.GoString`, but more advanced. Formats the input as Go code, using the default config.
Example ¶
package main import ( "fmt" "github.com/mitranim/gg" "github.com/mitranim/gg/grepr" ) type Inner struct { InnerId *int InnerName *string } type Embed struct { EmbedId int EmbedName string } type Outer struct { OuterId int OuterName string Embed Inner *Inner } var testInner = Inner{ InnerId: gg.Ptr(30), InnerName: gg.Ptr(`inner`), } var testEmbed = Embed{EmbedId: 20} var testOuter = Outer{ OuterName: `outer`, Embed: testEmbed, Inner: &testInner, } func main() { fmt.Println(grepr.String(testOuter)) }
Output: grepr_test.Outer{ OuterName: `outer`, Embed: grepr_test.Embed{EmbedId: 20}, Inner: &grepr_test.Inner{ InnerId: gg.Ptr(30), InnerName: gg.Ptr(`inner`), }, }
func StringIndent ¶
Formats the input as Go code, using the default config with the given indentation level.
Types ¶
type Conf ¶
Formatting config.
`.Indent` controls indentation. If empty, output is single line.
`.ZeroFields`, if set, forces printing of zero fields in structs. By default zero fields are skipped.