Releases: ethanmoffat/eolib-go
Releases · ethanmoffat/eolib-go
v2.1.0
Added:
- Break bytes that are not in a chunked section will return an error during code generation.
- Lengths that are not referenced by another instruction will return an error during code generation.
ByteSize
field has been added to all generated structs. Returns the size of data that was read during deserialization.- Assert that fixed-length fields are the correct length during serialization.
Updated:
- Length instructions no longer generate a field in generated code. The length used for (de)serialization is implicit based on the size of the collection.
Fixed:
- Correct calculation of type sizes for deserialization purposes.
- Corrected call to
Remaining
when deserializing data. No longer used in loop condition.
Pull requests:
- #17 - Fix generated code: bug discovery from eolib-dotnet implementation
v2.0.1
v2.0.0
Added:
- Top-level package docs are now available
- Server pub files are now generated
Updated:
- Code generation now uses a proper codegen library (github.com/dave/jennifer)
Fixed:
NPC_AGREE
server packet - npc count is now the correct type (char)- Arena packets have correct chunking delimiters
- Added comments to various struct members
JUKEBOX_MSG
- remove chunkingGUILD_BUY
- fix typoGUILD_TAKE
- add missing guild tagAVATAR_ADMIN
- fix field orderEFFECT_AGREE
/EFFECT_PLAYER
- update packet data to be arraysCharacterStatsInfoLookup
- secondary stats field type fixed
Pull requests:
v1.1.2
v1.1.1
Added:
- None
Updated:
- None
Fixed:
- Add support for
optional
attribute in protocol XML (was previously ignored). Optional values will no longer be serialized/deserialized if they are not present in data. - Fix deserialize bug for slices of primitive types. Data was incorrectly deserialized directly to the current index of the slice without first appending a new element to the slice, which would cause a panic.
Pull requests:
- #9 - Add support for optional values from protocol XML (and other codegen bug fixes)
v1.1.0
Added:
- EoReader methods:
Slice
,SliceFromIndex
, andSliceFromCurrent
.
Updated:
- eo-protocol bumped to version Cirras/eo-protocol@7032f45.
- breaking change Serialize/Deserialize now take a pointer to an
EoWriter
/EoReader
. - breaking change
GenerateXXX
methods for sequences now take a pointer to arand
.
Fixed:
- EoReader
Remaining
method could sometimes return a negative value in chunked reading mode. - Sequence generation in InitSequence used the incorrect formula.
Pull requests:
v1.0.0
Initial release. Contains generated code for the EO v0.0.28 protocol, as well as functions for:
- Encoding/decoding numbers and strings
- Reading/writing EO data
- Managing sequence numbers
- Verifying server hash
Helper functions also exist for:
- Converting a packet ID to a strongly-typed implementation of the
net.Packet
interface