...

Source file src/github.com/lestrrat-go/jwx/jwa/compression_gen.go

Documentation: github.com/lestrrat-go/jwx/jwa

     1  // this file was auto-generated by internal/cmd/gentypes/main.go: DO NOT EDIT
     2  
     3  package jwa
     4  
     5  import (
     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
    14  type CompressionAlgorithm string
    15  
    16  // Supported values for CompressionAlgorithm
    17  const (
    18  	Deflate    CompressionAlgorithm = "DEF" // DEFLATE (RFC 1951)
    19  	NoCompress CompressionAlgorithm = ""    // No compression
    20  )
    21  
    22  var allCompressionAlgorithms = map[CompressionAlgorithm]struct{}{
    23  	Deflate:    {},
    24  	NoCompress: {},
    25  }
    26  
    27  var listCompressionAlgorithmOnce sync.Once
    28  var listCompressionAlgorithm []CompressionAlgorithm
    29  
    30  // CompressionAlgorithms returns a list of all available values for CompressionAlgorithm
    31  func 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
    46  func (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
    71  func (v CompressionAlgorithm) String() string {
    72  	return string(v)
    73  }
    74  

View as plain text