sim-lib-bridge 0.1.6

Checked BRIDGE packet runtime for SIM model exchanges.
Documentation
use sim_codec_bridge::BridgePacket;

pub(crate) fn parent_token(parent: &BridgePacket) -> Option<String> {
    parent
        .header
        .cid
        .as_ref()
        .map(|cid| format!("{cid}#move={}", parent.header.move_kind.as_qualified_str()))
}

pub(crate) fn parent_cid(token: &str) -> &str {
    token
        .split_once("#move=")
        .map(|(cid, _move_kind)| cid)
        .unwrap_or(token)
}

pub(crate) fn parents_contain_cid(parents: &[String], cid: &str) -> bool {
    parents.iter().any(|parent| parent_cid(parent) == cid)
}