package melnorme.lang.tooling.common.ops;
import java.util.function.Function;
import melnorme.lang.utils.concurrency.JobFuture;
import melnorme.utilbox.core.fntypes.OperationResult;
public interface JobExecutor {
<BUG>JobFuture<OperationResult<Void>> startOp(
String operationName, boolean schedule, Operation operation);</BUG>
<RET> JobFuture<OperationResult<RET>> startOpFunction(
<BUG>String operationName, boolean schedule, Function<IOperationMonitor, OperationResult<RET>> operation);
default <RET> JobFuture<OperationResult<RET>> startResultOp(</BUG>
String operationName, boolean schedule, ResultOperation<RET> resultOperation)

package melnorme.lang.tooling.common.ops;
import java.util.function.Function;
import melnorme.lang.utils.concurrency.JobFuture;
import melnorme.utilbox.core.fntypes.OperationResult;
public interface JobExecutor {
<RET> JobFuture<OperationResult<RET>> startOpFunction(
String operationName, boolean schedule, Function<IOperationMonitor, OperationResult<RET>> operation)
;
default JobFuture<OperationResult<Void>> startOp(
String operationName, boolean schedule, Operation operation)
{
return startOpFunction(operationName, schedule, operation);
}
default <RET> JobFuture<OperationResult<RET>> startResultOp(
