diff options
| author | Mark Rowe <mrowe@bdash.net.nz> | 2025-02-08 10:40:44 -0800 |
|---|---|---|
| committer | Mason Reed <mason@vector35.com> | 2025-02-12 18:43:02 -0500 |
| commit | c20bf355152d9a715dae3c19777c3d4a1046174b (patch) | |
| tree | ca54b22241c36bcfd8259c16b2583b9d19487ed3 /api-docs/cppdocs/_static | |
| parent | 714d7628097c5b02e23bcad1dba9880c7afc034b (diff) | |
[SharedCache] Make MetadataSerializable::Load static
`MetadataSerializable` is updated to allow a subclass to optionally
specify the return type of `Load`. If not specified it defaults to the
subclass itself. `SharedCache` specifies `std::optional` to represent
the case where the serialized metadata is in a format or version it does
not recognize.
By making `Load` a static member function and having it return a new
object it becomes easier to reason about the state of objects when a
deserialization failure occurs. It can return `std::optional` to
indicate failure and there is no object left in an unknown state.
Prior to this, `Load` worked on an existing instance of an object. It
was unclear what state the object would be in if a deserialization
failure occurred (its original state prior to `Load`? some
partially-loaded state? a null state?). The failure itself also had to
be communicated out of band.
Diffstat (limited to 'api-docs/cppdocs/_static')
0 files changed, 0 insertions, 0 deletions
