package mq_coder import ( "git.hpds.cc/Component/mq_coder/utils" ) // Tag represents the Tag of TLV, // MSB used to represent the packet type, 0x80 means a node packet, otherwise is a primitive packet. // Low 7 bits represent Sequence ID, like `key` in JSON format type Tag struct { raw byte } // IsNode returns true is MSB is 1. func (t *Tag) IsNode() bool { return t.raw&utils.MSB == utils.MSB } // IsSlice determine if the current node is a Slice func (t *Tag) IsSlice() bool { return t.raw&utils.SliceFlag == utils.SliceFlag } // SeqId get the sequence ID, as key in JSON format func (t *Tag) SeqId() byte { //return t.raw & packet utils.DropMSB return t.raw & utils.DropMSBArrayFlag } // NewTag create a NodePacket Tag field func NewTag(b byte) *Tag { return &Tag{raw: b} } // Raw return the original byte func (t *Tag) Raw() byte { return t.raw }