github.com/esnet/gdg@v0.6.1-0.20240412190737-6b6eba9c14d8/internal/tools/generics_tooling.go (about) 1 package tools 2 3 import ( 4 "encoding/json" 5 "log" 6 "os" 7 ) 8 9 func PtrOf[T any](value T) *T { 10 return &value 11 } 12 13 func DeepCopy[T any](value T) (*T, error) { 14 origJSON, err := json.Marshal(value) 15 if err != nil { 16 return nil, err 17 } 18 19 clone := new(T) 20 if err = json.Unmarshal(origJSON, &clone); err != nil { 21 return nil, err 22 } 23 24 return clone, nil 25 } 26 27 // CreateDestinationPath Handle osMkdir Errors 28 func CreateDestinationPath(v string) { 29 err := os.MkdirAll(v, 0750) 30 if err != nil { 31 log.Fatalf("unable to create path %s, err: %s", v, err.Error()) 32 } 33 }