Repository navigation
eolib v0.1.0-beta.2
Pre-release
Pre-release
·
18 commits
to master
since this release
Added
EoWriter::ToByteArray() &&overload, which moves the data out of the writer instead of copying it.EoReader::View, which creates a reader over data owned by the caller without copying it.operator<<forSerializable(and therefore every generated struct and packet) and for generated enums, which writes theToString()representation to astd::ostream.
Changed
DataEncrypterandStringEncoderfunctions now transform data in place instead of returning a copy. Each function has(std::uint8_t*, std::size_t),std::vector<std::uint8_t>&andstd::string&overloads.StringEncoder::EncodeInPlace/DecodeInPlaceare replaced by theEncodeString/DecodeStringpointer overloads.- Generated structs and packets are now
final. - Functions that cannot throw are now
noexcept, including theSerializable::ByteSize,Packet::Family,Packet::ActionandSequenceStart::Valuevirtual functions. Implementations of these interfaces must also benoexcept. eolib-protocol-gennow rejects protocol files where a non-delimited array without a length is followed by another element in the same chunk, as required byeo-protocol/docs/elements.md.- Documented the numeric type policy: all EO numbers are
int, values aboveINT_MAXwrap to negative numbers, and malformed data can decode to negative values. - Complete documentation for the public API: every hand-written and generated function now documents its parameters, return value and exceptions, and generated switch data members include the XML comment of the
<switch>element.
Fixed
eolib-protocol-genno longer dereferences an empty value (crashing on musl) when a<length>field is referenced by an unnamed hardcoded field; it reports the "Hardcoded fields must not reference a length field" error instead.docs/getting-started.mdincorrectly listed generatedbytefields asstd::uint8_t; they areint.- Using a moved-from
EoReaderno longer dereferences a null pointer; it now behaves like a reader over empty data. DataEncrypterdocumentation: the order of the encryption and decryption steps was incorrect.- Removed documentation links to
encryption.mdandsequence.md, which do not exist ineo-protocol. ServerVerifier::Hashdocumentation: challenges should be no larger than 11,092,110, notEoNumericLimits::ThreeMax, since larger values may produce negative hashes.