#[non_exhaustive]pub enum GameServerGroupInstanceType {
Show 89 variants
C42xlarge,
C44xlarge,
C48xlarge,
C4Large,
C4Xlarge,
C512xlarge,
C518xlarge,
C524xlarge,
C52xlarge,
C54xlarge,
C59xlarge,
C5Large,
C5Xlarge,
C5a12xlarge,
C5a16xlarge,
C5a24xlarge,
C5a2xlarge,
C5a4xlarge,
C5a8xlarge,
C5aLarge,
C5aXlarge,
C6g12xlarge,
C6g16xlarge,
C6g2xlarge,
C6g4xlarge,
C6g8xlarge,
C6gLarge,
C6gMedium,
C6gXlarge,
M410xlarge,
M42xlarge,
M44xlarge,
M4Large,
M4Xlarge,
M512xlarge,
M516xlarge,
M524xlarge,
M52xlarge,
M54xlarge,
M58xlarge,
M5Large,
M5Xlarge,
M5a12xlarge,
M5a16xlarge,
M5a24xlarge,
M5a2xlarge,
M5a4xlarge,
M5a8xlarge,
M5aLarge,
M5aXlarge,
M6g12xlarge,
M6g16xlarge,
M6g2xlarge,
M6g4xlarge,
M6g8xlarge,
M6gLarge,
M6gMedium,
M6gXlarge,
R416xlarge,
R42xlarge,
R44xlarge,
R48xlarge,
R4Large,
R4Xlarge,
R512xlarge,
R516xlarge,
R524xlarge,
R52xlarge,
R54xlarge,
R58xlarge,
R5Large,
R5Xlarge,
R5a12xlarge,
R5a16xlarge,
R5a24xlarge,
R5a2xlarge,
R5a4xlarge,
R5a8xlarge,
R5aLarge,
R5aXlarge,
R6g12xlarge,
R6g16xlarge,
R6g2xlarge,
R6g4xlarge,
R6g8xlarge,
R6gLarge,
R6gMedium,
R6gXlarge,
Unknown(UnknownVariantValue),
}
Expand description
When writing a match expression against GameServerGroupInstanceType
, 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 gameservergroupinstancetype = unimplemented!();
match gameservergroupinstancetype {
GameServerGroupInstanceType::C42xlarge => { /* ... */ },
GameServerGroupInstanceType::C44xlarge => { /* ... */ },
GameServerGroupInstanceType::C48xlarge => { /* ... */ },
GameServerGroupInstanceType::C4Large => { /* ... */ },
GameServerGroupInstanceType::C4Xlarge => { /* ... */ },
GameServerGroupInstanceType::C512xlarge => { /* ... */ },
GameServerGroupInstanceType::C518xlarge => { /* ... */ },
GameServerGroupInstanceType::C524xlarge => { /* ... */ },
GameServerGroupInstanceType::C52xlarge => { /* ... */ },
GameServerGroupInstanceType::C54xlarge => { /* ... */ },
GameServerGroupInstanceType::C59xlarge => { /* ... */ },
GameServerGroupInstanceType::C5Large => { /* ... */ },
GameServerGroupInstanceType::C5Xlarge => { /* ... */ },
GameServerGroupInstanceType::C5a12xlarge => { /* ... */ },
GameServerGroupInstanceType::C5a16xlarge => { /* ... */ },
GameServerGroupInstanceType::C5a24xlarge => { /* ... */ },
GameServerGroupInstanceType::C5a2xlarge => { /* ... */ },
GameServerGroupInstanceType::C5a4xlarge => { /* ... */ },
GameServerGroupInstanceType::C5a8xlarge => { /* ... */ },
GameServerGroupInstanceType::C5aLarge => { /* ... */ },
GameServerGroupInstanceType::C5aXlarge => { /* ... */ },
GameServerGroupInstanceType::C6g12xlarge => { /* ... */ },
GameServerGroupInstanceType::C6g16xlarge => { /* ... */ },
GameServerGroupInstanceType::C6g2xlarge => { /* ... */ },
GameServerGroupInstanceType::C6g4xlarge => { /* ... */ },
GameServerGroupInstanceType::C6g8xlarge => { /* ... */ },
GameServerGroupInstanceType::C6gLarge => { /* ... */ },
GameServerGroupInstanceType::C6gMedium => { /* ... */ },
GameServerGroupInstanceType::C6gXlarge => { /* ... */ },
GameServerGroupInstanceType::M410xlarge => { /* ... */ },
GameServerGroupInstanceType::M42xlarge => { /* ... */ },
GameServerGroupInstanceType::M44xlarge => { /* ... */ },
GameServerGroupInstanceType::M4Large => { /* ... */ },
GameServerGroupInstanceType::M4Xlarge => { /* ... */ },
GameServerGroupInstanceType::M512xlarge => { /* ... */ },
GameServerGroupInstanceType::M516xlarge => { /* ... */ },
GameServerGroupInstanceType::M524xlarge => { /* ... */ },
GameServerGroupInstanceType::M52xlarge => { /* ... */ },
GameServerGroupInstanceType::M54xlarge => { /* ... */ },
GameServerGroupInstanceType::M58xlarge => { /* ... */ },
GameServerGroupInstanceType::M5Large => { /* ... */ },
GameServerGroupInstanceType::M5Xlarge => { /* ... */ },
GameServerGroupInstanceType::M5a12xlarge => { /* ... */ },
GameServerGroupInstanceType::M5a16xlarge => { /* ... */ },
GameServerGroupInstanceType::M5a24xlarge => { /* ... */ },
GameServerGroupInstanceType::M5a2xlarge => { /* ... */ },
GameServerGroupInstanceType::M5a4xlarge => { /* ... */ },
GameServerGroupInstanceType::M5a8xlarge => { /* ... */ },
GameServerGroupInstanceType::M5aLarge => { /* ... */ },
GameServerGroupInstanceType::M5aXlarge => { /* ... */ },
GameServerGroupInstanceType::M6g12xlarge => { /* ... */ },
GameServerGroupInstanceType::M6g16xlarge => { /* ... */ },
GameServerGroupInstanceType::M6g2xlarge => { /* ... */ },
GameServerGroupInstanceType::M6g4xlarge => { /* ... */ },
GameServerGroupInstanceType::M6g8xlarge => { /* ... */ },
GameServerGroupInstanceType::M6gLarge => { /* ... */ },
GameServerGroupInstanceType::M6gMedium => { /* ... */ },
GameServerGroupInstanceType::M6gXlarge => { /* ... */ },
GameServerGroupInstanceType::R416xlarge => { /* ... */ },
GameServerGroupInstanceType::R42xlarge => { /* ... */ },
GameServerGroupInstanceType::R44xlarge => { /* ... */ },
GameServerGroupInstanceType::R48xlarge => { /* ... */ },
GameServerGroupInstanceType::R4Large => { /* ... */ },
GameServerGroupInstanceType::R4Xlarge => { /* ... */ },
GameServerGroupInstanceType::R512xlarge => { /* ... */ },
GameServerGroupInstanceType::R516xlarge => { /* ... */ },
GameServerGroupInstanceType::R524xlarge => { /* ... */ },
GameServerGroupInstanceType::R52xlarge => { /* ... */ },
GameServerGroupInstanceType::R54xlarge => { /* ... */ },
GameServerGroupInstanceType::R58xlarge => { /* ... */ },
GameServerGroupInstanceType::R5Large => { /* ... */ },
GameServerGroupInstanceType::R5Xlarge => { /* ... */ },
GameServerGroupInstanceType::R5a12xlarge => { /* ... */ },
GameServerGroupInstanceType::R5a16xlarge => { /* ... */ },
GameServerGroupInstanceType::R5a24xlarge => { /* ... */ },
GameServerGroupInstanceType::R5a2xlarge => { /* ... */ },
GameServerGroupInstanceType::R5a4xlarge => { /* ... */ },
GameServerGroupInstanceType::R5a8xlarge => { /* ... */ },
GameServerGroupInstanceType::R5aLarge => { /* ... */ },
GameServerGroupInstanceType::R5aXlarge => { /* ... */ },
GameServerGroupInstanceType::R6g12xlarge => { /* ... */ },
GameServerGroupInstanceType::R6g16xlarge => { /* ... */ },
GameServerGroupInstanceType::R6g2xlarge => { /* ... */ },
GameServerGroupInstanceType::R6g4xlarge => { /* ... */ },
GameServerGroupInstanceType::R6g8xlarge => { /* ... */ },
GameServerGroupInstanceType::R6gLarge => { /* ... */ },
GameServerGroupInstanceType::R6gMedium => { /* ... */ },
GameServerGroupInstanceType::R6gXlarge => { /* ... */ },
other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
_ => { /* ... */ },
}
The above code demonstrates that when gameservergroupinstancetype
represents
NewFeature
, the execution path will lead to the second last match arm,
even though the enum does not contain a variant GameServerGroupInstanceType::NewFeature
in the current version of SDK. The reason is that the variable other
,
created by the @
operator, is bound to
GameServerGroupInstanceType::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 GameServerGroupInstanceType::NewFeature
is defined.
Specifically, when gameservergroupinstancetype
represents NewFeature
,
the execution path will hit the second last match arm as before by virtue of
calling as_str
on GameServerGroupInstanceType::NewFeature
also yielding "NewFeature"
.
Explicitly matching on the Unknown
variant should
be avoided for two reasons:
- The inner data
UnknownVariantValue
is 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
C42xlarge
C44xlarge
C48xlarge
C4Large
C4Xlarge
C512xlarge
C518xlarge
C524xlarge
C52xlarge
C54xlarge
C59xlarge
C5Large
C5Xlarge
C5a12xlarge
C5a16xlarge
C5a24xlarge
C5a2xlarge
C5a4xlarge
C5a8xlarge
C5aLarge
C5aXlarge
C6g12xlarge
C6g16xlarge
C6g2xlarge
C6g4xlarge
C6g8xlarge
C6gLarge
C6gMedium
C6gXlarge
M410xlarge
M42xlarge
M44xlarge
M4Large
M4Xlarge
M512xlarge
M516xlarge
M524xlarge
M52xlarge
M54xlarge
M58xlarge
M5Large
M5Xlarge
M5a12xlarge
M5a16xlarge
M5a24xlarge
M5a2xlarge
M5a4xlarge
M5a8xlarge
M5aLarge
M5aXlarge
M6g12xlarge
M6g16xlarge
M6g2xlarge
M6g4xlarge
M6g8xlarge
M6gLarge
M6gMedium
M6gXlarge
R416xlarge
R42xlarge
R44xlarge
R48xlarge
R4Large
R4Xlarge
R512xlarge
R516xlarge
R524xlarge
R52xlarge
R54xlarge
R58xlarge
R5Large
R5Xlarge
R5a12xlarge
R5a16xlarge
R5a24xlarge
R5a2xlarge
R5a4xlarge
R5a8xlarge
R5aLarge
R5aXlarge
R6g12xlarge
R6g16xlarge
R6g2xlarge
R6g4xlarge
R6g8xlarge
R6gLarge
R6gMedium
R6gXlarge
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§
source§impl GameServerGroupInstanceType
impl GameServerGroupInstanceType
sourcepub fn try_parse(value: &str) -> Result<Self, UnknownVariantError>
pub fn try_parse(value: &str) -> Result<Self, UnknownVariantError>
Parses the enum value while disallowing unknown variants.
Unknown variants will result in an error.
Trait Implementations§
source§impl AsRef<str> for GameServerGroupInstanceType
impl AsRef<str> for GameServerGroupInstanceType
source§impl Clone for GameServerGroupInstanceType
impl Clone for GameServerGroupInstanceType
source§fn clone(&self) -> GameServerGroupInstanceType
fn clone(&self) -> GameServerGroupInstanceType
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for GameServerGroupInstanceType
impl Debug for GameServerGroupInstanceType
source§impl From<&str> for GameServerGroupInstanceType
impl From<&str> for GameServerGroupInstanceType
source§impl Hash for GameServerGroupInstanceType
impl Hash for GameServerGroupInstanceType
source§impl Ord for GameServerGroupInstanceType
impl Ord for GameServerGroupInstanceType
source§fn cmp(&self, other: &GameServerGroupInstanceType) -> Ordering
fn cmp(&self, other: &GameServerGroupInstanceType) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
source§impl PartialEq for GameServerGroupInstanceType
impl PartialEq for GameServerGroupInstanceType
source§fn eq(&self, other: &GameServerGroupInstanceType) -> bool
fn eq(&self, other: &GameServerGroupInstanceType) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd for GameServerGroupInstanceType
impl PartialOrd for GameServerGroupInstanceType
source§fn partial_cmp(&self, other: &GameServerGroupInstanceType) -> Option<Ordering>
fn partial_cmp(&self, other: &GameServerGroupInstanceType) -> 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 GameServerGroupInstanceType
impl StructuralPartialEq for GameServerGroupInstanceType
Auto Trait Implementations§
impl Freeze for GameServerGroupInstanceType
impl RefUnwindSafe for GameServerGroupInstanceType
impl Send for GameServerGroupInstanceType
impl Sync for GameServerGroupInstanceType
impl Unpin for GameServerGroupInstanceType
impl UnwindSafe for GameServerGroupInstanceType
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
source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more