openreplay/mobs/templates/backend~pkg~messages~messages.go.erb

31 lines
796 B
Text

// 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 %>