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  }