use std::sync::Arc; use async_trait::async_trait; pub use lb_framework::*; use testing_framework_core::scenario::{Application, DynError, FeedRuntime, RunContext}; use tokio::sync::broadcast; pub mod cfgsync; mod compose_env; pub mod constants; mod k8s_env; pub mod scenario; pub struct LbcExtEnv; #[async_trait] impl Application for LbcExtEnv { type Deployment = ::Deployment; type NodeClient = ::NodeClient; type NodeConfig = ::NodeConfig; type FeedRuntime = ::FeedRuntime; async fn prepare_feed( client: Self::NodeClient, ) -> Result<(::Feed, Self::FeedRuntime), DynError> { ::prepare_feed(client).await } } pub use scenario::{ CoreBuilderExt, ObservabilityBuilderExt, ScenarioBuilder, ScenarioBuilderExt, ScenarioBuilderWith, }; pub type LbcComposeDeployer = testing_framework_runner_compose::ComposeDeployer; pub type LbcK8sDeployer = testing_framework_runner_k8s::K8sDeployer; impl lb_framework::workloads::LbcScenarioEnv for LbcExtEnv {} impl lb_framework::workloads::LbcBlockFeedEnv for LbcExtEnv { fn block_feed_subscription( ctx: &RunContext, ) -> broadcast::Receiver> { ctx.feed().subscribe() } }