Subject: [PATCH] gnu: Add rust-uom
From: "Artyom V. Poptsov" <[email-masked]>
To: [email-masked]
Date: Fri, 06 Jan 2023 20:32:08 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello,

this patch series adds "uom"[1] Rust package.
From 401ac46ff0c2dfda04d00240329d7f4a55accef3 Mon Sep 17 00:00:00 2001
From: "Artyom V. Poptsov" <[email-masked]>
Date: Fri, 6 Jan 2023 19:40:40 +0300
Subject: [PATCH 1/2] gnu: Add rust-typenum-1.13.0.

* gnu/packages/crates-io.scm (rust-typenum-1.13.0): New variable.
---
 gnu/packages/crates-io.scm | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index f0f40207b9..ea20401c65 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -63709,6 +63709,20 @@ (define-public rust-typenum-1
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-typenum-1.13.0
+  (package
+    (inherit rust-typenum-1)
+    (name "rust-typenum")
+    (version "1.13.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "typenum" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "01lbbspn4080yg8wp6y7q3xcqih1c1dmkkx4pwax4z1a9436k7w7"))))))
+
 (define-public rust-ucd-parse-0.1
   (package
     (name "rust-ucd-parse")
-- 
2.34.1

From 1a5c0e5f0af8b4de981b2f174634dbcabe0f77c5 Mon Sep 17 00:00:00 2001
From: "Artyom V. Poptsov" <[email-masked]>
Date: Fri, 6 Jan 2023 19:43:20 +0300
Subject: [PATCH 2/2] gnu: Add rust-uom-0.33.0 and rust-uom-0.30.0.

* gnu/packages/crates-io.scm (rust-uom-0.33.0, rust-uom-0.30.0): New
  variables.
---
 gnu/packages/crates-io.scm | 58 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 58 insertions(+)

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index ea20401c65..13f50b9155 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -13023,6 +13023,64 @@ (define-public rust-cpuprofiler-0.0
     (description "This package provides bindings to Google's cpu profiler.")
     (license license:bsd-2)))
 
+(define-public rust-uom-0.33.0
+  (package
+    (name "rust-uom")
+    (version "0.33.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "uom" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0385hbx8i15izs9ss0cvwv6kdf4mqbfcbzhfxxn0mkyspzh8zrjk"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-num-complex" ,rust-num-complex-0.4)
+                       ("rust-num-rational" ,rust-num-rational-0.4)
+                       ("rust-num-traits" ,rust-num-traits-0.2)
+                       ("rust-typenum" ,rust-typenum-1.13.0)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-num-bigint" ,rust-num-bigint-0.4))
+       #:cargo-development-inputs (("rust-approx" ,rust-approx-0.5)
+                                   ("rust-quickcheck" ,rust-quickcheck-0.8)
+                                   ("rust-serde-json" ,rust-serde-json-1)
+                                   ("rust-static-assertions" ,rust-static-assertions-1))))
+    (home-page "https://github.com/iliekturtles/uom")
+    (synopsis "Units of measurement")
+    (description
+     "@code{uom} (Units of measurement) is a crate that does automatic type-safe
+zero-cost dimensional analysis.  You can create your own systems or use the pre-built
+International System of Units (SI) which is based on the International System of
+Quantities (ISQ) and includes numerous quantities (length, mass, time, ...) with
+conversion factors for even more numerous measurement units (meter, kilometer, foot,
+mile, ...).")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-uom-0.30.0
+  (package
+    (inherit rust-uom-0.33.0)
+    (name "rust-uom")
+    (version "0.30.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "uom" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1vg59hnb7hh0p8kjjhgmrsnn3597722lkfdkp481wksq6vk06rg7"))))
+    (arguments
+     `(#:cargo-inputs (("rust-num-complex" ,rust-num-complex-0.4)
+                       ("rust-num-rational" ,rust-num-rational-0.4)
+                       ("rust-num-traits" ,rust-num-traits-0.2)
+                       ("rust-typenum" ,rust-typenum-1)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-num-bigint" ,rust-num-bigint-0.4))
+       #:cargo-development-inputs (("rust-approx" ,rust-approx-0.3)
+                                   ("rust-quickcheck" ,rust-quickcheck-0.8)
+                                   ("rust-serde-json" ,rust-serde-json-1)
+                                   ("rust-static-assertions" ,rust-static-assertions-1))))))
+
 (define-public rust-crates-index-0.18
   (package
     (name "rust-crates-index")
-- 
2.34.1

The "uom" package is used by the number of other Rust packages, namely
"heim-common"[2] which I'm planning to try to package later.

Thanks,
- avp

References:
1. https://crates.io/crates/uom
2. https://crates.io/crates/heim-common

-- 
Artyom "avp" Poptsov <[email-masked]>
Home page: https://memory-heap.org/~avp/
CADR Hackerspace co-founder: https://cadrspace.ru/
GPG: D0C2 EAC1 3310 822D 98DE  B57C E9C5 A2D9 0898 A02F