Enum aws_sdk_sesv2::types::Metric
source · #[non_exhaustive]pub enum Metric {
Click,
Complaint,
Delivery,
DeliveryClick,
DeliveryComplaint,
DeliveryOpen,
Open,
PermanentBounce,
Send,
TransientBounce,
Unknown(UnknownVariantValue),
}Expand description
When writing a match expression against Metric, it is important to ensure
your code is forward-compatible. That is, if a match arm handles a case for a
feature that is supported by the service but has not been represented as an enum
variant in a current version of SDK, your code should continue to work when you
upgrade SDK to a future version in which the enum does include a variant for that
feature.
Here is an example of how you can make a match expression forward-compatible:
# let metric = unimplemented!();
match metric {
Metric::Click => { /* ... */ },
Metric::Complaint => { /* ... */ },
Metric::Delivery => { /* ... */ },
Metric::DeliveryClick => { /* ... */ },
Metric::DeliveryComplaint => { /* ... */ },
Metric::DeliveryOpen => { /* ... */ },
Metric::Open => { /* ... */ },
Metric::PermanentBounce => { /* ... */ },
Metric::Send => { /* ... */ },
Metric::TransientBounce => { /* ... */ },
other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
_ => { /* ... */ },
}
The above code demonstrates that when metric represents
NewFeature, the execution path will lead to the second last match arm,
even though the enum does not contain a variant Metric::NewFeature
in the current version of SDK. The reason is that the variable other,
created by the @ operator, is bound to
Metric::Unknown(UnknownVariantValue("NewFeature".to_owned()))
and calling as_str on it yields "NewFeature".
This match expression is forward-compatible when executed with a newer
version of SDK where the variant Metric::NewFeature is defined.
Specifically, when metric represents NewFeature,
the execution path will hit the second last match arm as before by virtue of
calling as_str on Metric::NewFeature also yielding "NewFeature".
Explicitly matching on the Unknown variant should
be avoided for two reasons:
- The inner data
UnknownVariantValueis opaque, and no further information can be extracted. - It might inadvertently shadow other intended match arms.
The metric to export, can be one of the following:
-
SEND- Emails sent eligible for tracking in the VDM dashboard. This excludes emails sent to the mailbox simulator and emails addressed to more than one recipient. -
COMPLAINT- Complaints received for your account. This excludes complaints from the mailbox simulator, those originating from your account-level suppression list (if enabled), and those for emails addressed to more than one recipient -
PERMANENT_BOUNCE- Permanent bounces - i.e., feedback received for emails sent to non-existent mailboxes. Excludes bounces from the mailbox simulator, those originating from your account-level suppression list (if enabled), and those for emails addressed to more than one recipient. -
TRANSIENT_BOUNCE- Transient bounces - i.e., feedback received for delivery failures excluding issues with non-existent mailboxes. Excludes bounces from the mailbox simulator, and those for emails addressed to more than one recipient. -
OPEN- Unique open events for emails including open trackers. Excludes opens for emails addressed to more than one recipient. -
CLICK- Unique click events for emails including wrapped links. Excludes clicks for emails addressed to more than one recipient. -
DELIVERY- Successful deliveries for email sending attempts. Excludes deliveries to the mailbox simulator and for emails addressed to more than one recipient. -
DELIVERY_OPEN- Successful deliveries for email sending attempts. Excludes deliveries to the mailbox simulator, for emails addressed to more than one recipient, and emails without open trackers. -
DELIVERY_CLICK- Successful deliveries for email sending attempts. Excludes deliveries to the mailbox simulator, for emails addressed to more than one recipient, and emails without click trackers. -
DELIVERY_COMPLAINT- Successful deliveries for email sending attempts. Excludes deliveries to the mailbox simulator, for emails addressed to more than one recipient, and emails addressed to recipients hosted by ISPs with which Amazon SES does not have a feedback loop agreement.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Click
Complaint
Delivery
DeliveryClick
DeliveryComplaint
DeliveryOpen
Open
PermanentBounce
Send
TransientBounce
Unknown(UnknownVariantValue)
Unknown. See the docs on this enum for the correct way to handle unknown variants.Unknown contains new variants that have been added since this code was generated.
Implementations§
Trait Implementations§
source§impl Ord for Metric
impl Ord for Metric
source§impl PartialEq for Metric
impl PartialEq for Metric
source§impl PartialOrd for Metric
impl PartialOrd for Metric
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self and other) and is used by the <=
operator. Read moreimpl Eq for Metric
impl StructuralEq for Metric
impl StructuralPartialEq for Metric
Auto Trait Implementations§
impl RefUnwindSafe for Metric
impl Send for Metric
impl Sync for Metric
impl Unpin for Metric
impl UnwindSafe for Metric
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.