terrazzo-terminal 0.2.7

A simple web-based terminal emulator built on Terrazzo.
use std::sync::Arc;

use terrazzo::axum::Json;
use tracing::Instrument as _;
use tracing::debug_span;

use crate::api::shared::terminal_schema::TerminalAddress;
use crate::backend::Server;
use crate::backend::client_service::terminal_service;
use crate::backend::protos::terrazzo::terminal::OrderedTerminal;

pub async fn set_order(server: Arc<Server>, Json(terminals): Json<Vec<TerminalAddress>>) {
    let () = self::terminal_service::set_order::set_order(
        &server,
        terminals
            .into_iter()
            .enumerate()
            .map(|(order, terminal)| OrderedTerminal {
                address: Some(terminal.into()),
                order: order as i32,
            })
            .collect(),
    )
    .instrument(debug_span!("SetOrder"))
    .await;
}