public Result ReadEntryCount(out int count) { UnsafeHelpers.SkipParamInit(out count); // This should only be called at the start of reading stream. Assert.SdkRequiresEqual(_offset, 0); // Read and validate header. var header = new KeyValueArchiveHeader(); Result rc = Read(SpanHelpers.AsByteSpan(ref header)); if (rc.IsFailure()) { return(rc); } if (!header.IsValid()) { return(ResultKvdb.InvalidKeyValue.Log()); } count = header.EntryCount; return(Result.Success); }
public void WriteHeader(int entryCount) { // This should only be called at start of write. Assert.SdkEqual(_offset, 0); var header = new KeyValueArchiveHeader(entryCount); Write(SpanHelpers.AsByteSpan(ref header)); }