2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-04 22:07:16 +08:00
Files
panel/pkg/copier/copier.go
2024-09-18 19:02:49 +08:00

19 lines
350 B
Go

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