Table of Contents

Class ListEmailsResult

Namespace
MailFathom.Application.Emails.ListEmails
Assembly
MailFathom.Application.dll

One page of a mailbox listing, together with what continues it and how current it is.

public sealed record ListEmailsResult : IEquatable<ListEmailsResult>
Inheritance
ListEmailsResult
Implements
Inherited Members

Remarks

The absence of a cursor is the end of the result set rather than a hint: the reader establishes it by asking storage for one row beyond the page and finding none, so a caller that stops when the cursor is absent has seen every row exactly once. A present cursor never promises that the next page is non-empty — mail can be expunged between two requests — but continuing from it can never skip or repeat a row.

Freshness travels with every page because the listing is served from the local copy whether or not a mail server is reachable, which is what makes stale data explicit instead of indistinguishable from an empty mailbox.

Whether junk took part travels with the page for the same reason, and it is reported whichever answer it is: a page that omitted a whole folder and a page that read every folder are otherwise the same shape, so a caller could not tell a mailbox holding nothing more from one whose remainder is behind a flag they did not set.

Constructors

ListEmailsResult(IReadOnlyList<EmailSummary>, string?, IReadOnlyList<MailboxFolderFreshness>, bool)

One page of a mailbox listing, together with what continues it and how current it is.

Properties

Emails

The page, in the timeline order the request asked for, holding no more than the effective page size.

FolderFreshness

How current the local copy of each folder in the request's scope is.

HasMore

Gets whether another page can be read after this one.

IncludedJunkMail

Whether the account's junk folder took part in the listing.

NextCursor

The cursor that reads the next page, or null when this page ended the walk.