summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
Diffstat (limited to 'utils')
-rw-r--r--utils/Cargo.lock38
-rw-r--r--utils/Cargo.toml3
-rw-r--r--utils/src/main.rs8
3 files changed, 28 insertions, 21 deletions
diff --git a/utils/Cargo.lock b/utils/Cargo.lock
index 244d1f1..2cfbeb3 100644
--- a/utils/Cargo.lock
+++ b/utils/Cargo.lock
@@ -12,9 +12,19 @@ dependencies = [
[[package]]
name = "abnf"
-version = "0.6.1"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76d5f963d2236fd5701b660a9733bd22a5be300267955c71fa03bdf75ecb30b5"
+dependencies = [
+ "abnf-core",
+ "nom",
+]
+
+[[package]]
+name = "abnf-core"
+version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "47feb9fbcef700639ef28e04ca2a87eab8161a01a075ee227b15c90143805462"
+checksum = "137c894fdb05ad3feb514cec800945cfebbb6435c73f9c2097b953e44a106273"
dependencies = [
"nom",
]
@@ -22,8 +32,6 @@ dependencies = [
[[package]]
name = "abnf_to_pest"
version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "372baaa5d3a422d8816b513bcdb2c120078c8614f7ecbcc3baf34a1634bbbe2e"
dependencies = [
"abnf",
"indexmap",
@@ -341,9 +349,7 @@ dependencies = [
[[package]]
name = "dhall"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0dc4d9d9848124c8c10f24e3696f86d5249d7d2dca8ca0556cff10f001d51e8"
+version = "0.10.1"
dependencies = [
"abnf_to_pest",
"annotate-snippets",
@@ -366,11 +372,8 @@ dependencies = [
[[package]]
name = "dhall_proc_macros"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf6cff1e2ddd03851652e0cde982b01dc877c9fc9da9ba25ad4241a151945f09"
+version = "0.5.1"
dependencies = [
- "itertools",
"proc-macro2",
"quote",
"syn",
@@ -1267,10 +1270,11 @@ checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
[[package]]
name = "pretty"
-version = "0.5.2"
+version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f60c0d9f6fc88ecdd245d90c1920ff76a430ab34303fc778d33b1d0a4c3bf6d3"
+checksum = "ad9940b913ee56ddd94aec2d3cd179dd47068236f42a1a6415ccf9d880ce2a61"
dependencies = [
+ "arrayvec",
"typed-arena",
]
@@ -1627,9 +1631,7 @@ dependencies = [
[[package]]
name = "serde_dhall"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e01dfb806cc18b2cc347254781948862dba85e6fc2cf300b6cb321fa8fed9137"
+version = "0.10.1"
dependencies = [
"dhall",
"dhall_proc_macros",
@@ -1952,9 +1954,9 @@ dependencies = [
[[package]]
name = "typed-arena"
-version = "1.7.0"
+version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9b2228007eba4120145f785df0f6c92ea538f5a3635a612ecf4e334c8c1446d"
+checksum = "0685c84d5d54d1c26f7d3eb96cd41550adb97baed141a761cf335d3d33bcd0ae"
[[package]]
name = "typenum"
diff --git a/utils/Cargo.toml b/utils/Cargo.toml
index e959f55..a254855 100644
--- a/utils/Cargo.toml
+++ b/utils/Cargo.toml
@@ -8,7 +8,8 @@ edition = "2018"
[dependencies]
serde = { version = "1.0", features = [ "derive" ] }
-serde_dhall = "0.10.0"
+#serde_dhall = "0.10.0"
+serde_dhall = { path = "../../playground/dhall-rust/serde_dhall" }
serde_json = "1.0.64"
age = "0.5.1"
structopt = "0.3.21"
diff --git a/utils/src/main.rs b/utils/src/main.rs
index 4428ac3..ea267d8 100644
--- a/utils/src/main.rs
+++ b/utils/src/main.rs
@@ -64,13 +64,17 @@ fn main () {
// imported: just wrap our input code into a dhall "let"-statement.
// Probably doesn't scale very vell, though ...
let code = format!(
- "let Question = {} \nlet Answers = {} \nlet Lang = {}\nin {}",
+ "let Question = {} \nlet Lang = {}\nin {}",
Question::static_type(),
- AnswerSpace::static_type(),
Lang::static_type(),
config_file
);
match serde_dhall::from_str(&code)
+ .substitute_names(vec![
+ ("Question".to_string(),Question::static_type()),
+ ("Answers".to_string(), AnswerSpace::static_type()),
+ ("Lang".to_string(), Lang::static_type())
+ ].iter().cloned().collect())
.static_type_annotation()
.parse::<Survey>()
{