Struct OutboxCursor
- Namespace
- MailFathom.Application.Mail.Delivery.Operations
- Assembly
- MailFathom.Application.dll
Marks where one page of an outbox ended, so the next page continues from it.
public readonly record struct OutboxCursor : IEquatable<OutboxCursor>
- Implements
- Inherited Members
Remarks
The reading is ordered newest first by the instant the send was written down, with the send's own identifier breaking a tie, and this pairs those two values with a fingerprint of the filters the page was read under. Keyset rather than offset because the set moves while it is being read: a worker settling a send, or an operator cancelling one from a second terminal, would otherwise shift a window and cause a send to be skipped or listed twice — and on this surface a skipped send is a message nobody notices is stuck.
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.
Fields
- MaximumEncodedLength
The greatest number of characters an encoded cursor may carry before it is refused unread.
Properties
- FilterFingerprint
Gets the fingerprint of the filters this cursor was issued for.
- OutgoingEmailId
Gets that send, which breaks a tie between two written down in one instant.
- RecordedAt
Gets the instant the last send the page returned was written down at.
Methods
- After(DateTimeOffset, OutgoingEmailId, string)
Creates the cursor that continues a walk after one position in the reading.
- Encode()
Writes the cursor as the opaque string a caller presents to continue the walk.
- TryDecode(string?, out OutboxCursor)
Reads a cursor a caller presented.