surrealcs 0.4.4

The SurrealCS client code for SurrealDB
Documentation
use nanoservices_utils::errors::{NanoServiceError, NanoServiceErrorStatus};
use surrealcs_kernel::messages::{
	serialization::bincode_processes::message::serialize_server_message,
	server::wrapper::WrappedServerMessage,
};
use tokio::{io::AsyncWriteExt, net::tcp::OwnedWriteHalf};

/// Sends a message over the TCP connection.
///
/// # Arguments
/// * `writer`: The writer to the TCP stream
/// * `message`: The message to be sent
pub async fn send_message_over_tcp(
	writer: &mut OwnedWriteHalf,
	message: &WrappedServerMessage,
) -> Result<(), NanoServiceError> {
	let msg = match serialize_server_message(message) {
		Ok(msg) => msg,
		Err(error) => {
			return Err(error);
		}
	};
	match writer.write_all(&msg).await {
		Ok(_) => {}
		Err(error) => {
			return Err(NanoServiceError::new(
				format!("Error sending message over the TCP connection: {:?}", error),
				NanoServiceErrorStatus::Unknown,
			));
		}
	}
	Ok(())
}