#[path = "shared.rs"]
mod shared;
use wingfoil::adapters::iceoryx2::iceoryx2_sub;
use wingfoil::*;
use shared::{Quote, QuoteLatency, SERVICE_NAME, quote_latency};
fn main() {
env_logger::init();
println!(
"Subscribing to \"{SERVICE_NAME}\" — waiting for publisher... \
(Ctrl-C to print report and exit)"
);
let pipeline = iceoryx2_sub::<Traced<Quote, QuoteLatency>>(SERVICE_NAME)
.collapse::<Traced<Quote, QuoteLatency>>()
.stamp::<quote_latency::receive>()
.map(|mut t: Traced<Quote, QuoteLatency>| {
t.payload.price *= 1.0001;
t
})
.stamp::<quote_latency::strategy>()
.stamp::<quote_latency::ack>();
let (sink, _stats) = pipeline.latency_report(true);
sink.run(RunMode::RealTime, RunFor::Forever).unwrap();
}