Struct MailAnsweringAuditCursor
- Namespace
- MailFathom.Application.Retrieval.AskMail.Audit
- Assembly
- MailFathom.Application.dll
Marks where one page of an answering record ended, so the next page continues from it.
public readonly record struct MailAnsweringAuditCursor : IEquatable<MailAnsweringAuditCursor>
- Implements
- Inherited Members
Remarks
The record is ordered newest first by completion instant, with the entry identifier breaking a tie, and this pairs those two values with a fingerprint of the filters the page was read under. The pair is what makes pagination keyset-based rather than offset-based: the next page asks for entries beyond a known boundary, so a question answered between two requests neither shifts a window nor causes an entry to be skipped or repeated. The fingerprint is what makes the boundary meaningful, because a position names a page edge only within the filtered set it was computed for.
It carries no secret and needs no signature: every value in it is one the caller already supplied or already received. Encoding is about opacity rather than protection — a client that cannot read a cursor does not build one, and a built cursor is how a caller would ask for a boundary this system never computed.
Fields
- MaximumEncodedLength
The greatest number of characters an encoded cursor may carry before it is refused unread.
Properties
- CompletedAt
Gets the completion instant of the last entry the page returned.
- EntryId
Gets the identity of that entry, which breaks a tie between two runs that ended together.
- FilterFingerprint
Gets the fingerprint of the filters this cursor was issued for.
Methods
- After(DateTimeOffset, MailAnsweringAuditEntryId, string)
Creates the cursor that continues a walk after one position in the record.
- Encode()
Writes the cursor as the opaque string a caller presents to continue the walk.
- TryDecode(string?, out MailAnsweringAuditCursor)
Reads a cursor a caller presented.