Monorepo for Tangled tangled.org
2

Configure Feed

Select the types of activity you want to include in your feed.

1use std::future::Future; 2use std::pin::Pin; 3use std::sync::Arc; 4use std::sync::atomic::AtomicU64; 5 6use bobbin_edge_index::{CoverageWatch, EdgeStore}; 7use bobbin_record_lru::NoopRecordStore; 8use bobbin_runtime::{Clock, Entropy, MemHttpResponder, MemWsResponder}; 9use tokio_util::sync::CancellationToken; 10 11use crate::report::SimReport; 12 13pub struct WorkloadCtx { 14 pub seed: u64, 15 pub clock: Arc<dyn Clock>, 16 pub entropy: Arc<dyn Entropy>, 17 pub store: Arc<EdgeStore>, 18 pub coverage: Arc<CoverageWatch>, 19 pub records: Arc<NoopRecordStore>, 20 pub cancel: CancellationToken, 21 pub consumer_too_slow_count: Arc<AtomicU64>, 22} 23 24pub type WorkloadScript = Pin<Box<dyn Future<Output = SimReport> + Send + 'static>>; 25 26pub struct WorkloadHooks { 27 pub slingshot: Arc<dyn MemHttpResponder>, 28 pub hydrant: Arc<dyn MemWsResponder>, 29 pub script: WorkloadScript, 30} 31 32pub trait Workload: Send + 'static { 33 fn name(&self) -> &'static str; 34 fn build(self: Box<Self>, ctx: WorkloadCtx) -> WorkloadHooks; 35}