summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorJohn Soo <jsoo1@asu.edu>2020-06-16 18:52:55 -0700
committerEfraim Flashner <efraim@flashner.co.il>2020-07-06 21:54:02 +0300
commit12c5d9bb44b91a14c69324b8e4f93bdda79d7aaa (patch)
tree1eb1a381fa0b051f68cb4cd7f36f5d08a3361e84 /gnu
parent0043e6a63321e319671b83b34ec707d8844d1e92 (diff)
downloadguix-12c5d9bb44b91a14c69324b8e4f93bdda79d7aaa.tar.gz
gnu: Add rust-derive-more-0.99.
* gnu/packages/crates-io.scm (rust-derive-more-0.99): New variable.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/crates-io.scm38
1 files changed, 38 insertions, 0 deletions
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index c7c353b1cd..e1e70d1fc4 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -5071,6 +5071,44 @@ for arbitrary structs.")
     (description "Internal helper library for the derive_builder crate.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-derive-more-0.99
+  (package
+    (name "rust-derive-more")
+    (version "0.99.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "derive-more" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0xizcpj39rx0474mbbx8m0xww98qh92zsg82gf52qnvbryqri299"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f  ; Some test files missing.
+       #:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1.0)
+        ("rust-quote" ,rust-quote-1.0)
+        ("rust-syn" ,rust-syn-1.0))
+       #:cargo-development-inputs
+       (("rust-peg" ,rust-peg-0.5)
+        ("rust-rustc-version" ,rust-rustc-version-0.2))))
+    (home-page "https://github.com/JelteF/derive_more")
+    (synopsis "Adds derive macros for more traits")
+    (description
+     "Rust has lots of builtin traits that are implemented for its basic
+types, such as @code{Add}, @code{Not}, @code{From} or @code{Display}.
+However, when wrapping these types inside your own structs or enums you lose
+the implementations of these traits and are required to recreate them.  This is
+especially annoying when your own structures are very simple, such as when
+using the commonly advised newtype pattern (e.g. @code{MyInt(i32)}).
+
+This library tries to remove these annoyances and the corresponding
+boilerplate code.  It does this by allowing you to derive lots of commonly used
+traits for both structs and enums.")
+    (license license:expat)))
+
 (define-public rust-derive-new-0.5
   (package
     (name "rust-derive-new")