123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- // Copyright 2013 Dario Castañé. All rights reserved.
- // Copyright 2009 The Go Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style
- // license that can be found in the LICENSE file.
- /*
- Package mergo merges same-type structs and maps by setting default values in zero-value fields.
- Mergo won't merge unexported (private) fields but will do recursively any exported one. It also won't merge structs inside maps (because they are not addressable using Go reflection).
- Usage
- From my own work-in-progress project:
- type networkConfig struct {
- Protocol string
- Address string
- ServerType string `json: "server_type"`
- Port uint16
- }
- type FssnConfig struct {
- Network networkConfig
- }
- var fssnDefault = FssnConfig {
- networkConfig {
- "tcp",
- "127.0.0.1",
- "http",
- 31560,
- },
- }
- // Inside a function [...]
- if err := mergo.Merge(&config, fssnDefault); err != nil {
- log.Fatal(err)
- }
- // More code [...]
- */
- package mergo
|