use crate::errors::*;
use crate::state::TemplateState;
#[derive(Debug)]
pub(crate) struct States {
pub build_state: TemplateState,
pub request_state: TemplateState,
}
impl States {
pub fn both_defined(&self) -> bool {
!self.build_state.is_empty() && !self.request_state.is_empty()
}
pub fn get_defined(&self) -> Result<TemplateState, ServeError> {
if self.both_defined() {
return Err(ServeError::BothStatesDefined);
}
if !self.build_state.is_empty() {
Ok(self.build_state.clone())
} else if !self.request_state.is_empty() {
Ok(self.request_state.clone())
} else {
Ok(TemplateState::empty())
}
}
}