Table of Contents

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.