use boxferry_model::{Identifier, ModelError, ServiceExecutionEnvironment, Sourced};
use std::collections::BTreeMap;
#[derive(Clone, Debug, Default, Eq, PartialEq)]
pub struct QuadletDeferredOptions {
services: BTreeMap<Identifier, Sourced<ServiceExecutionEnvironment>>,
}
impl QuadletDeferredOptions {
#[must_use]
pub const fn new() -> Self {
Self {
services: BTreeMap::new(),
}
}
pub fn add_service(
&mut self,
name: Identifier,
plan: Sourced<ServiceExecutionEnvironment>,
) -> Result<(), ModelError> {
if self.services.contains_key(&name) {
return Err(ModelError::InvalidDeferred("duplicate service execution plan"));
}
self.services.insert(name, plan);
Ok(())
}
#[must_use]
pub const fn services(&self) -> &BTreeMap<Identifier, Sourced<ServiceExecutionEnvironment>> {
&self.services
}
#[must_use]
pub fn is_empty(&self) -> bool {
self.services.is_empty()
}
}