24 lines
669 B
Text
24 lines
669 B
Text
// Auto-generated, do not edit
|
|
package messages
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
<% $messages.each do |msg| %>
|
|
func Decode<%= msg.name %>(reader BytesReader) (Message, error) {
|
|
var err error = nil
|
|
msg := &<%= msg.name %>{}
|
|
<%= msg.attributes.map { |attr|
|
|
" if msg.#{attr.name}, err = reader.Read#{attr.type.to_s.pascal_case}(); err != nil {
|
|
return nil, err
|
|
}" }.join "\n" %>
|
|
return msg, err
|
|
}
|
|
<% end %>
|
|
func ReadMessage(t uint64, reader BytesReader) (Message, error) {
|
|
switch t {<% $messages.each do |msg| %>
|
|
case <%= msg.id %>:
|
|
return Decode<%= msg.name %>(reader)<% end %>
|
|
}
|
|
return nil, fmt.Errorf("unknown message code: %v", t)
|
|
}
|