package it.cavallium.dbengine.client; import it.cavallium.dbengine.database.collections.DatabaseEmpty.Nothing; import java.util.function.Function; import org.jetbrains.annotations.NotNull; public record HitKey(T key, float score) implements Comparable> { public HitEntry withValue(Function valueGetter) { return new HitEntry<>(key, valueGetter.apply(key), score); } public HitEntry withNullValue() { return new HitEntry<>(key, null, score); } public HitEntry withNothingValue() { return new HitEntry<>(key, Nothing.INSTANCE, score); } @Override public int compareTo(@NotNull HitKey o) { return Float.compare(o.score, this.score); } }