pubnub 0.7.0

PubNub SDK for Rust
Documentation
use crate::{
    dx::subscribe::{
        event_engine::{effects::EmitStatusEffectExecutor, SubscribeEvent},
        ConnectionStatus,
    },
    lib::alloc::{sync::Arc, vec, vec::Vec},
};
use log::info;

pub(super) async fn execute(
    status: ConnectionStatus,
    executor: &Arc<EmitStatusEffectExecutor>,
) -> Vec<SubscribeEvent> {
    info!("Emit status: {status:?}");

    executor(status);

    vec![]
}

#[cfg(test)]
mod should {
    use super::*;

    #[tokio::test]
    async fn emit_expected_status() {
        let emit_status_function: Arc<EmitStatusEffectExecutor> = Arc::new(|status| {
            assert!(matches!(status, ConnectionStatus::Connected));
        });

        execute(ConnectionStatus::Connected, &emit_status_function).await;
    }
}