saluki_core/topology/
mod.rs1use std::num::NonZeroUsize;
4
5use crate::data_model::payload::Payload;
6use crate::support::SubsystemIdentifier;
7use crate::topology::interconnect::FixedSizeEventBuffer;
8
9mod blueprint;
10pub use self::blueprint::{BlueprintError, TopologyBlueprint, TopologyReady};
11
12mod built;
13
14mod component_worker;
15
16mod context;
17pub use self::context::TopologyContext;
18
19mod graph;
20
21pub mod ids;
22pub use self::ids::{
23 ComponentId, ComponentOutputId, OutputDefinition, OutputName, TypedComponentId, TypedComponentOutputId,
24};
25
26pub mod interconnect;
27use self::interconnect::{Consumer, Dispatcher};
28
29#[cfg(test)]
30pub(super) mod test_util;
31
32const DEFAULT_EVENTS_BUFFER_CAPACITY: usize = 1024;
34const DEFAULT_INTERCONNECT_CAPACITY: NonZeroUsize = NonZeroUsize::new(128).unwrap();
35
36pub type EventsBuffer = FixedSizeEventBuffer<DEFAULT_EVENTS_BUFFER_CAPACITY>;
40
41pub type EventsDispatcher = Dispatcher<EventsBuffer>;
43
44pub type EventsConsumer = Consumer<EventsBuffer>;
46
47pub type PayloadsBuffer = Payload;
49
50pub type PayloadsDispatcher = Dispatcher<PayloadsBuffer>;
52
53pub type PayloadsConsumer = Consumer<PayloadsBuffer>;
55
56pub(crate) fn topology_identifier(name: &str) -> SubsystemIdentifier {
57 SubsystemIdentifier::from_segments(["topology", name])
58}