class Protobuf::Field::BaseField
def define_setter
def define_setter field = self @message_class.class_eval do define_method(field.setter_method_name) do |val| field.warn_if_deprecated if val.nil? || (val.respond_to?(:empty?) && val.empty?) @values.delete(field.name) elsif field.acceptable?(val) @values[field.name] = val else raise TypeError, "unacceptable value #{val} for type #{field.type}" end end end end