use crate::config;
use iceoryx2_bb_derive_macros::ZeroCopySend;
use iceoryx2_bb_elementary_traits::zero_copy_send::ZeroCopySend;
use serde::{Deserialize, Serialize};
use super::message_type_details::TypeDetail;
#[derive(Debug, Clone, Copy, Eq, Hash, PartialEq, ZeroCopySend, Serialize, Deserialize)]
#[repr(C)]
pub struct StaticConfig {
pub(crate) max_readers: usize,
pub(crate) max_writers: usize,
pub(crate) max_nodes: usize,
pub(crate) type_details: TypeDetail,
}
impl StaticConfig {
pub(crate) fn new(config: &config::Config) -> Self {
Self {
max_readers: config.defaults.blackboard.max_readers,
max_writers: 1,
max_nodes: config.defaults.blackboard.max_nodes,
type_details: TypeDetail::default(),
}
}
pub fn max_nodes(&self) -> usize {
self.max_nodes
}
pub fn max_readers(&self) -> usize {
self.max_readers
}
pub fn type_details(&self) -> &TypeDetail {
&self.type_details
}
}