#[non_exhaustive]pub enum SetErrorType {
Show 24 variants
Forbidden,
OverQuota,
TooLarge,
RateLimit,
NotFound,
InvalidPatch,
WillDestroy,
InvalidProperties,
Singleton,
AlreadyExists,
MailboxHasChild,
MailboxHasEmail,
TooManyKeywords,
TooManyMailboxes,
BlobNotFound,
ForbiddenFrom,
InvalidEmail,
TooManyRecipients,
NoRecipients,
InvalidRecipients,
ForbiddenMailFrom,
ForbiddenToSend,
CannotUnsend,
Other(String),
}Expand description
The machine-readable type for a SetError (RFC 8620 §5.3 and RFC 8621).
§Variant policy
The variant set below carries:
- The 10 RFC 8620 §5.3 and §5.4 base error types
(
Forbidden,OverQuota,TooLarge,RateLimit,NotFound,InvalidPatch,WillDestroy,InvalidProperties,Singleton,AlreadyExists). - 13 RFC 8621 mail-specific error types
(
MailboxHasChild,MailboxHasEmail,TooManyKeywords,TooManyMailboxes,BlobNotFound,ForbiddenFrom,InvalidEmail,TooManyRecipients,NoRecipients,InvalidRecipients,ForbiddenMailFrom,ForbiddenToSend,CannotUnsend). They stay typed here so mail servers and mail clients share one typed match (bd:JMAP-wlip.35). Self::Otherfor every other wire string.
New extension errors MUST use Self::Other, built with
SetErrorType::from("rateLimited"), SetError::new("invalidSieve")
and so on. Do not add further extension-specific variants here.
From<&str> and Deserialize share one mapping: a known wire string
always builds its typed variant, never Other (bd:JMAP-wlip.22).
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Forbidden
The action would violate an ACL or other access control policy.
OverQuota
Creating or modifying the object would exceed a server quota.
TooLarge
The object is too large to be stored by the server.
RateLimit
The server is rate-limiting this client.
NotFound
The object to be updated or destroyed does not exist.
InvalidPatch
The patch object is not a valid JSON Merge Patch or cannot be applied.
WillDestroy
The client requested destruction of an object that will be destroyed implicitly when another object is destroyed.
InvalidProperties
One or more properties have invalid values.
Singleton
The object type is a singleton and cannot be created or destroyed.
AlreadyExists
RFC 8620 §5.4 — an object with the same unique key already exists.
MailboxHasChild
RFC 8621 §2.5 — Mailbox has child mailboxes and cannot be destroyed.
MailboxHasEmail
RFC 8621 §2.5 — Mailbox contains emails and onDestroyRemoveEmails is false.
TooManyKeywords
RFC 8621 §5.5 — Too many keywords on the Email.
TooManyMailboxes
RFC 8621 §5.5 — Email is in too many mailboxes.
BlobNotFound
RFC 8621 §5.5 — A referenced blob was not found.
ForbiddenFrom
RFC 8621 §6.3 — The from address is not permitted for this Identity.
InvalidEmail
RFC 8621 §7.5 — The Email is invalid for submission.
TooManyRecipients
RFC 8621 §7.5 — Too many recipients.
NoRecipients
RFC 8621 §7.5 — No recipients specified.
InvalidRecipients
RFC 8621 §7.5 — One or more recipient addresses are invalid.
ForbiddenMailFrom
RFC 8621 §7.5 — The MAIL FROM address is not permitted.
ForbiddenToSend
RFC 8621 §7.5 — The user does not have send permission.
CannotUnsend
RFC 8621 §7.5 — The submission cannot be undone.
Other(String)
An extension-defined error type not covered by the variants above.
Serializes as the inner string directly (e.g. "mdnAlreadySent").