Struct MailboxMutationLifecycle
- Namespace
- MailFathom.Domain.Mutations
- Assembly
- MailFathom.Domain.dll
Names where in its lifecycle one recorded mutation stands, in the four words an operator asks about.
[JsonConverter(typeof(MailboxMutationLifecycleJsonConverter))]
public readonly record struct MailboxMutationLifecycle : IEquatable<MailboxMutationLifecycle>
- Implements
- Inherited Members
Remarks
MailboxMutationStage says which IMAP command a sequence has reached, which is what a resumed attempt needs and what nobody watching a deployment wants to read. This is the reading beside it: whether a change has been asked for and not started, is on its way, is done, or has stopped and needs a person. Three stages collapse into Converging because all three mean the same thing to that question, and none of them collapses into another lifecycle value, so the mapping is total and one-way.
The type is a closed enumeration rather than a C# enum, because the name is the identity: it is the dimension a gauge is broken down by and the word a runbook is written against, and an ordinal would carry no meaning outside this assembly. Nothing persists it — every row stores its stage, and this is derived on the way out — so widening the set is a decision about what an operator is shown rather than a schema change.
Being a struct, default is reachable and names no lifecycle; IsSpecified reports that. Every value reaches a caller through Of(MailboxMutationStage), which is total over the stages, so the default cannot arrive from a record.
Properties
- All
Gets every lifecycle a mutation can stand in.
- Completed
Gets the lifecycle of a change the server has made.
- Converging
Gets the lifecycle of a change whose sequence has started and has not finished.
- DeadLettered
Gets the lifecycle of a change nothing will attempt again, which is waiting for a person.
- IsSpecified
Gets whether this value names a lifecycle rather than the unusable struct default.
- Name
Gets the name a log line and a gauge dimension both use for the lifecycle.
- Pending
Gets the lifecycle of a change that is durable and that no IMAP command has gone out for.
Methods
- Of(MailboxMutationStage)
Reads which lifecycle one recorded stage stands in.
- ToString()
Returns the fully qualified type name of this instance.
- TryParseName(string?, out MailboxMutationLifecycle)
Parses a recorded name back into the lifecycle it names.