package org.implab.gradle.common.exec.model;

import org.implab.gradle.common.exec.runtime.RedirectFrom;
import org.implab.gradle.common.exec.runtime.RedirectTo;

import java.util.Optional;

import org.eclipse.jdt.annotation.NonNullByDefault;

/**
 * The execution shell uses this specification when starting
 * a new process. The shell may check for the specified
 * redirections and apply them when launching the process.
 * The exact moment they are applied is at the shell’s discretion.
 */
@NonNullByDefault
public interface PipeSpec {
    Optional<RedirectTo> stdout();

    Optional<RedirectTo> stderr();

    Optional<RedirectFrom> stdin();
}
