This project is a collection of Java types which are inspired by the Rust programming language.
This type is inspired by Rust's Result enum.
A Result method can be created by using its static constructor methods ofValue() or ofError() to create a result which contains either a result value or an error.
Result<ValueType, ErrorType> resultWithValue = Result.ofValue(value);
Result<ValueType, ErrorType> resultWithError = Result.ofError(error);The only way to access the value inside the Result is to use the handle() method. This method has two overloaded implementations. One makes use of lambdas, and the other uses the ResultHandler interface along with its two methods. This method forces consumers of the Result to consider the implications of either a value being present or an error being present.
result.handle(
value -> {
// handle what happens if the result contains a value
},
error -> {
// handle what happens if the result contains an error
}
);