use std::fmt;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum DynamoDBOperation {
CreateTable,
DeleteTable,
UpdateTable,
DescribeTable,
ListTables,
PutItem,
GetItem,
UpdateItem,
DeleteItem,
Query,
Scan,
BatchGetItem,
BatchWriteItem,
TagResource,
UntagResource,
ListTagsOfResource,
DescribeTimeToLive,
UpdateTimeToLive,
TransactGetItems,
TransactWriteItems,
DescribeLimits,
DescribeEndpoints,
}
impl DynamoDBOperation {
#[must_use]
pub fn as_str(&self) -> &'static str {
match self {
Self::CreateTable => "CreateTable",
Self::DeleteTable => "DeleteTable",
Self::UpdateTable => "UpdateTable",
Self::DescribeTable => "DescribeTable",
Self::ListTables => "ListTables",
Self::PutItem => "PutItem",
Self::GetItem => "GetItem",
Self::UpdateItem => "UpdateItem",
Self::DeleteItem => "DeleteItem",
Self::Query => "Query",
Self::Scan => "Scan",
Self::BatchGetItem => "BatchGetItem",
Self::BatchWriteItem => "BatchWriteItem",
Self::TagResource => "TagResource",
Self::UntagResource => "UntagResource",
Self::ListTagsOfResource => "ListTagsOfResource",
Self::DescribeTimeToLive => "DescribeTimeToLive",
Self::UpdateTimeToLive => "UpdateTimeToLive",
Self::TransactGetItems => "TransactGetItems",
Self::TransactWriteItems => "TransactWriteItems",
Self::DescribeLimits => "DescribeLimits",
Self::DescribeEndpoints => "DescribeEndpoints",
}
}
#[must_use]
pub fn from_name(name: &str) -> Option<Self> {
match name {
"CreateTable" => Some(Self::CreateTable),
"DeleteTable" => Some(Self::DeleteTable),
"UpdateTable" => Some(Self::UpdateTable),
"DescribeTable" => Some(Self::DescribeTable),
"ListTables" => Some(Self::ListTables),
"PutItem" => Some(Self::PutItem),
"GetItem" => Some(Self::GetItem),
"UpdateItem" => Some(Self::UpdateItem),
"DeleteItem" => Some(Self::DeleteItem),
"Query" => Some(Self::Query),
"Scan" => Some(Self::Scan),
"BatchGetItem" => Some(Self::BatchGetItem),
"BatchWriteItem" => Some(Self::BatchWriteItem),
"TagResource" => Some(Self::TagResource),
"UntagResource" => Some(Self::UntagResource),
"ListTagsOfResource" => Some(Self::ListTagsOfResource),
"DescribeTimeToLive" => Some(Self::DescribeTimeToLive),
"UpdateTimeToLive" => Some(Self::UpdateTimeToLive),
"TransactGetItems" => Some(Self::TransactGetItems),
"TransactWriteItems" => Some(Self::TransactWriteItems),
"DescribeLimits" => Some(Self::DescribeLimits),
"DescribeEndpoints" => Some(Self::DescribeEndpoints),
_ => None,
}
}
}
impl fmt::Display for DynamoDBOperation {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
f.write_str(self.as_str())
}
}