# File lib/moped/protocol/message.rb, line 195
        def flags(name, flag_map = {})
          class_eval "def \#{name}\n@\#{name} ||= []\nend\n\ndef \#{name}=(flags)\nif flags.is_a? Numeric\n@\#{name} = \#{name}_from_int(flags)\nelse\n@\#{name} = flags\nend\nend\n\ndef \#{name}_as_int\nbits = 0\nflags = self.\#{name}\n\#{flag_map.map { |flag, value| \"bits |= \#{value} if flags.include? \#{flag.inspect}\" }.join \"\\n\"}\nbits\nend\n\ndef \#{name}_from_int(bits)\nflags = []\n\#{flag_map.map { |flag, value| \"flags << \#{flag.inspect} if \#{value} & bits == \#{value}\" }.join \"\\n\"}\nflags\nend\n\ndef serialize_\#{name}(buffer)\nbuffer << [\#{name}_as_int].pack(INT32_DECODE_STR)\nend\n\ndef deserialize_\#{name}(buffer)\nbits, = buffer.read(4).unpack(INT32_DECODE_STR)\n\nself.\#{name} = bits\nend\n", __FILE__, __LINE__ + 1

          fields << name
        end