42 lines
1005 B
Go
42 lines
1005 B
Go
package config
|
|
|
|
// Clone returns a deep copy of a configuration snapshot. The copy helpers are
|
|
// intentionally kept in the config package so data/integration code does not
|
|
// need protobuf cloning or storage-specific serializers.
|
|
func Clone(value *Config) *Config { return cloneConfig(value) }
|
|
|
|
func CloneData(value *Data) *Data {
|
|
if value == nil {
|
|
return nil
|
|
}
|
|
return cloneConfig(&Config{Data: value}).Data
|
|
}
|
|
|
|
func CloneAdmin(value *Admin) *Admin {
|
|
if value == nil {
|
|
return nil
|
|
}
|
|
return cloneConfig(&Config{Admin: value}).Admin
|
|
}
|
|
|
|
func CloneDatabase(value *Database) *Database {
|
|
if value == nil {
|
|
return nil
|
|
}
|
|
return cloneConfig(&Config{Data: &Data{Database: value}}).Data.Database
|
|
}
|
|
|
|
func CloneStorage(value *Storage) *Storage {
|
|
if value == nil {
|
|
return nil
|
|
}
|
|
return cloneConfig(&Config{Admin: &Admin{Storage: value}}).Admin.Storage
|
|
}
|
|
|
|
func CloneEmail(value *Email) *Email {
|
|
if value == nil {
|
|
return nil
|
|
}
|
|
return cloneConfig(&Config{Admin: &Admin{Email: value}}).Admin.Email
|
|
}
|