summaryrefslogtreecommitdiff
path: root/example_test.go
diff options
context:
space:
mode:
authorAlex Flint <[email protected]>2021-04-20 12:23:49 -0700
committerAlex Flint <[email protected]>2021-04-20 12:23:49 -0700
commit1e81bb686691f40ddba12357eccc155681f547a4 (patch)
tree06cef51328b1e823778a7ccbd61b1c4f9f85145b /example_test.go
parenta84487a43a66f9b51259e2a1f39a2a3e6183808e (diff)
fix the mappings-with-commas example
Diffstat (limited to 'example_test.go')
-rw-r--r--example_test.go15
1 files changed, 9 insertions, 6 deletions
diff --git a/example_test.go b/example_test.go
index 47a9211..2e9b875 100644
--- a/example_test.go
+++ b/example_test.go
@@ -95,15 +95,18 @@ func Example_mappings() {
// output: map[john:123 mary:456]
}
-type commaSeparated map[string]string
+type commaSeparated struct {
+ M map[string]string
+}
-func (c commaSeparated) UnmarshalText(b []byte) error {
+func (c *commaSeparated) UnmarshalText(b []byte) error {
+ c.M = make(map[string]string)
for _, part := range strings.Split(string(b), ",") {
pos := strings.Index(part, "=")
if pos == -1 {
return fmt.Errorf("error parsing %q, expected format key=value", part)
}
- c[part[:pos]] = part[pos+1:]
+ c.M[part[:pos]] = part[pos+1:]
}
return nil
}
@@ -111,13 +114,13 @@ func (c commaSeparated) UnmarshalText(b []byte) error {
// This example demonstrates arguments with keys and values separated by commas
func Example_mappingWithCommas() {
// The args you would pass in on the command line
- os.Args = split("./example --m one=two,three=four")
+ os.Args = split("./example --values one=two,three=four")
var args struct {
- M commaSeparated
+ Values commaSeparated
}
MustParse(&args)
- fmt.Println(args.M)
+ fmt.Println(args.Values.M)
// output: map[one:two three:four]
}