Method: Api::ResponseCreateGame#_encode

Defined in:
lib/sc2ai/protocol/sc2api_pb.rb

#_encode(buff) ⇒ Object



12102
12103
12104
12105
12106
12107
12108
12109
12110
12111
12112
12113
12114
12115
12116
12117
12118
12119
12120
12121
12122
12123
12124
12125
12126
12127
12128
12129
12130
12131
12132
12133
12134
12135
12136
12137
# File 'lib/sc2ai/protocol/sc2api_pb.rb', line 12102

def _encode(buff)
  val = @error
  if has_error?
    buff << 0x08

    loop do
      byte = val & 0x7F

      val >>= 7
      # This drops the top bits,
      # Otherwise, with a signed right shift,
      # we get infinity one bits at the top
      val &= (1 << 57) - 1

      byte |= 0x80 if val != 0
      buff << byte
      break if val == 0
    end
  end

  val = @error_details
  if (len = val.bytesize) > 0 || has_error_details?
    buff << 0x12
    loop do
      byte = len & 0x7F
      len >>= 7
      byte |= 0x80 if len > 0
      buff << byte
      break if len == 0
    end

    buff << (val.ascii_only? ? val : val.b)
  end
  buff << @_unknown_fields if @_unknown_fields
  buff
end