pub fn ser_rule_action(
encoder: &mut ::aws_smithy_cbor::Encoder,
input: &crate::types::RuleAction,
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
encoder.map(1);
match input {
crate::types::RuleAction::Drop(inner) => {
encoder.str("Drop");
crate::protocol_serde::shape_drop_action::ser_drop_action(encoder, inner)?;
}
crate::types::RuleAction::Relay(inner) => {
encoder.str("Relay");
crate::protocol_serde::shape_relay_action::ser_relay_action(encoder, inner)?;
}
crate::types::RuleAction::Archive(inner) => {
encoder.str("Archive");
crate::protocol_serde::shape_archive_action::ser_archive_action(encoder, inner)?;
}
crate::types::RuleAction::WriteToS3(inner) => {
encoder.str("WriteToS3");
crate::protocol_serde::shape_s3_action::ser_s3_action(encoder, inner)?;
}
crate::types::RuleAction::Send(inner) => {
encoder.str("Send");
crate::protocol_serde::shape_send_action::ser_send_action(encoder, inner)?;
}
crate::types::RuleAction::AddHeader(inner) => {
encoder.str("AddHeader");
crate::protocol_serde::shape_add_header_action::ser_add_header_action(encoder, inner)?;
}
crate::types::RuleAction::ReplaceRecipient(inner) => {
encoder.str("ReplaceRecipient");
crate::protocol_serde::shape_replace_recipient_action::ser_replace_recipient_action(encoder, inner)?;
}
crate::types::RuleAction::DeliverToMailbox(inner) => {
encoder.str("DeliverToMailbox");
crate::protocol_serde::shape_deliver_to_mailbox_action::ser_deliver_to_mailbox_action(encoder, inner)?;
}
crate::types::RuleAction::DeliverToQBusiness(inner) => {
encoder.str("DeliverToQBusiness");
crate::protocol_serde::shape_deliver_to_q_business_action::ser_deliver_to_q_business_action(encoder, inner)?;
}
crate::types::RuleAction::PublishToSns(inner) => {
encoder.str("PublishToSns");
crate::protocol_serde::shape_sns_action::ser_sns_action(encoder, inner)?;
}
crate::types::RuleAction::Bounce(inner) => {
encoder.str("Bounce");
crate::protocol_serde::shape_bounce_action::ser_bounce_action(encoder, inner)?;
}
crate::types::RuleAction::InvokeLambda(inner) => {
encoder.str("InvokeLambda");
crate::protocol_serde::shape_invoke_lambda_action::ser_invoke_lambda_action(encoder, inner)?;
}
crate::types::RuleAction::Unknown => {
return ::std::result::Result::Err(::aws_smithy_types::error::operation::SerializationError::unknown_variant("RuleAction"))
}
}
::std::result::Result::Ok(())
}
pub(crate) fn de_rule_action(
decoder: &mut ::aws_smithy_cbor::Decoder,
depth: u32,
) -> ::std::result::Result<crate::types::RuleAction, ::aws_smithy_cbor::decode::DeserializeError> {
if depth >= 128u32 {
return Err(::aws_smithy_cbor::decode::DeserializeError::custom(
"maximum nesting depth exceeded",
decoder.position(),
));
}
#[allow(unused_variables)]
fn pair(
decoder: &mut ::aws_smithy_cbor::Decoder,
depth: u32,
) -> ::std::result::Result<crate::types::RuleAction, ::aws_smithy_cbor::decode::DeserializeError> {
Ok(match decoder.str()?.as_ref() {
"Drop" => crate::types::RuleAction::Drop(crate::protocol_serde::shape_drop_action::de_drop_action(decoder, depth + 1)?),
"Relay" => crate::types::RuleAction::Relay(crate::protocol_serde::shape_relay_action::de_relay_action(decoder, depth + 1)?),
"Archive" => crate::types::RuleAction::Archive(crate::protocol_serde::shape_archive_action::de_archive_action(decoder, depth + 1)?),
"WriteToS3" => crate::types::RuleAction::WriteToS3(crate::protocol_serde::shape_s3_action::de_s3_action(decoder, depth + 1)?),
"Send" => crate::types::RuleAction::Send(crate::protocol_serde::shape_send_action::de_send_action(decoder, depth + 1)?),
"AddHeader" => {
crate::types::RuleAction::AddHeader(crate::protocol_serde::shape_add_header_action::de_add_header_action(decoder, depth + 1)?)
}
"ReplaceRecipient" => crate::types::RuleAction::ReplaceRecipient(
crate::protocol_serde::shape_replace_recipient_action::de_replace_recipient_action(decoder, depth + 1)?,
),
"DeliverToMailbox" => crate::types::RuleAction::DeliverToMailbox(
crate::protocol_serde::shape_deliver_to_mailbox_action::de_deliver_to_mailbox_action(decoder, depth + 1)?,
),
"DeliverToQBusiness" => crate::types::RuleAction::DeliverToQBusiness(
crate::protocol_serde::shape_deliver_to_q_business_action::de_deliver_to_q_business_action(decoder, depth + 1)?,
),
"PublishToSns" => crate::types::RuleAction::PublishToSns(crate::protocol_serde::shape_sns_action::de_sns_action(decoder, depth + 1)?),
"Bounce" => crate::types::RuleAction::Bounce(crate::protocol_serde::shape_bounce_action::de_bounce_action(decoder, depth + 1)?),
"InvokeLambda" => crate::types::RuleAction::InvokeLambda(crate::protocol_serde::shape_invoke_lambda_action::de_invoke_lambda_action(
decoder,
depth + 1,
)?),
_ => {
decoder.skip()?;
crate::types::RuleAction::Unknown
}
})
}
match decoder.map()? {
None => {
let variant = pair(decoder, depth)?;
match decoder.datatype()? {
::aws_smithy_cbor::data::Type::Break => {
decoder.skip()?;
Ok(variant)
}
ty => Err(::aws_smithy_cbor::decode::DeserializeError::unexpected_union_variant(
ty,
decoder.position(),
)),
}
}
Some(1) => pair(decoder, depth),
Some(_) => Err(::aws_smithy_cbor::decode::DeserializeError::mixed_union_variants(decoder.position())),
}
}