ForgePatch/src/main/java/net/minecraftforge/fml/util/ThreeConsumer.java

29 lines
724 B
Java

package net.minecraftforge.fml.util;
import java.util.function.Consumer;
/**
* Three-consumer version of consumer. Allows wrapping methods with three arguments.
*/
public interface ThreeConsumer<T, U, V>
{
/**
* Bind arguments to the three consumer to generate a consumer.
*
* <pre>
* {@code
* ThreeConsumer.bindArgs(MyClass::instanceMethodReference, arg1, arg2).apply(myClassInstance)
* }
* </pre>
*
* @return a Consumer which has the second and third arguments bound.
*/
static <T, U, V> Consumer<T> bindArgs(ThreeConsumer<? super T, U, V> c, U arg2, V arg3)
{
return (arg1) -> c.accept(arg1, arg2, arg3);
}
void accept(T t, U u, V v);
}