public TaqTrade(DateTime date, FixedBuffer fb) { // Read<> over fb is much slower var db = fb; // Time _timeUTCTicks = ReadHHMMSSXXXXXXAsUtcTicks(date, fb, 0); // Exchange Exchange = fb.ReadByte(12); // Symbol fixed (void* ptr = _symbol) { fb.Copy((IntPtr)ptr, 13, 16); } // Sale Condition fixed (void* ptr = _saleCondition) { fb.Copy((IntPtr)ptr, 29, 4); } TradeVolume = (uint)ReadUInt64(fb, 33, 9); TradePrice = ReadUInt64(fb, 42, 11); TradeStopStockIndicator = db.ReadByte(53); TradeCorrectionIndicator = (byte)ReadUInt64(fb, 54, 2); TradeSequenceNumber = ReadUInt64(fb, 56, 16); SourceOfTrade = db.ReadByte(72); TradeReportingFacility = db.ReadByte(73); _participantTimestampUtcTicks = ReadHHMMSSXXXXXXAsUtcTicks(date, fb, 74); fixed (void* ptr = _rnn) { fb.Copy((IntPtr)ptr, 86, 8); } _TRFTimestampUtcTicks = ReadHHMMSSXXXXXXAsUtcTicks(date, fb, 94); }