rivet-client-api-chat 0.0.1

Rivet service enabling identities to send and receive chat messages
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub fn serialize_structure_crate_input_send_chat_message_input(
	object: &mut aws_smithy_json::serialize::JsonObjectWriter,
	input: &crate::input::SendChatMessageInput,
) -> Result<(), aws_smithy_http::operation::SerializationError> {
	if let Some(var_1) = &input.message_body {
		let mut object_2 = object.key("message_body").start_object();
		crate::json_ser::serialize_union_crate_model_send_message_body(&mut object_2, var_1)?;
		object_2.finish();
	}
	if let Some(var_3) = &input.topic {
		let mut object_4 = object.key("topic").start_object();
		crate::json_ser::serialize_union_crate_model_send_chat_topic(&mut object_4, var_3)?;
		object_4.finish();
	}
	Ok(())
}

pub fn serialize_structure_crate_input_set_thread_read_input(
	object: &mut aws_smithy_json::serialize::JsonObjectWriter,
	input: &crate::input::SetThreadReadInput,
) -> Result<(), aws_smithy_http::operation::SerializationError> {
	if let Some(var_5) = &input.last_read_ts {
		object.key("last_read_ts").number(
			#[allow(clippy::useless_conversion)]
			aws_smithy_types::Number::NegInt((*var_5).into()),
		);
	}
	Ok(())
}

pub fn serialize_structure_crate_input_set_typing_status_input(
	object: &mut aws_smithy_json::serialize::JsonObjectWriter,
	input: &crate::input::SetTypingStatusInput,
) -> Result<(), aws_smithy_http::operation::SerializationError> {
	if let Some(var_6) = &input.status {
		let mut object_7 = object.key("status").start_object();
		crate::json_ser::serialize_union_crate_model_chat_typing_status(&mut object_7, var_6)?;
		object_7.finish();
	}
	Ok(())
}

pub fn serialize_union_crate_model_send_message_body(
	object_2: &mut aws_smithy_json::serialize::JsonObjectWriter,
	input: &crate::model::SendMessageBody,
) -> Result<(), aws_smithy_http::operation::SerializationError> {
	match input {
		crate::model::SendMessageBody::Text(inner) => {
			let mut object_8 = object_2.key("text").start_object();
			crate::json_ser::serialize_structure_crate_model_send_message_body_text(
				&mut object_8,
				inner,
			)?;
			object_8.finish();
		}
		crate::model::SendMessageBody::Unknown => {
			return Err(
				aws_smithy_http::operation::SerializationError::unknown_variant("SendMessageBody"),
			)
		}
	}
	Ok(())
}

pub fn serialize_union_crate_model_send_chat_topic(
	object_4: &mut aws_smithy_json::serialize::JsonObjectWriter,
	input: &crate::model::SendChatTopic,
) -> Result<(), aws_smithy_http::operation::SerializationError> {
	match input {
		crate::model::SendChatTopic::ThreadId(inner) => {
			object_4.key("thread_id").string(inner.as_str());
		}
		crate::model::SendChatTopic::Group(inner) => {
			let mut object_9 = object_4.key("group").start_object();
			crate::json_ser::serialize_structure_crate_model_send_chat_topic_group(
				&mut object_9,
				inner,
			)?;
			object_9.finish();
		}
		crate::model::SendChatTopic::Party(inner) => {
			let mut object_10 = object_4.key("party").start_object();
			crate::json_ser::serialize_structure_crate_model_send_chat_topic_party(
				&mut object_10,
				inner,
			)?;
			object_10.finish();
		}
		crate::model::SendChatTopic::Direct(inner) => {
			let mut object_11 = object_4.key("direct").start_object();
			crate::json_ser::serialize_structure_crate_model_send_chat_topic_direct(
				&mut object_11,
				inner,
			)?;
			object_11.finish();
		}
		crate::model::SendChatTopic::Unknown => {
			return Err(
				aws_smithy_http::operation::SerializationError::unknown_variant("SendChatTopic"),
			)
		}
	}
	Ok(())
}

pub fn serialize_union_crate_model_chat_typing_status(
	object_7: &mut aws_smithy_json::serialize::JsonObjectWriter,
	input: &crate::model::ChatTypingStatus,
) -> Result<(), aws_smithy_http::operation::SerializationError> {
	match input {
		crate::model::ChatTypingStatus::Idle(inner) => {
			let mut object_12 = object_7.key("idle").start_object();
			crate::json_ser::serialize_structure_crate_model_unit(&mut object_12, inner)?;
			object_12.finish();
		}
		crate::model::ChatTypingStatus::Typing(inner) => {
			let mut object_13 = object_7.key("typing").start_object();
			crate::json_ser::serialize_structure_crate_model_unit(&mut object_13, inner)?;
			object_13.finish();
		}
		crate::model::ChatTypingStatus::Unknown => {
			return Err(
				aws_smithy_http::operation::SerializationError::unknown_variant("ChatTypingStatus"),
			)
		}
	}
	Ok(())
}

pub fn serialize_structure_crate_model_send_message_body_text(
	object: &mut aws_smithy_json::serialize::JsonObjectWriter,
	input: &crate::model::SendMessageBodyText,
) -> Result<(), aws_smithy_http::operation::SerializationError> {
	if let Some(var_14) = &input.body {
		object.key("body").string(var_14.as_str());
	}
	Ok(())
}

pub fn serialize_structure_crate_model_send_chat_topic_group(
	object: &mut aws_smithy_json::serialize::JsonObjectWriter,
	input: &crate::model::SendChatTopicGroup,
) -> Result<(), aws_smithy_http::operation::SerializationError> {
	if let Some(var_15) = &input.group_id {
		object.key("group_id").string(var_15.as_str());
	}
	Ok(())
}

pub fn serialize_structure_crate_model_send_chat_topic_party(
	object: &mut aws_smithy_json::serialize::JsonObjectWriter,
	input: &crate::model::SendChatTopicParty,
) -> Result<(), aws_smithy_http::operation::SerializationError> {
	if let Some(var_16) = &input.party_id {
		object.key("party_id").string(var_16.as_str());
	}
	Ok(())
}

pub fn serialize_structure_crate_model_send_chat_topic_direct(
	object: &mut aws_smithy_json::serialize::JsonObjectWriter,
	input: &crate::model::SendChatTopicDirect,
) -> Result<(), aws_smithy_http::operation::SerializationError> {
	if let Some(var_17) = &input.identity_id {
		object.key("identity_id").string(var_17.as_str());
	}
	Ok(())
}

pub fn serialize_structure_crate_model_unit(
	object: &mut aws_smithy_json::serialize::JsonObjectWriter,
	input: &crate::model::Unit,
) -> Result<(), aws_smithy_http::operation::SerializationError> {
	let (_, _) = (object, input);
	Ok(())
}