From 50d310ba2ba836ce5f7033199f8173dd0b614394 Mon Sep 17 00:00:00 2001 From: Alexander Zavorotynskiy Date: Thu, 4 Aug 2022 16:33:00 +0200 Subject: [PATCH] feat(backend): updated message protocol templates --- mobs/primitives/primitives.go | 6 ++--- .../backend~pkg~messages~read-message.go.erb | 22 +++++++++++++------ 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/mobs/primitives/primitives.go b/mobs/primitives/primitives.go index 2603d31f5..939fbda9c 100644 --- a/mobs/primitives/primitives.go +++ b/mobs/primitives/primitives.go @@ -19,7 +19,7 @@ func SkipBytes(reader io.ReadSeeker) error { if err != nil { return err } - _, err := reader.Seek(n, io.SeekCurrent); + _, err = reader.Seek(int64(n), io.SeekCurrent) return err } @@ -29,13 +29,13 @@ func ReadData(reader io.Reader) ([]byte, error) { return nil, err } p := make([]byte, n) - _, err := io.ReadFull(reader, p) + _, err = io.ReadFull(reader, p) if err != nil { return nil, err } return p, nil } - + func ReadUint(reader io.Reader) (uint64, error) { var x uint64 var s uint diff --git a/mobs/templates/backend~pkg~messages~read-message.go.erb b/mobs/templates/backend~pkg~messages~read-message.go.erb index 2cff85203..b123f87a7 100644 --- a/mobs/templates/backend~pkg~messages~read-message.go.erb +++ b/mobs/templates/backend~pkg~messages~read-message.go.erb @@ -6,16 +6,24 @@ import ( "io" ) -func ReadMessage(reader io.Reader) (Message, error) { +<% $messages.each do |msg| %> +func Decode<%= msg.name %>(reader io.Reader) (Message, error) { + var err error = nil + msg := &<%= msg.name %>{} + <%= msg.attributes.map { |attr| + " if msg.#{attr.name}, err = Read#{attr.type.to_s.pascal_case}(reader); err != nil { + return nil, err + }" }.join "\n" %> + return msg, err +} + +<% end %> + +func ReadMessage(t uint64, reader io.Reader) (Message, error) { switch t { <% $messages.each do |msg| %> case <%= msg.id %>: - msg := &<%= msg.name %>{} -<%= msg.attributes.map { |attr| -" if msg.#{attr.name}, err = Read#{attr.type.to_s.pascal_case}(reader); err != nil { - return nil, err - }" }.join "\n" %> - return msg, nil + return Decode<%= msg.name %>(reader) <% end %> } return nil, fmt.Errorf("Unknown message code: %v", t)