mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-11-04 00:11:04 +00:00 
			
		
		
		
	Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: techknowlogick <techknowlogick@gitea.io>
		
			
				
	
	
		
			44 lines
		
	
	
	
		
			978 B
		
	
	
	
		
			Go
		
	
	
	
		
			Vendored
		
	
	
	
			
		
		
	
	
			44 lines
		
	
	
	
		
			978 B
		
	
	
	
		
			Go
		
	
	
	
		
			Vendored
		
	
	
	
// 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
 |