Make some improvements to BlobEncoder/BlobDecoder and add serde for ArrayData*
commitb556031916a23516054dbc8ccd500f460140e2c9
authorRick Lavoie <rlavoie@fb.com>
Fri, 29 Jul 2022 23:03:09 +0000 (29 16:03 -0700)
committerFacebook GitHub Bot <facebook-github-bot@users.noreply.github.com>
Fri, 29 Jul 2022 23:03:09 +0000 (29 16:03 -0700)
tree9d1bfa66f119671d33dcc84b22e403a5068bcd35
parent1788b0cd1080e5291d693ff550017258d414330c
Make some improvements to BlobEncoder/BlobDecoder and add serde for ArrayData*

Summary:
Add methods to BlobEncoder and BlobDecoder to handle certain
"nullable" types, like smart pointers which may be null.

Add support for carrying additional arguments across certain container
encoding.

Add support for encoding doubles. We just encode the raw bit pattern,
which is fine because this isn't meant to be a portable encoding.

Add serde support for ArrayData*, not just Array (reimplement Array
encoding in terms of ArrayData*).

Reviewed By: edwinsmith

Differential Revision: D38256349

fbshipit-source-id: e6dc92907658d976655371aed459547ac7203366
hphp/runtime/base/array-data.cpp
hphp/runtime/base/array-data.h
hphp/runtime/base/type-array.cpp
hphp/runtime/base/type-array.h
hphp/util/blob-encoder.h