github.com/aporeto-inc/trireme-lib@v10.358.0+incompatible/controller/pkg/claimsheader/ct.go (about)

     1  package claimsheader
     2  
     3  import "strconv"
     4  
     5  // CompressionType defines the compression used.
     6  type CompressionType int
     7  
     8  const (
     9  
    10  	// CompressionTypeV1 is version 1 of compression
    11  	CompressionTypeV1 CompressionType = iota
    12  )
    13  
    14  const (
    15  	// CompressedTagLengthV1 is version 1 length of tags
    16  	CompressedTagLengthV1 int = 12
    17  
    18  	// CompressedTagLengthV2 is version 2 length of tags
    19  	CompressedTagLengthV2 int = 8
    20  )
    21  
    22  // toMask returns the mask based on the type
    23  func (ct CompressionType) toMask() compressionTypeMask {
    24  
    25  	return compressionTypeV1Mask
    26  
    27  }
    28  
    29  func (ct CompressionType) toString() string {
    30  
    31  	return strconv.Itoa(int(ct))
    32  }
    33  
    34  // compressionTypeMask defines the compression mask.
    35  type compressionTypeMask uint8
    36  
    37  const (
    38  	// compressionTypeV1Mask mask that identifies compression type v1
    39  	compressionTypeV1Mask compressionTypeMask = 0x80
    40  	// compressionTypeBitMask mask used to check relevant compression types
    41  	compressionTypeBitMask compressionTypeMask = 0xC0
    42  )
    43  
    44  // toType returns the type based on mask
    45  func (cm compressionTypeMask) toType() CompressionType {
    46  	return CompressionTypeV1
    47  }
    48  
    49  // toUint8 returns uint8 from compressiontypemask
    50  func (cm compressionTypeMask) toUint8() uint8 {
    51  
    52  	return uint8(cm)
    53  }
    54  
    55  // CompressionTypeToTagLength converts CompressionType to length.
    56  func CompressionTypeToTagLength(t CompressionType) int {
    57  
    58  	return CompressedTagLengthV1
    59  
    60  }
    61  
    62  // String2CompressionType is a helper to convert string to compression type
    63  func String2CompressionType(s string) CompressionType {
    64  
    65  	return CompressionTypeV1
    66  
    67  }