package org.zwobble.mammoth; import com.google.common.collect.ImmutableList; import java.util.List; import java.util.function.Function; public class Result { public static Result> concat(Iterable> results) { ImmutableList.Builder elements = ImmutableList.builder(); for (Result result : results) { elements.add(result.value); } return new Result<>(elements.build()); } public static Result success(T value) { return new Result<>(value); } private final T value; public Result(T value) { this.value = value; } public T getValue() { return value; } public Result map(Function function) { return new Result<>(function.apply(value)); } }