From 12c5d9bb44b91a14c69324b8e4f93bdda79d7aaa Mon Sep 17 00:00:00 2001 From: John Soo Date: Tue, 16 Jun 2020 18:52:55 -0700 Subject: [PATCH] gnu: Add rust-derive-more-0.99. * gnu/packages/crates-io.scm (rust-derive-more-0.99): New variable. Signed-off-by: Efraim Flashner --- gnu/packages/crates-io.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) 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 @@ (define-public rust-derive-builder-core-0.2 (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")