use std::sync::Arc;
use crate::connection::command::CommandResult;
use crate::tasks::logic::{PreLogicEvaluated,PostLogicEvaluated};
use crate::tasks::fields::Field;
use std::vec::Vec;
#[derive(Debug,PartialEq)]
pub enum TaskStatus {
IsCreated,
IsRemoved,
IsModified,
IsExecuted,
IsPassive,
IsMatched,
IsSkipped,
NeedsCreation,
NeedsRemoval,
NeedsModification,
NeedsExecution,
NeedsPassive,
Failed
}
#[derive(Debug)]
pub struct TaskResponse {
pub status: TaskStatus,
pub changes: Vec<Field>,
pub msg: Option<String>,
pub command_result: Arc<Option<CommandResult>>,
pub with: Arc<Option<PreLogicEvaluated>>,
pub and: Arc<Option<PostLogicEvaluated>>
}