Crate sod_bus

Crate sod_bus 

Source
Expand description

sod::MutService implementations to interact with the broadcast bus::Bus.

§Service Impls

§Example

use sod::MutService;
use sod_bus::{BusBroadcaster, BusReceiver};

let mut broadcaster = BusBroadcaster::with_len(1024);
let mut receiver1 = broadcaster.create_receiver();
let mut receiver2 = broadcaster.create_receiver();

broadcaster.process(1).unwrap();
broadcaster.process(2).unwrap();
broadcaster.process(3).unwrap();

assert_eq!(receiver1.process(()).unwrap(), 1);
assert_eq!(receiver1.process(()).unwrap(), 2);
assert_eq!(receiver1.process(()).unwrap(), 3);

assert_eq!(receiver2.process(()).unwrap(), 1);
assert_eq!(receiver2.process(()).unwrap(), 2);
assert_eq!(receiver2.process(()).unwrap(), 3);

Structs§

BusBroadcaster
A blocking sod::MutService that broadcasts to an underlying bus::Bus.
BusReceiver
A blocking sod::MutService that receives from an underlying bus::BusReader
BusTryBroadcaster
A non-blocking sod::MutService that is Retryable and attempts to broadcast to an underlying bus::Bus.
BusTryReceiver
A non-blocking sod::MutService that is sod::Retryable and receives from an underlying bus::BusReader