Skip to content

Latest commit

 

History

History
58 lines (43 loc) · 1.51 KB

README.md

File metadata and controls

58 lines (43 loc) · 1.51 KB

peelo-result

Build

Header only C++11 implementation of Rust's Result type.

Doxygen generated API documentation.

Usage

result class has two static methods that construct result instances: ok and error. First one creates an "OK" result, which holds some kind of value, while the second one creates erroneous result which holds some kind of error.

Whether an result contains an value or not can be checked with has_value method of result class. If this method returns true, then it's value can be accessed with the value method, otherwise it's error can be accessed with the error method.

Note: Accessing value or erronous result leads to undefined behavior and vice versa.

Usage example

#include <iostream>
#include <string>
#include <peelo/result.hpp>

struct my_error
{
  int code;
  std::string message;
};

int main()
{
  auto ok_result = peelo::result<int, my_error>::ok(15);
  auto err_result = peelo::result<int, my_error>::error({ 404, "Not Found" });

  if (ok_result)
  {
    std::cout << "OK result: " << ok_result.value() << std::endl;
  }

  if (!err_result)
  {
    std::cout << "Error code: " << err_result.error().code << std::endl;
  }

  return 0;
}