mod result; mod service; mod store; pub use result::AiTaskProcedureResult; pub use service::AiTaskService; pub use store::InMemoryAiTaskStore; use crate::{AiTaskFieldError, AiTaskServiceError, AiTaskStatus}; fn ensure_task_is_not_terminal(status: AiTaskStatus) -> Result<(), AiTaskServiceError> { if status.is_terminal() { Err(AiTaskServiceError::Field( AiTaskFieldError::InvalidTaskState, )) } else { Ok(()) } }