ficsit-cli-flake/utils/structures.go
Vilsol 25f544b8fe
refactor: zerolog -> slog, errors.Wrap -> fmt.Error (#49)
* refactor: zerolog -> slog, errors.Wrap -> fmt.Error

* chore: lint

* fix: correctly handle errors

* fix: use parsed level

* fix: use parsed level, log json to file
2023-12-16 16:19:53 +02:00

20 lines
363 B
Go

package utils
import (
"encoding/json"
"fmt"
)
func Copy[T any](obj T) (*T, error) {
marshal, err := json.Marshal(obj)
if err != nil {
return nil, fmt.Errorf("failed to marshal object: %w", err)
}
out := new(T)
if err := json.Unmarshal(marshal, out); err != nil {
return nil, fmt.Errorf("failed to unmarshal object: %w", err)
}
return out, nil
}