Method: Avro::IO::DatumReader#read_enum

Defined in:
lib/avro/io.rb

#read_enum(writers_schema, readers_schema, decoder) ⇒ Object



300
301
302
303
304
305
306
307
308
309
310
311
# File 'lib/avro/io.rb', line 300

def read_enum(writers_schema, readers_schema, decoder)
  index_of_symbol = decoder.read_int
  read_symbol = writers_schema.symbols[index_of_symbol]

  if !readers_schema.symbols.include?(read_symbol) && readers_schema.default
    read_symbol = readers_schema.default
  end

  # This implementation deviates from the spec by always returning
  # a symbol.
  read_symbol
end