# File lib/mongo/protocol/serializers.rb, line 189 def self.deserialize(buffer) end_length = (@flag_bits & Msg::FLAGS.index(:checksum_present)) == 1 ? 32 : 0 sections = [] until buffer.length == end_length case byte = buffer.get_byte when PayloadZero::TYPE_BYTE sections << PayloadZero.deserialize(buffer) when PayloadOne::TYPE_BYTE sections += PayloadOne.deserialize(buffer) else raise Error::UnknownPayloadType.new(byte) end end sections end