exo-rs/src/orchestration.rs
2025-02-12 07:36:38 +00:00

29 lines
899 B
Rust

use std::net::SocketAddr;
use tonic::codec::CompressionEncoding;
use crate::node_service::node_service_client::NodeServiceClient;
use crate::topology::DeviceCapabilities;
struct PeerHandle {
node_id: String,
address: SocketAddr,
description: Option<String>,
client: NodeServiceClient<tonic::transport::Channel>,
device_capabilities: DeviceCapabilities,
}
impl PeerHandle {
async fn new(node_id: String, address: SocketAddr, description: Option<String>, device_capabilities: DeviceCapabilities) -> Result<Self, tonic::transport::Error> {
let endpoint = format!("http://{}", address);
let client = NodeServiceClient::connect(endpoint).await?
.accept_compressed(CompressionEncoding::Gzip);
Ok(Self {
node_id,
description,
address,
client,
device_capabilities,
})
}
}