package utils

import (
	"encoding/json"

	log "github.com/sirupsen/logrus"
)

func Int64Ptr(i int64) *int64 {
	return &i
}
func Uint32Ptr(i uint32) *uint32 {
	return &i
}
func BoolPtr(b bool) *bool {
	return &b
}
func StringPtr(s string) *string {
	return &s
}

func MarshalList(list []string) string {
	if len(list) == 0 {
		return "[]"
	}
	r, e := json.Marshal(list)
	if e != nil {
		log.Errorf("json marshal failed, %s", e.Error())
	}
	return string(r)
}

func UnmarshalList(s string) []string {
	list := make([]string, 0)
	if len(s) == 0 {
		return list
	}
	e := json.Unmarshal([]byte(s), &list)
	if e != nil {
		log.Errorf("json unmarshal failed, %s", e.Error())
	}
	return list
}

func ConvertObj(src interface{}, dst interface{}) error {
	b, err := json.Marshal(src)
	if err != nil {
		return err
	}
	err = json.Unmarshal(b, dst)
	if err != nil {
		return err
	}
	return nil
}
