~earboxer/bare-mess-php

v0.2.0 2 years ago

Fix integers and improve compliance with new spec

Previous versions of bare-mess-php implemented all signed integers incorrectly (Int, I8, I16, I32, I64).
This release is a breaking change, fixing the implementation.

In addition, I8, I16, I32, and I64 were erroneously missing the ability to be constructed from an encoded value.
This has been implemented.

Newer drafts of the BARE spec are more strict with the number of bytes variable-length-encoded uint/int can have.
Int and UInt have also been updated to be more compliant in their *encoding*.

We now use the minimum number of bytes, as we MUST.

We don't (as we SHOULD) throw an error in the decoding of variable-length uint/int,
so all UInts from v0.1.0 will decode in v0.2.0
(and be re-encoded more strictly).