fn inject_sw_header()

in src/plugin/plugin_amqplib.rs [148:173]


    fn inject_sw_header(
        request_id: Option<i64>, execute_data: &mut ExecuteData, peer: &str,
    ) -> crate::Result<()> {
        const HEADER_NAME: &str = "application_headers";

        let sw_header = RequestContext::try_get_sw_header(request_id, peer)?;

        let message = execute_data
            .get_mut_parameter(0)
            .as_mut_z_obj()
            .context("message isn't object")?;

        let has = message
            .call("has", [ZVal::from(HEADER_NAME)])?
            .expect_bool()?;
        if has {
            let mut headers = message.call("get", [ZVal::from(HEADER_NAME)])?;
            let headers = headers.expect_mut_z_obj()?;
            headers.call("set", [ZVal::from(SW_HEADER), ZVal::from(sw_header)])?;
        } else {
            let headers = Self::new_sw_headers(&sw_header)?;
            message.call("set", [ZVal::from(HEADER_NAME), ZVal::from(headers)])?;
        }

        Ok(())
    }