pub struct CuConfig {
pub monitors: Vec<MonitorConfig>,
pub logging: Option<LoggingConfig>,
pub runtime: Option<RuntimeConfig>,
pub resources: Vec<ResourceBundleConfig>,
pub bridges: Vec<BridgeConfig>,
pub graphs: ConfigGraphs,
}Expand description
CuConfig is the programmatic representation of the configuration graph. It is a directed graph where nodes are tasks and edges are connections between tasks.
The core of CuConfig is its graphs field which can be either a simple graph
or a collection of mission-specific graphs. The graph structure is based on petgraph.
Fields§
§monitors: Vec<MonitorConfig>Monitoring configuration list.
logging: Option<LoggingConfig>Optional logging configuration
runtime: Option<RuntimeConfig>Optional runtime configuration
resources: Vec<ResourceBundleConfig>Declarative resource bundle definitions
bridges: Vec<BridgeConfig>Declarative bridge definitions that are yet to be expanded into the graph
graphs: ConfigGraphsGraph structure - either a single graph or multiple mission-specific graphs
Implementations§
Source§impl CuConfig
The implementation has a lot of convenience methods to manipulate
the configuration to give some flexibility into programmatically creating the configuration.
impl CuConfig
The implementation has a lot of convenience methods to manipulate the configuration to give some flexibility into programmatically creating the configuration.
pub fn new_simple_type() -> Self
pub fn new_mission_type() -> Self
pub fn serialize_ron(&self) -> CuResult<String>
pub fn deserialize_ron(ron: &str) -> CuResult<Self>
Sourcepub fn render(
&self,
output: &mut dyn Write,
mission_id: Option<&str>,
) -> CuResult<()>
pub fn render( &self, output: &mut dyn Write, mission_id: Option<&str>, ) -> CuResult<()>
Render the configuration graph in the dot format.
pub fn get_all_instances_configs( &self, mission_id: Option<&str>, ) -> Vec<Option<&ComponentConfig>>
pub fn get_graph(&self, mission_id: Option<&str>) -> CuResult<&CuGraph>
pub fn get_graph_mut( &mut self, mission_id: Option<&str>, ) -> CuResult<&mut CuGraph>
pub fn get_monitor_config(&self) -> Option<&MonitorConfig>
pub fn get_monitor_configs(&self) -> &[MonitorConfig]
pub fn get_runtime_config(&self) -> Option<&RuntimeConfig>
Sourcepub fn validate_logging_config(&self) -> CuResult<()>
pub fn validate_logging_config(&self) -> CuResult<()>
Validate the logging configuration to ensure section pre-allocation sizes do not exceed slab sizes. This method is wrapper around LoggingConfig::validate
Trait Implementations§
Source§impl<'de> Deserialize<'de> for CuConfig
impl<'de> Deserialize<'de> for CuConfig
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
This is a custom serialization to make this implementation independent of petgraph.
Auto Trait Implementations§
impl Freeze for CuConfig
impl RefUnwindSafe for CuConfig
impl Send for CuConfig
impl Sync for CuConfig
impl Unpin for CuConfig
impl UnsafeUnpin for CuConfig
impl UnwindSafe for CuConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more