1// this file was auto-generated by internal/cmd/gentypes/main.go: DO NOT EDIT 2 3package jwa 4 5import ( 6 "fmt" 7 "sort" 8 "sync" 9 10 "github.com/pkg/errors" 11) 12 13// CompressionAlgorithm represents the compression algorithms as described in https://tools.ietf.org/html/rfc7518#section-7.3 14type CompressionAlgorithm string 15 16// Supported values for CompressionAlgorithm 17const ( 18 Deflate CompressionAlgorithm = "DEF" // DEFLATE (RFC 1951) 19 NoCompress CompressionAlgorithm = "" // No compression 20) 21 22var allCompressionAlgorithms = map[CompressionAlgorithm]struct{}{ 23 Deflate: {}, 24 NoCompress: {}, 25} 26 27var listCompressionAlgorithmOnce sync.Once 28var listCompressionAlgorithm []CompressionAlgorithm 29 30// CompressionAlgorithms returns a list of all available values for CompressionAlgorithm 31func CompressionAlgorithms() []CompressionAlgorithm { 32 listCompressionAlgorithmOnce.Do(func() { 33 listCompressionAlgorithm = make([]CompressionAlgorithm, 0, len(allCompressionAlgorithms)) 34 for v := range allCompressionAlgorithms { 35 listCompressionAlgorithm = append(listCompressionAlgorithm, v) 36 } 37 sort.Slice(listCompressionAlgorithm, func(i, j int) bool { 38 return string(listCompressionAlgorithm[i]) < string(listCompressionAlgorithm[j]) 39 }) 40 }) 41 return listCompressionAlgorithm 42} 43 44// Accept is used when conversion from values given by 45// outside sources (such as JSON payloads) is required 46func (v *CompressionAlgorithm) Accept(value interface{}) error { 47 var tmp CompressionAlgorithm 48 if x, ok := value.(CompressionAlgorithm); ok { 49 tmp = x 50 } else { 51 var s string 52 switch x := value.(type) { 53 case fmt.Stringer: 54 s = x.String() 55 case string: 56 s = x 57 default: 58 return errors.Errorf(`invalid type for jwa.CompressionAlgorithm: %T`, value) 59 } 60 tmp = CompressionAlgorithm(s) 61 } 62 if _, ok := allCompressionAlgorithms[tmp]; !ok { 63 return errors.Errorf(`invalid jwa.CompressionAlgorithm value`) 64 } 65 66 *v = tmp 67 return nil 68} 69 70// String returns the string representation of a CompressionAlgorithm 71func (v CompressionAlgorithm) String() string { 72 return string(v) 73} 74