fn generic_not<'a>(
    statement: &'a Statement,
    target: &str,
    simple_factory: &dyn Fn(usize, bool) -> Simple,
) -> Instruction {
    let conds = conditions(statement);
    if let Noun::Identifier(id) = statement.subject {
        let simple = simple_factory(id, statement.action_sign); 
        merge(simple, conds)
    }
    else {
        throw_error(
            ErrorType::InstructionValidationError, 
            format!("Cannot apply {} to {:?}", target, statement.subject),
            None
        );
        Instruction::NoOp
    }
}
/// Returns a reversible GROUP instruction with default parameters.
/// 
/// Allows for the use NOT to reverse instructions.
Returns a reversible GROUP instruction with default parameters.
Allows for the use NOT to reverse instructions.
Returns a reversible GROUP instruction with default parameters . Allows for the use NOT to reverse instructions .
fn generic_not<'a>(
    statement: &'a Statement,
    target: &str,
    simple_factory: &dyn Fn(usize, bool) -> Simple,
) -> Instruction {
    let conds = conditions(statement);
    if let Noun::Identifier(id) = statement.subject {
        let simple = simple_factory(id, statement.action_sign); 
        merge(simple, conds)
    }
    else {
        throw_error(
            ErrorType::InstructionValidationError, 
            format!("Cannot apply {} to {:?}", target, statement.subject),
            None
        );
        Instruction::NoOp
    }
}
fn generic_not < ' a > ( statement : & ' a Statement , target : & str , simple_factory : & dyn Fn ( usize , bool ) -> Simple , ) -> Instruction { let conds = conditions ( statement ) ; if let Noun :: Identifier ( id ) = statement . subject { let simple = simple_factory ( id , statement . action_sign ) ; merge ( simple , conds ) } else { throw_error ( ErrorType :: InstructionValidationError , format ! ( " " target statement subject ) , None ) ; Instruction :: NoOp } }
Returns a reversible GROUP instruction with default parameters.
Returns a reversible GROUP instruction with default parameters .
statement
&'a Statement
target
&str
simple_factory
&dyn Fn(usize, bool) -> Simple
statement
&'a Statement
target
&str
simple_factory
&dyn Fn(usize, bool) -> Simple