class Protobuf::Field::BaseField

def initialize(message_class, rule, type, name, tag, options)


Constructor
#
def initialize(message_class, rule, type, name, tag, options)
  @message_class, @rule, @type, @name, @tag = \
    message_class, rule, type, name, tag
  @getter_method_name = name
  @setter_method_name = "#{name}=".to_sym
  @default   = options.delete(:default)
  @extension = options.delete(:extension)
  @packed    = repeated? && options.delete(:packed)
  @deprecated = options.delete(:deprecated)
  unless options.empty?
    warn "WARNING: Invalid options: #{options.inspect} (in #{@message_class.name.split('::').last}.#{@name})"
  end
  if packed? && ! [WireType::VARINT, WireType::FIXED32, WireType::FIXED64].include?(wire_type)
    raise "Can't use packed encoding for `#{@type}' type"
  end
  @default_value = \
    case @rule
    when :repeated then
      FieldArray.new(self).freeze
    when :required then
      nil
    when :optional then
      typed_default_value
    end
  define_accessor
end