commit 5cb097630d761bc37d8654bc49ab5003513e81d3
parent 188094f92c7afbdda811305cd9ec54be189b66ba
Author: Antoine A <>
Date: Thu, 16 Jul 2026 02:47:44 +0200
common: reduce dependencies
Diffstat:
4 files changed, 83 insertions(+), 285 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
@@ -308,9 +308,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "bitflags"
-version = "2.13.0"
+version = "2.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8"
+checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da"
dependencies = [
"serde_core",
]
@@ -336,9 +336,9 @@ dependencies = [
[[package]]
name = "bstr"
-version = "1.12.3"
+version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cee35f73844aa3014bb606320a6c1f010249dbdf43342fe54b5a4f6a8ed4b79"
+checksum = "1f7dc094d718f2e1c1559ad110e27eeaae14a5465d3d56dd6dbd793079fbd530"
dependencies = [
"memchr",
"serde_core",
@@ -390,9 +390,9 @@ dependencies = [
[[package]]
name = "cc"
-version = "1.2.66"
+version = "1.2.67"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f5d6cac793997bd970000024b2934968efe83b382de4fdcf4fcb46b6ee4ad996"
+checksum = "e17dd265a7d0f31ef544e1b20e03add05d3b45b491b633b10d67145d2acc1a38"
dependencies = [
"find-msvc-tools",
"jobserver",
@@ -447,9 +447,9 @@ dependencies = [
[[package]]
name = "clap"
-version = "4.6.1"
+version = "4.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51"
+checksum = "dd059f9da4f5c36b3787f65d38ccaab1cc315f07b01f89abc8359ee6a8205011"
dependencies = [
"clap_builder",
"clap_derive",
@@ -457,9 +457,9 @@ dependencies = [
[[package]]
name = "clap_builder"
-version = "4.6.0"
+version = "4.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f"
+checksum = "f09628afdcc538b57f3c6341e9c8e9970f18e4a481690a64974d7023bd33548b"
dependencies = [
"anstream",
"anstyle",
@@ -681,7 +681,7 @@ version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b"
dependencies = [
- "bitflags 2.13.0",
+ "bitflags 2.13.1",
"crossterm_winapi",
"derive_more",
"document-features",
@@ -1223,9 +1223,9 @@ checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280"
[[package]]
name = "globset"
-version = "0.4.18"
+version = "0.4.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52dfc19153a48bde0cbd630453615c8151bce3a5adfac7a0aebfbf0a1e1f57e3"
+checksum = "e47d37d2ae4464254884b60ab7071be2b876a9c35b696bd018ddcc76847309cd"
dependencies = [
"aho-corasick",
"bstr",
@@ -1336,9 +1336,9 @@ dependencies = [
[[package]]
name = "http-body"
-version = "1.0.1"
+version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184"
+checksum = "ca2a8f2913ee65f60facd6a5905613afaa448497a0230cc41ce022d93290bc2c"
dependencies = [
"bytes",
"http",
@@ -1346,9 +1346,9 @@ dependencies = [
[[package]]
name = "http-body-util"
-version = "0.1.3"
+version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a"
+checksum = "e9f41fd6a08e4d4ec69df65976da761afd5ad5e58a9d4acb46bd1c953a9e3ff2"
dependencies = [
"bytes",
"futures-core",
@@ -1360,7 +1360,7 @@ dependencies = [
[[package]]
name = "http-client"
version = "1.5.0"
-source = "git+git://git.taler.net/taler-rust.git/#4019ab323771ee02486072b50adb13b5836c8f6b"
+source = "git+git://git.taler.net/taler-rust.git/#a523cbbf0efaa493cc159045cd64ebb6ee9d85ff"
dependencies = [
"compact_str",
"futures-util",
@@ -1853,11 +1853,9 @@ dependencies = [
"axum",
"clap",
"compact_str",
- "dialoguer",
"http-client",
"jiff",
"libeufin-ebics",
- "pretty_assertions",
"reqwest",
"serde",
"shlex",
@@ -1922,7 +1920,7 @@ version = "0.1.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c943259e342f1e06ff2da7a83eabdfe7f92ce10262688dbf1895ff0b3e6e4652"
dependencies = [
- "bitflags 2.13.0",
+ "bitflags 2.13.1",
"libc",
"plain",
"redox_syscall 0.9.0",
@@ -2053,9 +2051,9 @@ dependencies = [
[[package]]
name = "mio"
-version = "1.2.1"
+version = "1.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02bd0af71c67b473010cbbc60715ee815645a4dc942899111f494b4b737d6fda"
+checksum = "30d65c71f1ce40ab09135ce117d742b9f8a19ff91a41a8b57ed50bc2de59c427"
dependencies = [
"libc",
"log",
@@ -2086,7 +2084,7 @@ version = "0.31.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf20d2fde8ff38632c426f1165ed7436270b44f199fc55284c38276f9db47c3d"
dependencies = [
- "bitflags 2.13.0",
+ "bitflags 2.13.1",
"cfg-if",
"cfg_aliases",
"libc",
@@ -2132,7 +2130,7 @@ dependencies = [
"num-integer",
"num-iter",
"num-traits",
- "rand 0.8.6",
+ "rand 0.8.7",
"smallvec",
"zeroize",
]
@@ -2240,7 +2238,7 @@ version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f5e456864a7a304047bff84977dc6fb162bd956475d40ba50b2dcecaada7f753"
dependencies = [
- "bitflags 2.13.0",
+ "bitflags 2.13.1",
"itoa",
"memchr",
"ryu",
@@ -2458,9 +2456,9 @@ checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf"
[[package]]
name = "rand"
-version = "0.8.6"
+version = "0.8.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a"
+checksum = "22f6172bdec972074665ed81ed53b71da00bfc44b65a753cfde883ec4c702a1a"
dependencies = [
"libc",
"rand_chacha 0.3.1",
@@ -2469,9 +2467,9 @@ dependencies = [
[[package]]
name = "rand"
-version = "0.9.4"
+version = "0.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea"
+checksum = "b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41"
dependencies = [
"rand_chacha 0.9.0",
"rand_core 0.9.5",
@@ -2561,7 +2559,7 @@ version = "0.5.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d"
dependencies = [
- "bitflags 2.13.0",
+ "bitflags 2.13.1",
]
[[package]]
@@ -2570,7 +2568,7 @@ version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c5102a6aaa05aa011a238e178e6bca86d2cb56fc9f586d37cb80f5bca6e07759"
dependencies = [
- "bitflags 2.13.0",
+ "bitflags 2.13.1",
]
[[package]]
@@ -2595,9 +2593,9 @@ dependencies = [
[[package]]
name = "regex"
-version = "1.12.4"
+version = "1.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1292b7759ae1cb9ec195452d1390a074f0cd8541ab7a5a8c31cd6db45d4a6ba"
+checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d"
dependencies = [
"aho-corasick",
"memchr",
@@ -2607,9 +2605,9 @@ dependencies = [
[[package]]
name = "regex-automata"
-version = "0.4.14"
+version = "0.4.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f"
+checksum = "8fcfdb36bda0c880c5931cdc7a2bcdc8ba4556847b9d912bca70bc94708711ad"
dependencies = [
"aho-corasick",
"memchr",
@@ -2751,7 +2749,7 @@ version = "1.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190"
dependencies = [
- "bitflags 2.13.0",
+ "bitflags 2.13.1",
"errno",
"libc",
"linux-raw-sys",
@@ -2760,9 +2758,9 @@ dependencies = [
[[package]]
name = "rustls"
-version = "0.23.41"
+version = "0.23.42"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b92b125634d9b795e7beca796cc790df15a7fb38323bf3196fda83292d06b1f"
+checksum = "3c54fcab019b409d04215d3a17cb438fd7fbf192ee61461f20f4fe18704bc138"
dependencies = [
"aws-lc-rs",
"log",
@@ -2876,7 +2874,7 @@ version = "3.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d"
dependencies = [
- "bitflags 2.13.0",
+ "bitflags 2.13.1",
"core-foundation 0.10.1",
"core-foundation-sys",
"libc",
@@ -2989,9 +2987,9 @@ dependencies = [
[[package]]
name = "sha1"
-version = "0.10.6"
+version = "0.10.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
+checksum = "a978451301f4db1d02937a4ab3ccce137717b81826e79b7d49ffe3244a13c3b8"
dependencies = [
"cfg-if",
"cpufeatures 0.2.17",
@@ -3073,15 +3071,15 @@ dependencies = [
[[package]]
name = "simd-adler32"
-version = "0.3.9"
+version = "0.3.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214"
+checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea"
[[package]]
name = "simd_cesu8"
-version = "1.1.1"
+version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94f90157bb87cddf702797c5dadfa0be7d266cdf49e22da2fcaa32eff75b2c33"
+checksum = "11031e251abf8611c80f460e19dbdeb54a66db918e49c65a7065b46ac7aec520"
dependencies = [
"rustc_version",
"simdutf8",
@@ -3110,9 +3108,9 @@ dependencies = [
[[package]]
name = "socket2"
-version = "0.6.4"
+version = "0.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52d1cfed4120b4d927bf7c0f86d2087a4a7d6027c906d9f9d525a80573b9be51"
+checksum = "c3d1e2c7f27f8d4cb10542a02c49005dbd6e93095799d6f3be745fae9f8fedd4"
dependencies = [
"libc",
"windows-sys 0.61.2",
@@ -3120,9 +3118,9 @@ dependencies = [
[[package]]
name = "spin"
-version = "0.9.8"
+version = "0.9.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
+checksum = "3763264f6b73151db08c50ff20d7d8a0b8796e021cdea7ceedad07b80155fa0e"
dependencies = [
"lock_api",
]
@@ -3233,7 +3231,7 @@ checksum = "aa003f0038df784eb8fecbbac13affe3da23b45194bd57dba231c8f48199c526"
dependencies = [
"atoi",
"base64",
- "bitflags 2.13.0",
+ "bitflags 2.13.1",
"byteorder",
"bytes",
"crc",
@@ -3254,7 +3252,7 @@ dependencies = [
"memchr",
"once_cell",
"percent-encoding",
- "rand 0.8.6",
+ "rand 0.8.7",
"rsa",
"serde",
"sha1",
@@ -3276,7 +3274,7 @@ checksum = "db58fcd5a53cf07c184b154801ff91347e4c30d17a3562a635ff028ad5deda46"
dependencies = [
"atoi",
"base64",
- "bitflags 2.13.0",
+ "bitflags 2.13.1",
"byteorder",
"crc",
"dotenvy",
@@ -3293,7 +3291,7 @@ dependencies = [
"md-5",
"memchr",
"once_cell",
- "rand 0.8.6",
+ "rand 0.8.7",
"serde",
"serde_json",
"sha2",
@@ -3398,9 +3396,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
[[package]]
name = "syn"
-version = "2.0.118"
+version = "2.0.119"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b9ae57f904213ebb649ce6895b8a66c66f0203b9319718f69a5612a065b1422"
+checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297"
dependencies = [
"proc-macro2",
"quote",
@@ -3433,7 +3431,7 @@ version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b"
dependencies = [
- "bitflags 2.13.0",
+ "bitflags 2.13.1",
"core-foundation 0.9.4",
"system-configuration-sys",
]
@@ -3451,7 +3449,7 @@ dependencies = [
[[package]]
name = "taler-api"
version = "1.5.0"
-source = "git+git://git.taler.net/taler-rust.git/#4019ab323771ee02486072b50adb13b5836c8f6b"
+source = "git+git://git.taler.net/taler-rust.git/#a523cbbf0efaa493cc159045cd64ebb6ee9d85ff"
dependencies = [
"aws-lc-rs",
"axum",
@@ -3470,6 +3468,7 @@ dependencies = [
"taler-common",
"thiserror",
"tokio",
+ "tower-http 0.7.0",
"tracing",
"url",
"zlib-rs",
@@ -3478,12 +3477,12 @@ dependencies = [
[[package]]
name = "taler-build"
version = "1.5.0"
-source = "git+git://git.taler.net/taler-rust.git/#4019ab323771ee02486072b50adb13b5836c8f6b"
+source = "git+git://git.taler.net/taler-rust.git/#a523cbbf0efaa493cc159045cd64ebb6ee9d85ff"
[[package]]
name = "taler-common"
version = "1.5.0"
-source = "git+git://git.taler.net/taler-rust.git/#4019ab323771ee02486072b50adb13b5836c8f6b"
+source = "git+git://git.taler.net/taler-rust.git/#a523cbbf0efaa493cc159045cd64ebb6ee9d85ff"
dependencies = [
"anyhow",
"aws-lc-rs",
@@ -3513,7 +3512,7 @@ dependencies = [
[[package]]
name = "taler-macros"
version = "1.5.0"
-source = "git+git://git.taler.net/taler-rust.git/#4019ab323771ee02486072b50adb13b5836c8f6b"
+source = "git+git://git.taler.net/taler-rust.git/#a523cbbf0efaa493cc159045cd64ebb6ee9d85ff"
dependencies = [
"proc-macro2",
"quote",
@@ -3523,7 +3522,7 @@ dependencies = [
[[package]]
name = "taler-test-utils"
version = "1.5.0"
-source = "git+git://git.taler.net/taler-rust.git/#4019ab323771ee02486072b50adb13b5836c8f6b"
+source = "git+git://git.taler.net/taler-rust.git/#a523cbbf0efaa493cc159045cd64ebb6ee9d85ff"
dependencies = [
"aws-lc-rs",
"axum",
@@ -3610,9 +3609,9 @@ dependencies = [
[[package]]
name = "thread_local"
-version = "1.1.9"
+version = "1.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185"
+checksum = "1ad99c4c6d32803332c548b1af0540b357b3f5fc0be8f6c6bfe8b2e6ae784070"
dependencies = [
"cfg-if",
]
@@ -3659,9 +3658,9 @@ dependencies = [
[[package]]
name = "tinyvec"
-version = "1.11.0"
+version = "1.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3"
+checksum = "bb4ebadaa0af04fab11ae01eb5f9fdb5f9c5b875506e210e71c07873528baa7f"
dependencies = [
"tinyvec_macros",
]
@@ -3768,7 +3767,7 @@ version = "0.6.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840"
dependencies = [
- "bitflags 2.13.0",
+ "bitflags 2.13.1",
"bytes",
"futures-util",
"http",
@@ -3786,7 +3785,7 @@ version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b11f75e912b0c2be01b63d8cf8057b8c3f97cf34abb3d431a3a4c8675498e233"
dependencies = [
- "bitflags 2.13.0",
+ "bitflags 2.13.1",
"bytes",
"futures-core",
"futures-util",
@@ -3892,7 +3891,7 @@ dependencies = [
"http",
"httparse",
"log",
- "rand 0.9.4",
+ "rand 0.9.5",
"sha1",
"thiserror",
"utf-8",
@@ -3909,7 +3908,7 @@ dependencies = [
"http",
"httparse",
"log",
- "rand 0.9.4",
+ "rand 0.9.5",
"sha1",
"thiserror",
]
@@ -4022,9 +4021,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
[[package]]
name = "uuid"
-version = "1.23.4"
+version = "1.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf80a72845275afea99e7f2b434723d3bc7e38470fcd1c7ed39a599c73319a53"
+checksum = "bf3923a6f5c4c6382e0b653c4117f48d631ea17f38ed86e2a828e6f7412f5239"
dependencies = [
"getrandom 0.4.3",
"js-sys",
@@ -4635,15 +4634,15 @@ dependencies = [
[[package]]
name = "zlib-rs"
-version = "0.6.5"
+version = "0.6.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5431d5661c32445236631278f27946e444ddafe4684cac70b185272d4f9c52d5"
+checksum = "b142a20ec14a91d5bc708c1dc21b080c550113d8aa77afa29635673a65dd02c5"
[[package]]
name = "zmij"
-version = "1.0.21"
+version = "1.0.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
+checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
[[package]]
name = "zopfli"
diff --git a/libeufin-ebics/Cargo.toml b/libeufin-ebics/Cargo.toml
@@ -7,6 +7,13 @@ homepage.workspace = true
repository.workspace = true
license-file.workspace = true
+[features]
+codegen = ["dep:calamine"]
+
+[[bin]]
+name = "iso20022-codegen"
+required-features = ["codegen"]
+
[dependencies]
compact_str.workspace = true
aws-lc-rs.workspace = true
@@ -37,5 +44,5 @@ reqwest-websocket = "0.6.0"
roxmltree = "0.21.1"
rcgen = { version = "0.14.7", features = ["aws_lc_rs", "pem"], default-features = false }
x509-parser = { version = "0.18.1", features = ["verify-aws"] }
-calamine = { version = "0.36.0" }
+calamine = { version = "0.36.0", optional = true }
pdf-writer = "0.15.0"
diff --git a/libeufin-ebics/bin/iso20022-codegen.rs b/libeufin-ebics/bin/iso20022-codegen.rs
@@ -1,206 +0,0 @@
-/*
-* This file is part of LibEuFin.
-* Copyright (C) 2026 Taler Systems S.A.
-
-* LibEuFin is free software; you can redistribute it and/or modify
-* it under the terms of the GNU Affero General Public License as
-* published by the Free Software Foundation; either version 3, or
-* (at your option) any later version.
-
-* LibEuFin is distributed in the hope that it will be useful, but
-* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General
-* Public License for more details.
-
-* You should have received a copy of the GNU Affero General Public
-* License along with LibEuFin; see the file COPYING. If not, see
-* <http://www.gnu.org/licenses/>
-*/
-
-use std::{
- collections::BTreeMap,
- fmt::Write as _,
- io::{Cursor, Read as _},
-};
-
-use calamine::{DataType, Reader as _, Xlsx};
-use reqwest::StatusCode;
-use tokio::join;
-use zip::ZipArchive;
-
-pub async fn iso20022codegen_external_code_set() {
- let res = reqwest::get(
- "https://www.iso20022.org/sites/default/files/media/file/ExternalCodeSets_XLSX.zip",
- )
- .await
- .unwrap();
-
- assert_eq!(res.status(), StatusCode::OK);
- let zipped = res.bytes().await.unwrap();
- let mut zip = ZipArchive::new(Cursor::new(&zipped)).unwrap();
- assert_eq!(zip.len(), 1);
-
- let mut bytes = Vec::new();
- zip.by_index(0).unwrap().read_to_end(&mut bytes).unwrap();
- let mut excel: Xlsx<_> = calamine::open_workbook_from_rs(Cursor::new(&bytes)).unwrap();
-
- let mut code_sets: BTreeMap<_, Vec<_>> = BTreeMap::new();
-
- let range = excel.worksheet_range("AllCodeSets").unwrap();
- for row in range.rows() {
- let set = row[0].as_string().unwrap();
- let code = row[1].as_string().unwrap();
- let name = row[2].as_string().unwrap().replace('-', "");
- let definition = row[3]
- .as_string()
- .unwrap()
- .split(['.', '\n'])
- .next()
- .unwrap()
- .trim()
- .replace("_x000D_", "");
- let vec = code_sets.entry(set).or_default();
- vec.push((code, name, definition))
- }
-
- let mut out = "
-/*
- * This file is part of LibEuFin.
- * Copyright (C) 2026 Taler Systems S.A.
-
- * LibEuFin is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation; either version 3, or
- * (at your option) any later version.
-
- * LibEuFin is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General
- * Public License for more details.
-
- * You should have received a copy of the GNU Affero General Public
- * License along with LibEuFin; see the file COPYING. If not, see
- * <http://www.gnu.org/licenses/>
- */
-
-// THIS FILE IS GENERATED, DO NOT EDIT
-
-use taler_macros::EnumMeta;
- "
- .to_string();
-
- for (set, enum_name) in [
- ("ExternalStatusReason1Code", "StatusReason"),
- ("ExternalPaymentGroupStatus1Code", "PaymentGroupStatus"),
- (
- "ExternalPaymentTransactionStatus1Code",
- "PaymentTransactionStatus",
- ),
- ("ExternalReturnReason1Code", "ReturnReason"),
- ] {
- let set = code_sets.get_mut(set).unwrap();
- set.sort_unstable_by_key(|(code, _, _)| code.clone());
- writeln!(
- &mut out,
- "
- #[derive(Debug, Clone, Copy, PartialEq, Eq, EnumMeta)]
- #[enum_meta(DomainCode, Description, Str)]
- pub enum {enum_name} {{
- "
- )
- .unwrap();
- for (code, name, description) in set.iter() {
- writeln!(&mut out, "/// {description}").unwrap();
- writeln!(&mut out, "#[code = \"{code}\"]").unwrap();
- writeln!(&mut out, "{name},").unwrap();
- }
- writeln!(&mut out, "}}").unwrap();
- }
- std::fs::write("src/iso20022/status_code.rs", out).unwrap();
-}
-
-pub async fn iso20022codegen_bank_transaction_code() {
- let res = reqwest::get(
- "https://www.iso20022.org/sites/default/files/media/file/BTC_Codification_21March2024.xlsx",
- )
- .await
- .unwrap();
-
- assert_eq!(res.status(), StatusCode::OK);
- let bytes = res.bytes().await.unwrap();
- let mut excel: Xlsx<_> = calamine::open_workbook_from_rs(Cursor::new(&bytes)).unwrap();
-
- let mut domain = BTreeMap::new();
- let mut family = BTreeMap::new();
- let mut subfamily = BTreeMap::new();
-
- let range = excel.worksheet_range("BTC_Codification").unwrap();
-
- for row in range.rows().skip(3) {
- for (i, set) in [&mut domain, &mut family, &mut subfamily]
- .into_iter()
- .enumerate()
- {
- let name = row[i].as_string().unwrap();
- let code = row[i + 3].as_string().unwrap();
- let code = code.trim().to_string();
- set.insert(code, name);
- }
- }
-
- let mut out = "
-/*
- * This file is part of LibEuFin.
- * Copyright (C) 2026 Taler Systems S.A.
-
- * LibEuFin is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation; either version 3, or
- * (at your option) any later version.
-
- * LibEuFin is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General
- * Public License for more details.
-
- * You should have received a copy of the GNU Affero General Public
- * License along with LibEuFin; see the file COPYING. If not, see
- * <http://www.gnu.org/licenses/>
- */
-
-// THIS FILE IS GENERATED, DO NOT EDIT
-
-use taler_macros::EnumMeta;
- "
- .to_string();
-
- for (set, enum_name) in [
- (domain, "BankTxDomainCode"),
- (family, "BankTxFamilyCode"),
- (subfamily, "BankTxSubFamilyCode"),
- ] {
- writeln!(
- &mut out,
- "
- #[derive(Debug, Clone, Copy, PartialEq, Eq, EnumMeta)]
- #[enum_meta(Description, Str)]
- pub enum {enum_name} {{
- "
- )
- .unwrap();
- for (code, description) in set.iter() {
- writeln!(&mut out, "/// {description}").unwrap();
- writeln!(&mut out, "{code},").unwrap();
- }
- writeln!(&mut out, "}}").unwrap();
- }
- std::fs::write("src/iso20022/bank_tx_code.rs", out).unwrap();
-}
-
-#[tokio::main]
-pub async fn main() {
- join!(
- iso20022codegen_external_code_set(),
- iso20022codegen_bank_transaction_code()
- );
-}
diff --git a/libeufin-ebisync/Cargo.toml b/libeufin-ebisync/Cargo.toml
@@ -28,7 +28,5 @@ anyhow.workspace = true
tokio.workspace = true
jiff.workspace = true
clap.workspace = true
-pretty_assertions.workspace = true
-dialoguer.workspace = true
http-client.workspace = true
shlex.workspace = true
\ No newline at end of file