pub mod abi;
pub mod codec;
pub mod contract;
pub mod error;
pub mod handle;
pub mod identity;
pub mod lease;
pub mod liveliness;
pub mod metadata;
pub mod query;
mod runtime_metrics;
pub mod server;
pub mod session;
pub mod time;
pub mod topic;
pub use abi::{CodecId, encoding_string, parse_encoding_string};
pub use codec::{Codec, CodecError, MessagePack};
pub use contract::{
ApiVersion, CommandContract, ContractBody, DiagnosticContract, MeasurementContract,
StateContract, TopicRole, WorldClockContract,
};
pub use error::{BusError, Result};
pub use handle::{
CommandPublisher, DEFAULT_QUERY_TIMEOUT, DiagnosticPublisher, Latest, MeasurementPublisher,
Observed, Querier, StatePublisher, StepStamp, StepToken, Subscriber, TimelineAuthority,
WorldClockPublisher, WorldStepToken,
};
pub use identity::{ExecutionId, InvalidIdentity, ProducerId, TimelineId};
pub use lease::{LEASE_TRACE_TARGET, Lease, LeaseDecision, LeaseRejection, ProducerFence};
pub use liveliness::{
ParticipantLivelinessEvent, ParticipantLivelinessKey, ParticipantLivelinessObserver,
ParticipantLivelinessStatus, ParticipantLivelinessToken,
};
pub use metadata::BusMetadata;
pub use query::{QueryCode, QueryError, QueryFailure, ServerResult};
#[doc(hidden)]
pub use runtime_metrics::{
RuntimeBufferKind, RuntimeDirection, RuntimeMetricKey, RuntimeMetricSnapshot,
};
pub use server::{IncomingQuery, ServerQueryable};
pub use session::{Bus, BusConfig, BusHealth};
pub use time::{
CaptureStamp, LocalInstant, RobotInstant, TimeWindow, TimelineMismatch, WallTimestamp,
};
pub use topic::{AskQuery, Publish, ServeQuery, Subscribe, Topic, TopicKind, WildcardPublish};
use std::collections::HashSet;
#[doc(hidden)]
#[derive(Debug, Default)]
pub struct RetiredTimelines {
timelines: HashSet<TimelineId>,
}
impl RetiredTimelines {
pub fn contains(&self, timeline: TimelineId) -> bool {
self.timelines.contains(&timeline)
}
pub fn retire(&mut self, timeline: TimelineId) {
self.timelines.insert(timeline);
}
pub fn activate(&mut self, timeline: TimelineId) {
self.timelines.remove(&timeline);
}
}
#[cfg(test)]
mod tests;