use crate::infrastructure::error::DdsResult;
use alloc::string::{String, ToString};
use core::time::Duration;
#[derive(Debug, PartialEq, Eq, Clone)]
pub struct DustDdsConfiguration {
domain_tag: String,
participant_announcement_interval: Duration,
}
impl DustDdsConfiguration {
pub fn domain_tag(&self) -> &str {
self.domain_tag.as_ref()
}
pub fn participant_announcement_interval(&self) -> Duration {
self.participant_announcement_interval
}
}
impl Default for DustDdsConfiguration {
fn default() -> Self {
Self {
domain_tag: "".to_string(),
participant_announcement_interval: Duration::from_secs(5),
}
}
}
#[derive(Default)]
pub struct DustDdsConfigurationBuilder {
configuration: DustDdsConfiguration,
}
impl DustDdsConfigurationBuilder {
pub fn new() -> Self {
Self {
configuration: Default::default(),
}
}
pub fn build(self) -> DdsResult<DustDdsConfiguration> {
Ok(self.configuration)
}
pub fn domain_tag(mut self, domain_tag: String) -> Self {
self.configuration.domain_tag = domain_tag;
self
}
pub fn participant_announcement_interval(
mut self,
participant_announcement_interval: Duration,
) -> Self {
self.configuration.participant_announcement_interval = participant_announcement_interval;
self
}
}