guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 10/86] gnu: Add rust-void.


From: ng0
Subject: [PATCH 10/86] gnu: Add rust-void.
Date: Tue, 3 Jan 2017 23:35:26 +0000

* gnu/packages/rust.scm (rust-void): New variable.
---
 gnu/packages/rust.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 674570c7d..fe133c084 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -453,3 +453,29 @@ For many system APIs, Nix provides a safe alternative to 
the unsafe API
 exposed by the libc crate.  This is done by wrapping the libc
 functionality with types/abstractions that enforce legal/safe usage.")
     (license license:expat)))
+
+(define-public rust-void
+  (package
+    (name "rust-void")
+    (version "1.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "void" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0zc8f0ksxvmhvgx4fdg0zyn6vdnbxd2xv9hfx4nhzg6kbs4f80ka"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/reem/rust-void.git";)
+    (synopsis "Uninhabited void type for use in statically impossible cases")
+    (description
+     "The uninhabited type, @code{enum Void { }} is useful in dealing
+with cases you know to be impossible.  If you are implementing a trait
+which allows for error checking, but your case always succeeds, you can
+mark the error case or type as Void, signaling to the compiler it can
+never happen.
+This crate also comes packed with a few traits offering extension
+methods to @code{Result<T, Void>} and @code{Result<Void, T>}.")
+    (license license:expat)))
-- 
2.11.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]