2026-01-19 08:34:17 +01:00
|
|
|
use std::collections::HashMap;
|
|
|
|
|
|
2026-01-26 08:26:15 +01:00
|
|
|
use testing_framework_core::nodes::{ApiClient, node::Node};
|
2026-01-19 08:34:17 +01:00
|
|
|
|
|
|
|
|
pub(crate) struct LocalDynamicState {
|
2026-01-26 08:26:15 +01:00
|
|
|
pub(crate) node_count: usize,
|
2026-01-19 08:34:17 +01:00
|
|
|
pub(crate) peer_ports: Vec<u16>,
|
|
|
|
|
pub(crate) peer_ports_by_name: HashMap<String, u16>,
|
|
|
|
|
pub(crate) clients_by_name: HashMap<String, ApiClient>,
|
2026-01-26 08:26:15 +01:00
|
|
|
pub(crate) nodes: Vec<Node>,
|
2026-01-19 08:34:17 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl LocalDynamicState {
|
|
|
|
|
fn register_common(&mut self, node_name: &str, network_port: u16, client: ApiClient) {
|
|
|
|
|
self.peer_ports.push(network_port);
|
|
|
|
|
self.peer_ports_by_name
|
|
|
|
|
.insert(node_name.to_string(), network_port);
|
|
|
|
|
self.clients_by_name.insert(node_name.to_string(), client);
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-26 08:26:15 +01:00
|
|
|
pub(super) fn register_node(
|
2026-01-19 08:34:17 +01:00
|
|
|
&mut self,
|
|
|
|
|
node_name: &str,
|
|
|
|
|
network_port: u16,
|
|
|
|
|
client: ApiClient,
|
2026-01-26 08:26:15 +01:00
|
|
|
node: Node,
|
2026-01-19 08:34:17 +01:00
|
|
|
) {
|
|
|
|
|
self.register_common(node_name, network_port, client);
|
2026-01-26 08:26:15 +01:00
|
|
|
self.node_count += 1;
|
|
|
|
|
self.nodes.push(node);
|
2026-01-19 08:34:17 +01:00
|
|
|
}
|
|
|
|
|
}
|