void WriteFieldId(StTypeCode typeCode, uint fieldCode) { var iTypeCode = (uint)typeCode; if (iTypeCode < 16 && fieldCode < 16) { var span = bufferWriter.GetSpan(1); span[0] = (byte)(iTypeCode << 4 | fieldCode); bufferWriter.Advance(1); } else if (iTypeCode < 16 && fieldCode >= 16) { var span = bufferWriter.GetSpan(2); span[0] = (byte)(iTypeCode << 4); span[1] = (byte)fieldCode; bufferWriter.Advance(2); } else if (iTypeCode >= 16 && fieldCode < 16) { var span = bufferWriter.GetSpan(2); span[0] = (byte)fieldCode; span[1] = (byte)typeCode; bufferWriter.Advance(2); } else // typeCode >= 16 && fieldCode >= 16 { var span = bufferWriter.GetSpan(3); span[0] = 0; span[1] = (byte)typeCode; span[2] = (byte)fieldCode; bufferWriter.Advance(3); } }
public StFieldId(StTypeCode typeCode, uint fieldCode) { TypeCode = typeCode; FieldCode = fieldCode; }