use bb_ir::proto::onnx::{NodeProto, StringStringEntryProto};
pub const RX_CHAIN_HEAD_KEY: &str = "ai.bytesandbrains.rx_chain_head";
pub fn rx_chain_head(recv: &NodeProto) -> String {
recv.metadata_props
.iter()
.find(|p| p.key == RX_CHAIN_HEAD_KEY)
.map(|p| p.value.clone())
.unwrap_or_else(|| recv.output.first().cloned().unwrap_or_default())
}
pub fn set_rx_chain_head(recv: &mut NodeProto, new_head: &str) {
if let Some(existing) = recv
.metadata_props
.iter_mut()
.find(|p| p.key == RX_CHAIN_HEAD_KEY)
{
existing.value = new_head.to_string();
return;
}
recv.metadata_props.push(StringStringEntryProto {
key: RX_CHAIN_HEAD_KEY.to_string(),
value: new_head.to_string(),
});
}