master
go 37 lines 662 Bytes
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 package secretstore
4
5 import "gopkg.in/yaml.v2"
6
7 func cloneConfig(in Config) Config {
8 if len(in) == 0 {
9 return nil
10 }
11
12 type plain Config
13 bs, err := yaml.Marshal((plain)(in))
14 if err != nil {
15 return nil
16 }
17
18 var out Config
19 if err := yaml.Unmarshal(bs, &out); err != nil {
20 return nil
21 }
22 return out
23 }
24
25 func cloneStoreStatus(status StoreStatus) StoreStatus {
26 out := status
27 out.LastValidation = cloneValidationStatus(status.LastValidation)
28 return out
29 }
30
31 func cloneValidationStatus(status *ValidationStatus) *ValidationStatus {
32 if status == nil {
33 return nil
34 }
35 copyStatus := *status
36 return &copyStatus
37 }