#[non_exhaustive]
pub enum ResourceSignalStatus {
Failure,
Success,
Unknown(UnknownVariantValue),
}Expand description
When writing a match expression against ResourceSignalStatus, 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 resourcesignalstatus = unimplemented!();
match resourcesignalstatus {
ResourceSignalStatus::Failure => { /* ... */ },
ResourceSignalStatus::Success => { /* ... */ },
other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
_ => { /* ... */ },
}
The above code demonstrates that when resourcesignalstatus represents
NewFeature, the execution path will lead to the second last match arm,
even though the enum does not contain a variant ResourceSignalStatus::NewFeature
in the current version of SDK. The reason is that the variable other,
created by the @ operator, is bound to
ResourceSignalStatus::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 ResourceSignalStatus::NewFeature is defined.
Specifically, when resourcesignalstatus represents NewFeature,
the execution path will hit the second last match arm as before by virtue of
calling as_str on ResourceSignalStatus::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.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Failure
Success
Unknown(UnknownVariantValue)
Unknown contains new variants that have been added since this code was generated.
Implementations§
source§impl ResourceSignalStatus
impl ResourceSignalStatus
sourcepub fn as_str(&self) -> &str
pub fn as_str(&self) -> &str
Returns the &str value of the enum member.
Examples found in repository?
More examples
2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117
pub fn serialize_operation_crate_operation_signal_resource(
input: &crate::input::SignalResourceInput,
) -> Result<aws_smithy_http::body::SdkBody, aws_smithy_http::operation::error::SerializationError> {
let mut out = String::new();
#[allow(unused_mut)]
let mut writer = aws_smithy_query::QueryWriter::new(&mut out, "SignalResource", "2010-05-15");
#[allow(unused_mut)]
let mut scope_587 = writer.prefix("StackName");
if let Some(var_588) = &input.stack_name {
scope_587.string(var_588);
}
#[allow(unused_mut)]
let mut scope_589 = writer.prefix("LogicalResourceId");
if let Some(var_590) = &input.logical_resource_id {
scope_589.string(var_590);
}
#[allow(unused_mut)]
let mut scope_591 = writer.prefix("UniqueId");
if let Some(var_592) = &input.unique_id {
scope_591.string(var_592);
}
#[allow(unused_mut)]
let mut scope_593 = writer.prefix("Status");
if let Some(var_594) = &input.status {
scope_593.string(var_594.as_str());
}
writer.finish();
Ok(aws_smithy_http::body::SdkBody::from(out))
}Trait Implementations§
source§impl AsRef<str> for ResourceSignalStatus
impl AsRef<str> for ResourceSignalStatus
source§impl Clone for ResourceSignalStatus
impl Clone for ResourceSignalStatus
source§fn clone(&self) -> ResourceSignalStatus
fn clone(&self) -> ResourceSignalStatus
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moresource§impl Debug for ResourceSignalStatus
impl Debug for ResourceSignalStatus
source§impl From<&str> for ResourceSignalStatus
impl From<&str> for ResourceSignalStatus
source§impl FromStr for ResourceSignalStatus
impl FromStr for ResourceSignalStatus
source§impl Hash for ResourceSignalStatus
impl Hash for ResourceSignalStatus
source§impl Ord for ResourceSignalStatus
impl Ord for ResourceSignalStatus
source§fn cmp(&self, other: &ResourceSignalStatus) -> Ordering
fn cmp(&self, other: &ResourceSignalStatus) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
source§impl PartialEq<ResourceSignalStatus> for ResourceSignalStatus
impl PartialEq<ResourceSignalStatus> for ResourceSignalStatus
source§fn eq(&self, other: &ResourceSignalStatus) -> bool
fn eq(&self, other: &ResourceSignalStatus) -> bool
source§impl PartialOrd<ResourceSignalStatus> for ResourceSignalStatus
impl PartialOrd<ResourceSignalStatus> for ResourceSignalStatus
source§fn partial_cmp(&self, other: &ResourceSignalStatus) -> Option<Ordering>
fn partial_cmp(&self, other: &ResourceSignalStatus) -> Option<Ordering>
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 ResourceSignalStatus
impl StructuralEq for ResourceSignalStatus
impl StructuralPartialEq for ResourceSignalStatus
Auto Trait Implementations§
impl RefUnwindSafe for ResourceSignalStatus
impl Send for ResourceSignalStatus
impl Sync for ResourceSignalStatus
impl Unpin for ResourceSignalStatus
impl UnwindSafe for ResourceSignalStatus
Blanket Implementations§
source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.