diff options
| author | Alex Flint <[email protected]> | 2021-04-20 12:23:49 -0700 |
|---|---|---|
| committer | Alex Flint <[email protected]> | 2021-04-20 12:23:49 -0700 |
| commit | 1e81bb686691f40ddba12357eccc155681f547a4 (patch) | |
| tree | 06cef51328b1e823778a7ccbd61b1c4f9f85145b /example_test.go | |
| parent | a84487a43a66f9b51259e2a1f39a2a3e6183808e (diff) | |
fix the mappings-with-commas example
Diffstat (limited to 'example_test.go')
| -rw-r--r-- | example_test.go | 15 |
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] } |
