Package: golang-github-imdario-mergo-dev
Source: golang-github-imdario-mergo
Version: 0.1.2+git20150606.5.61a5285-1
Architecture: all
Maintainer: Debian Go Packaging Team <pkg-go-maintainers@lists.alioth.debian.org>
Installed-Size: 32
Depends: golang-go
Section: devel
Priority: extra
Homepage: https://github.com/imdario/mergo
Description: Mergo: merging Go structs and maps since 2013
Mergo A helper to merge structs and maps in Golang. Useful for
configuration default values, avoiding messy if-statements.
.
Also a lovely comune (http://en.wikipedia.org/wiki/Mergo) (municipality)
in the Province of Ancona in the Italian region Marche.
.
Mergo dall'alto Status It is ready for production use. It works fine
after extensive use in the wild.
.
Build Status (https://travis-ci.org/imdario/mergo) GoDoc
(https://godoc.org/github.com/imdario/mergo) Important note Mergo is
intended to assign only zero value fields on destination with source
value. Since April 6th it works like this. Before it didn't work
properly, causing some random overwrites. After some issues and PRs
I found it didn't merge as I designed it. Thanks to imdario/mergo#8
(https://github.com/imdario/mergo/pull/8) overwriting functions were
added and the wrong behavior was clearly detected.
.
If you were using Mergo before April 6th 2015, please check
your project works as intended after updating your local copy
with go get -u github.com/imdario/mergo. I apologize for any
issue caused by its previous behavior and any future bug that
Mergo could cause (I hope it won't!) in existing projects after
the change (release 0.2.0). Mergo in the wild• imdario/zas
(https://github.com/imdario/zas)• GoogleCloudPlatform/kubernetes
(https://github.com/GoogleCloudPlatform/kubernetes)• soniah/dnsmadeeasy
(https://github.com/soniah/dnsmadeeasy)• EagerIO/Stout
(https://github.com/EagerIO/Stout)• lynndylanhurley/defsynth-api
(https://github.com/lynndylanhurley/defsynth-api)•
russross/canvasassignments
(https://github.com/russross/canvasassignments)• rdegges/cryptly-api
(https://github.com/rdegges/cryptly-api)• casualjim/exeggutor
(https://github.com/casualjim/exeggutor)• divshot/gitling
(https://github.com/divshot/gitling)• RWJMurphy/gorl
(https://github.com/RWJMurphy/gorl)• andrerocker/deploy42
(https://github.com/andrerocker/deploy42)• elwinar/rambler
(https://github.com/elwinar/rambler)• tmaiaroto/gopartman
(https://github.com/tmaiaroto/gopartman)• jfbus/impressionist
(https://github.com/jfbus/impressionist)• Jmeyering/zealot
(https://github.com/Jmeyering/zealot)• godep-migrator/rigger-host
(https://github.com/godep-migrator/rigger-host)•
Dronevery/MultiwaySwitch-Go
(https://github.com/Dronevery/MultiwaySwitch-Go)• thoas/picfit
(https://github.com/thoas/picfit)• mantasmatelis/whooplist-server
(https://github.com/mantasmatelis/whooplist-server)•
jnuthong/item_search
(https://github.com/jnuthong/item_search)Installationgo get
github.com/imdario/mergo
.
// use in your .go code import (
"github.com/imdario/mergo"
) Usage You can only merge same-type structs with exported fields
initialized as zero value of their type and same-types maps. Mergo won't
merge unexported (private) fields but will do recursively any exported
one. Also maps will be merged recursively except for structs inside
maps (because they are not addressable using Go reflection). if err :=
mergo.Merge(&dst, src); err != nil {
// ...
}
.
Additionally, you can map a map[string]interface{} to a struct (and
otherwise, from struct to map), following the same restrictions as in
Merge(). Keys are capitalized to find each corresponding exported field.
if err := mergo.Map(&dst, srcMap); err != nil {
// ...
}
.
Warning: if you map a struct to map, it won't do it recursively. Don't
expect Mergo to map struct members of your struct as
map[string]interface{}. They will be just assigned as values.
.
More information and examples in godoc documentation
(http://godoc.org/github.com/imdario/mergo). Nice example ```go
package main
.
import (
"fmt" "github.com/imdario/mergo"
)
.
type Foo struct {
A string B int64
}
.
func main() {
src := Foo{
A: "one",
}
dest := Foo{
A: "two", B: 2,
}
.
mergo.Merge(&dest, src)
.
fmt.Println(dest) // Will print // {two 2}
.
} ```
.
Note: if test are failing due missing package, please execute: go get
gopkg.in/yaml.v1 Contact me If I can help you, you have an idea or you
are using Mergo in your projects, don't hesitate to drop me a line
(or a pull request): @im_dario (https://twitter.com/im_dario) About
Written by Dario Castañé (http://dario.im). License BSD 3-Clause
(http://opensource.org/licenses/BSD-3-Clause) license, as Go language
(http://golang.org/LICENSE).