github.com/lirm/aeron-go@v0.0.0-20230415210743-920325491dc4/archive/codecs/VarDataEncoding.go (about)

     1  // Generated SBE (Simple Binary Encoding) message codec
     2  
     3  package codecs
     4  
     5  import (
     6  	"fmt"
     7  	"io"
     8  	"math"
     9  )
    10  
    11  type VarDataEncoding struct {
    12  	Length  uint32
    13  	VarData uint8
    14  }
    15  
    16  func (v *VarDataEncoding) Encode(_m *SbeGoMarshaller, _w io.Writer) error {
    17  	if err := _m.WriteUint32(_w, v.Length); err != nil {
    18  		return err
    19  	}
    20  	if err := _m.WriteUint8(_w, v.VarData); err != nil {
    21  		return err
    22  	}
    23  	return nil
    24  }
    25  
    26  func (v *VarDataEncoding) Decode(_m *SbeGoMarshaller, _r io.Reader, actingVersion uint16) error {
    27  	if !v.LengthInActingVersion(actingVersion) {
    28  		v.Length = v.LengthNullValue()
    29  	} else {
    30  		if err := _m.ReadUint32(_r, &v.Length); err != nil {
    31  			return err
    32  		}
    33  	}
    34  	if !v.VarDataInActingVersion(actingVersion) {
    35  		v.VarData = v.VarDataNullValue()
    36  	} else {
    37  		if err := _m.ReadUint8(_r, &v.VarData); err != nil {
    38  			return err
    39  		}
    40  	}
    41  	return nil
    42  }
    43  
    44  func (v *VarDataEncoding) RangeCheck(actingVersion uint16, schemaVersion uint16) error {
    45  	if v.LengthInActingVersion(actingVersion) {
    46  		if v.Length < v.LengthMinValue() || v.Length > v.LengthMaxValue() {
    47  			return fmt.Errorf("Range check failed on v.Length (%v < %v > %v)", v.LengthMinValue(), v.Length, v.LengthMaxValue())
    48  		}
    49  	}
    50  	if v.VarDataInActingVersion(actingVersion) {
    51  		if v.VarData < v.VarDataMinValue() || v.VarData > v.VarDataMaxValue() {
    52  			return fmt.Errorf("Range check failed on v.VarData (%v < %v > %v)", v.VarDataMinValue(), v.VarData, v.VarDataMaxValue())
    53  		}
    54  	}
    55  	return nil
    56  }
    57  
    58  func VarDataEncodingInit(v *VarDataEncoding) {
    59  	return
    60  }
    61  
    62  func (*VarDataEncoding) EncodedLength() int64 {
    63  	return -1
    64  }
    65  
    66  func (*VarDataEncoding) LengthMinValue() uint32 {
    67  	return 0
    68  }
    69  
    70  func (*VarDataEncoding) LengthMaxValue() uint32 {
    71  	return 1073741824
    72  }
    73  
    74  func (*VarDataEncoding) LengthNullValue() uint32 {
    75  	return math.MaxUint32
    76  }
    77  
    78  func (*VarDataEncoding) LengthSinceVersion() uint16 {
    79  	return 0
    80  }
    81  
    82  func (v *VarDataEncoding) LengthInActingVersion(actingVersion uint16) bool {
    83  	return actingVersion >= v.LengthSinceVersion()
    84  }
    85  
    86  func (*VarDataEncoding) LengthDeprecated() uint16 {
    87  	return 0
    88  }
    89  
    90  func (*VarDataEncoding) VarDataMinValue() uint8 {
    91  	return 0
    92  }
    93  
    94  func (*VarDataEncoding) VarDataMaxValue() uint8 {
    95  	return math.MaxUint8 - 1
    96  }
    97  
    98  func (*VarDataEncoding) VarDataNullValue() uint8 {
    99  	return math.MaxUint8
   100  }
   101  
   102  func (*VarDataEncoding) VarDataSinceVersion() uint16 {
   103  	return 0
   104  }
   105  
   106  func (v *VarDataEncoding) VarDataInActingVersion(actingVersion uint16) bool {
   107  	return actingVersion >= v.VarDataSinceVersion()
   108  }
   109  
   110  func (*VarDataEncoding) VarDataDeprecated() uint16 {
   111  	return 0
   112  }