package com.googlecode.totallylazy;
import com.googlecode.totallylazy.functions.Block;
import com.googlecode.totallylazy.functions.Unary;
import java.io.OutputStream;
import java.io.PrintStream;
import java.io.Writer;
import static java.lang.String.format;
public class Runnables {
public static final Void VOID = null;
public static <T> Block<T> printLine(final PrintStream printStream, final String format) {
return t -> printStream.println(format(format, t));
}
public static <T> Block<T> printLine(final String format) {
return printLine(System.out, format);
}
public static <T> Block<T> doNothing(final Class<T> aClass) {
return doNothing();
}
public static <T> Block<T> doNothing() {
return t -> {};
}
public static <T extends Runnable> Block<T> run() {
return T::run;
}
public static <T> Unary<T> run(final Block<? super T> callable) {
return t -> {
callable.call(t);
return t;
};
}
public static Block<OutputStream> write(final byte[] bytes) {
return outputStream -> outputStream.write(bytes);
}
public static Block<Writer> write(final String value) {
return writer -> writer.write(value);
}
}