terrazzo-terminal 0.2.7

A simple web-based terminal emulator built on Terrazzo.
use server_fn::Http;
use server_fn::ServerFnError;
use server_fn::codec::Json;
use terrazzo::server;

use crate::api::client_address::ClientAddress;
use crate::terminal_id::TerminalId;
use crate::tiles::id::TileId;

#[server(protocol = Http<Json, Json>)]
#[cfg_attr(feature = "server", nameth::nameth)]
pub async fn set_tile_id(
    remote: ClientAddress,
    terminal_id: TerminalId,
    tile_id: TileId,
) -> Result<(), ServerFnError> {
    Ok(super::service::SET_TILE_ID_FN
        .call(
            remote,
            SetTileIdRequest {
                terminal_id,
                tile_id,
            },
        )
        .await?)
}

#[derive(serde::Serialize, serde::Deserialize)]
#[allow(dead_code)]
pub struct SetTileIdRequest {
    #[cfg_attr(not(feature = "diagnostics"), serde(rename = "t"))]
    pub terminal_id: TerminalId,
    #[cfg_attr(not(feature = "diagnostics"), serde(rename = "i"))]
    pub tile_id: TileId,
}