diff --git a/libluna/include/luna/Result.h b/libluna/include/luna/Result.h index 39fda591..265453bc 100644 --- a/libluna/include/luna/Result.h +++ b/libluna/include/luna/Result.h @@ -148,6 +148,13 @@ template class Result return Error { error }; } + static Result from_syscall(long rc) + { + if (rc < 0) return Error { (int)-rc }; + else + return (T)rc; + } + private: Option m_value; int m_error;