MCPcopy Create free account
hub / github.com/Snapchat/Valdi / parseManifest

Function parseManifest

valdi/src/valdi/runtime/Resources/KeyValueStore.cpp:204–222  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

202}
203
204Result<Parser<Byte>> parseManifest(const ValdiArchiveEntry& entry, uint64_t* idSequence) {
205 if (entry.filePath != manifestEntryName()) {
206 return Error("First entry in store should be the manifest");
207 }
208
209 auto manifestParser = Parser(entry.data, entry.data + entry.dataLength);
210 auto manifestHeaderResult = manifestParser.parseStruct<KeyValueStoreManifest>();
211 if (!manifestHeaderResult) {
212 return manifestHeaderResult.moveError();
213 }
214
215 if (manifestHeaderResult.value()->version != kKeyValueStoreVersion) {
216 return Error("Incompatible KeyValueStore version");
217 }
218
219 *idSequence = manifestHeaderResult.value()->mutationIdSequence;
220
221 return manifestParser;
222}
223
224Result<KeyValueStoreEntry> parseEntry(Parser<Byte>& manifestParser,
225 const ValdiArchiveEntry& entry,

Callers 1

populateMethod · 0.85

Calls 3

valueMethod · 0.65
ErrorInterface · 0.50
ParserClass · 0.50

Tested by

no test coverage detected