Платформа ЦРНП "Мирокод" для разработки проектов
https://git.mirocod.ru
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
978 B
44 lines
978 B
// 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
|
|
|