• Kirill Smelkov's avatar
    go/neo/proto: Serialization support · ea5f7d61
    Kirill Smelkov authored
    Provide a way for every message to be encoded/decoded to/from NEO wire
    encoding. For this introduce Msg interface with wire coding methods and
    provide such methods for all message types.
    
    For selected types the methods are implemented manually.
    For most of the types the methods are generated automatically by protogen.go program.
    
    protogen.go was mentioned in http://navytux.spb.ru/~kirr/neo.html#development-overview
    in "On server-side NEO/go work started by first implementing messages
    serialization in exactly the same wire format as NEO/py does ..." paragraph.
    
    A bit of late protogen fixups history:
    
    	lab.nexedi.com/kirr/neo/commit/c884bfd5
    	lab.nexedi.com/kirr/neo/commit/385d813a
    	lab.nexedi.com/kirr/neo/commit/0f7e0b00
    	lab.nexedi.com/kirr/neo/commit/de3ef2c0
    
    Also a message type can be reverse-looked up by message code via MsgType().
    This will be later used in network receive code path.
    ea5f7d61
protogen.go 33 KB