refactor: align bridge state resolver metadata

This commit is contained in:
Edison Jwa
2026-06-08 20:20:18 +09:00
parent 8c4f85ee70
commit 57a4d9767b
4 changed files with 75 additions and 34 deletions
Generated
+1 -1
View File
@@ -532,7 +532,7 @@ dependencies = [
[[package]]
name = "chanora_resolver"
version = "0.1.0"
version = "0.2.0-beta.1"
dependencies = [
"anyhow",
"hickory-resolver",
+68 -18
View File
@@ -1972,27 +1972,77 @@ impl From<chanora_core::SessionEvent> for BridgeEvent {
route: route.into(),
}
}
chanora_core::SessionEvent::ClientMoved { client_id, new_channel_id } => {
BridgeEvent::ClientMoved { client_id, new_channel_id }
}
chanora_core::SessionEvent::ClientJoined { client_id, channel_id, name, input_muted, output_muted, is_server_query, talk_power, talk_power_granted } => {
BridgeEvent::ClientJoined { client_id, channel_id, name, input_muted, output_muted, is_server_query, talk_power, talk_power_granted }
}
chanora_core::SessionEvent::ClientMoved {
client_id,
new_channel_id,
} => BridgeEvent::ClientMoved {
client_id,
new_channel_id,
},
chanora_core::SessionEvent::ClientJoined {
client_id,
channel_id,
name,
input_muted,
output_muted,
is_server_query,
talk_power,
talk_power_granted,
} => BridgeEvent::ClientJoined {
client_id,
channel_id,
name,
input_muted,
output_muted,
is_server_query,
talk_power,
talk_power_granted,
},
chanora_core::SessionEvent::ClientLeft { client_id, name } => {
BridgeEvent::ClientLeft { client_id, name }
}
chanora_core::SessionEvent::ClientUpdated { client_id, input_muted, output_muted, is_server_query, talk_power, talk_power_granted } => {
BridgeEvent::ClientUpdated { client_id, input_muted, output_muted, is_server_query, talk_power, talk_power_granted }
}
chanora_core::SessionEvent::ChannelAdded { id, parent, name, order, has_password, needed_talk_power } => {
BridgeEvent::ChannelAdded { id, parent, name, order, has_password, needed_talk_power }
}
chanora_core::SessionEvent::ChannelRemoved { id } => {
BridgeEvent::ChannelRemoved { id }
}
chanora_core::SessionEvent::ChannelUpdated { id, name, has_password, needed_talk_power } => {
BridgeEvent::ChannelUpdated { id, name, has_password, needed_talk_power }
}
chanora_core::SessionEvent::ClientUpdated {
client_id,
input_muted,
output_muted,
is_server_query,
talk_power,
talk_power_granted,
} => BridgeEvent::ClientUpdated {
client_id,
input_muted,
output_muted,
is_server_query,
talk_power,
talk_power_granted,
},
chanora_core::SessionEvent::ChannelAdded {
id,
parent,
name,
order,
has_password,
needed_talk_power,
} => BridgeEvent::ChannelAdded {
id,
parent,
name,
order,
has_password,
needed_talk_power,
},
chanora_core::SessionEvent::ChannelRemoved { id } => BridgeEvent::ChannelRemoved { id },
chanora_core::SessionEvent::ChannelUpdated {
id,
name,
has_password,
needed_talk_power,
} => BridgeEvent::ChannelUpdated {
id,
name,
has_password,
needed_talk_power,
},
}
}
}
+4 -4
View File
@@ -1,9 +1,9 @@
[package]
name = "chanora_resolver"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
publish = false
version.workspace = true
edition.workspace = true
license.workspace = true
publish.workspace = true
build = "build.rs"
[dependencies]
+2 -11
View File
@@ -346,9 +346,7 @@ pub fn reduce(state: &mut Option<ServerState>, event: StateEvent) -> Reduction {
if removed_channel {
deltas.push(Delta::ChannelRemoved(id));
}
Reduction {
deltas,
}
Reduction { deltas }
}
_ => Reduction { deltas: vec![] },
},
@@ -412,14 +410,7 @@ pub fn reduce_reconnect_snapshot(
state: &mut Option<ServerState>,
snap: ServerSnapshot,
) -> Reduction {
let normalized = normalize_snapshot(snap);
*state = Some(ServerState::from_snapshot(normalized.clone()));
Reduction {
deltas: vec![
Delta::ConnectionStateChanged(ConnectionState::Ready),
Delta::SnapshotApplied(normalized),
],
}
reduce(state, StateEvent::Snapshot(snap))
}
#[cfg(test)]