Arseniy Alekseyev <aalekseyev@janestreet.com> [Fri, 17 Feb 2023 13:29:39 +0000] rev 50215
rhg: in path_encode, be a bit more conservative about memory usage
Use [shrink_to_fit] to match the previous behavior more closely,
and potentially save (a tiny bit) of memory.
FWIW, I suspect this is unnecessary, but this whole MR is
about simplifying things while preserving any existing
optimizations.
Arseniy Alekseyev <aalekseyev@janestreet.com> [Thu, 16 Feb 2023 19:14:51 +0000] rev 50214
rhg: small refactor: stop using a magical constant "+ 1"
Instead, directly do what the "+ 1" was supposed to achive:
call hash_encode.
Arseniy Alekseyev <aalekseyev@janestreet.com> [Thu, 16 Feb 2023 19:03:17 +0000] rev 50213
rhg: in path_encode, use Vec directly instead of VecDest
No need to have a trivial wrapper over the type.
There's nothing confusing about vec.write_bytes(...), after all.
Arseniy Alekseyev <aalekseyev@janestreet.com> [Thu, 16 Feb 2023 19:00:56 +0000] rev 50212
rhg: in path_encode, split Dest into VecDest and MeasureDest
Two separate types make the write semantics easier to understand
because we can consider the two sinks separately.
Having two independent compiled functions for size measurement
and for actual encoding seems likely to improve performance, too.
(and maybe we should get rid of measurement altogether)
Getting rid of [Dest] also removes the ugly option rewrapping
code, which is good.