// Auto-generated, do not edit package messages const (<% $messages.each do |msg| %> Msg<%= msg.name %> = <%= msg.id %><% end %> ) <% $messages.each do |msg| %> type <%= msg.name %> struct { message <%= msg.attributes.map { |attr| " #{attr.name} #{attr.type_go}" }.join "\n" %> } func (msg *<%= msg.name %>) Encode() []byte { buf := make([]byte, <%= msg.attributes.count * 10 + 1 %><%= msg.attributes.map { |attr| "+len(msg.#{attr.name})" if attr.lengh_encoded }.compact.join %>) buf[0] = <%= msg.id %> p := 1 <%= msg.attributes.map { |attr| " p = Write#{attr.type.to_s.pascal_case}(msg.#{attr.name}, buf, p)" }.join "\n" %> return buf[:p] } func (msg *<%= msg.name %>) Decode() Message { return msg } func (msg *<%= msg.name %>) TypeID() int { return <%= msg.id %> } <% end %>