Giter Club home page Giter Club logo

rustytypes's Introduction

RustyTypes for Java

This project is a collection of Java types which are inspired by the Rust programming language.

Types

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
        }
);

rustytypes's People

Contributors

kellpossible avatar

Watchers

James Cloos avatar  avatar  avatar

rustytypes's Issues

getValue() and getError()

add getValue() and getError() methods to the Result class in the same style as Optional. Necessary for situations that exclude the use of a lambda.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.