com.github.tonivade.purefun.Tuple Maven / Gradle / Ivy
/*
* Copyright (c) 2018-2021, Antonio Gabriel Muñoz Conejo
* Distributed under the terms of the MIT License
*/
package com.github.tonivade.purefun;
import java.util.Map;
import com.github.tonivade.purefun.data.Sequence;
public interface Tuple {
Sequence> toSequence();
default void forEach(Consumer1 super Object> consumer) {
toSequence().forEach(consumer::accept);
}
static Tuple1 of(A value1) {
return Tuple1.of(value1);
}
static Tuple2 of(A value1, B value2) {
return Tuple2.of(value1, value2);
}
static Tuple3 of(A value1, B value2, C value3) {
return Tuple3.of(value1, value2, value3);
}
static Tuple4 of(A value1, B value2, C value3, D value4) {
return Tuple4.of(value1, value2, value3, value4);
}
static Tuple5 of(A value1, B value2, C value3, D value4, E value5) {
return Tuple5.of(value1, value2, value3, value4, value5);
}
static Tuple2 from(Map.Entry entry) {
return Tuple2.of(entry.getKey(), entry.getValue());
}
static Function1, T> applyTo(Function1 super A, ? extends T> function) {
return tuple -> tuple.applyTo(function);
}
static Function1, T> applyTo(Function2 super A, ? super B, ? extends T> function) {
return tuple -> tuple.applyTo(function);
}
static Function1, T> applyTo(Function3 super A, ? super B, ? super C, ? extends T> function) {
return tuple -> tuple.applyTo(function);
}
static Function1, T> applyTo(Function4 super A, ? super B, ? super C, ? super D, ? extends T> function) {
return tuple -> tuple.applyTo(function);
}
static Function1, T> applyTo(Function5 super A, ? super B, ? super C, ? super D, ? super E, ? extends T> function) {
return tuple -> tuple.applyTo(function);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy