Code/RpcTransport.cs
namespace Orizon;

/// <summary>
/// Provides methods to send RPC requests and responses between the client and server.
/// </summary>
internal static class RpcTransport
{
	/// <summary>
	/// Sends an RPC request to the server.
	/// </summary>
	/// <typeparam name="TRequest">The type of the request.</typeparam>
	/// <param name="request">The request to send.</param>
	[ClientOnly]
	public static void SendToServer<TRequest>( TRequest request ) where TRequest : struct, IRpcRequest
	{
		RpcServer.HandleRequest( request );
	}

	/// <summary>
	/// Sends an RPC response to the client.
	/// </summary>
	/// <typeparam name="TResponse">The type of the response.</typeparam>
	/// <param name="response">The response to send.</param>
	[HostOnly]
	public static void SendToClient<TResponse>( TResponse response ) where TResponse : IRpcResponse
	{
		RpcClient.OnRpcResponse( response );
	}
}