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 }