github.com/kubeshop/testkube@v1.17.23/pkg/imageinspector/serialization.go (about)

     1  package imageinspector
     2  
     3  import (
     4  	"encoding/json"
     5  	"fmt"
     6  	"regexp"
     7  	"strings"
     8  )
     9  
    10  type Hash string
    11  
    12  var hashKeyRe = regexp.MustCompile("[^a-zA-Z0-9-_]")
    13  
    14  func hash(registry, image string) Hash {
    15  	return Hash(hashKeyRe.ReplaceAllString(strings.ReplaceAll(fmt.Sprintf("%s/%s", registry, image), "/", "."), "_-"))
    16  }
    17  
    18  func marshalInfo(v Info) (string, error) {
    19  	res, err := json.Marshal(v)
    20  	if err != nil {
    21  		return "", err
    22  	}
    23  	return string(res), nil
    24  }
    25  
    26  func unmarshalInfo(s string) (v Info, err error) {
    27  	err = json.Unmarshal([]byte(s), &v)
    28  	return
    29  }