From 8f318c30cf8cbed175181078f8abf975a1e3b058 Mon Sep 17 00:00:00 2001 From: ozgurakgun Date: Sat, 30 Mar 2024 19:35:50 +0000 Subject: [PATCH] Actions: Update code coverage for main --- .../conjure_oxide/src/find_conjure.rs.html | 92 +- .../conjure_oxide/src/utils/conjure.rs.html | 716 +- .../main/conjure_oxide/src/utils/index.html | 24 +- .../main/conjure_oxide/src/utils/json.rs.html | 168 +- .../conjure_oxide/src/utils/testing.rs.html | 1174 +-- .../tests/generated_tests.rs.html | 470 +- coverage/main/conjure_oxide/tests/index.html | 10 +- .../conjure_oxide/tests/model_tests.rs.html | 2 +- .../conjure_oxide/tests/rewrite_tests.rs.html | 58 +- coverage/main/coverage.json | 2 +- .../conjure_core/src/ast/constants.rs.html | 4 +- .../conjure_core/src/ast/domains.rs.html | 8 +- .../conjure_core/src/ast/symbol_table.rs.html | 4 +- .../conjure_core/src/ast/variables.rs.html | 4 +- .../crates/conjure_core/src/context.rs.html | 560 +- .../main/crates/conjure_core/src/index.html | 20 +- .../crates/conjure_core/src/metadata.rs.html | 4 +- .../crates/conjure_core/src/model.rs.html | 610 +- .../src/parse/example_models.rs.html | 396 +- .../src/parse/parse_model.rs.html | 1188 +-- .../conjure_core/src/rule_engine/index.html | 16 +- .../src/rule_engine/resolve_rules.rs.html | 60 +- .../conjure_core/src/rule_engine/rule.rs.html | 24 +- .../src/rule_engine/rule_set.rs.html | 34 +- .../src/solver/adaptors/index.html | 16 +- .../src/solver/adaptors/minion.rs.html | 862 ++- .../crates/conjure_core/src/solver/index.html | 16 +- .../conjure_core/src/solver/mod.rs.html | 2098 ++++-- .../crates/conjure_core/src/stats/index.html | 98 + .../crates/conjure_core/src/stats/mod.rs.html | 409 + .../src/stats/solver_stats.rs.html | 633 ++ .../main/crates/uniplate/src/tree.rs.html | 140 +- coverage/main/doc-coverage.json | 10 +- coverage/main/doc-coverage.txt | 25 +- coverage/main/index.html | 96 +- coverage/main/lcov.info | 6671 +++++++++-------- 36 files changed, 9761 insertions(+), 6961 deletions(-) create mode 100644 coverage/main/crates/conjure_core/src/stats/index.html create mode 100644 coverage/main/crates/conjure_core/src/stats/mod.rs.html create mode 100644 coverage/main/crates/conjure_core/src/stats/solver_stats.rs.html diff --git a/coverage/main/conjure_oxide/src/find_conjure.rs.html b/coverage/main/conjure_oxide/src/find_conjure.rs.html index 5674f4d10d..53ef256f71 100644 --- a/coverage/main/conjure_oxide/src/find_conjure.rs.html +++ b/coverage/main/conjure_oxide/src/find_conjure.rs.html @@ -167,8 +167,8 @@
- 4 + role="cell" aria-label="5"> + 5
@@ -183,8 +183,8 @@
- 4 + role="cell" aria-label="5"> + 5
@@ -199,8 +199,8 @@
- 4 + role="cell" aria-label="5"> + 5
@@ -215,8 +215,8 @@
- 4 + role="cell" aria-label="5"> + 5
@@ -231,8 +231,8 @@
- 4 + role="cell" aria-label="5"> + 5
@@ -263,8 +263,8 @@
- 4 + role="cell" aria-label="5"> + 5
@@ -295,8 +295,8 @@
- 4 + role="cell" aria-label="5"> + 5
@@ -311,8 +311,8 @@
- 4 + role="cell" aria-label="5"> + 5
@@ -327,8 +327,8 @@
- 4 + role="cell" aria-label="5"> + 5
@@ -343,8 +343,8 @@
- 4 + role="cell" aria-label="5"> + 5
@@ -359,8 +359,8 @@
- 4 + role="cell" aria-label="5"> + 5
@@ -375,8 +375,8 @@
- 4 + role="cell" aria-label="5"> + 5
@@ -567,8 +567,8 @@
- 4 + role="cell" aria-label="5"> + 5
@@ -583,8 +583,8 @@
- 4 + role="cell" aria-label="5"> + 5
@@ -599,8 +599,8 @@
- 4 + role="cell" aria-label="5"> + 5
@@ -615,8 +615,8 @@
- 4 + role="cell" aria-label="5"> + 5
@@ -631,8 +631,8 @@
- 4 + role="cell" aria-label="5"> + 5
@@ -663,8 +663,8 @@
- 4 + role="cell" aria-label="5"> + 5
@@ -679,8 +679,8 @@
- 4 + role="cell" aria-label="5"> + 5
@@ -903,8 +903,8 @@
- 4 + role="cell" aria-label="5"> + 5
@@ -999,8 +999,8 @@
- 4 + role="cell" aria-label="5"> + 5
@@ -1015,8 +1015,8 @@
- 4 + role="cell" aria-label="5"> + 5
@@ -1031,8 +1031,8 @@
- 4 + role="cell" aria-label="5"> + 5
diff --git a/coverage/main/conjure_oxide/src/utils/conjure.rs.html b/coverage/main/conjure_oxide/src/utils/conjure.rs.html index 3feb7df911..622b8082e6 100644 --- a/coverage/main/conjure_oxide/src/utils/conjure.rs.html +++ b/coverage/main/conjure_oxide/src/utils/conjure.rs.html @@ -15,7 +15,7 @@

Lines

- 76.27 %

+ 80 %

@@ -60,7 +60,7 @@
-
use std::sync::{Arc, Mutex};
+
use std::sync::{Arc, Mutex, RwLock};
-
use serde_json::{Map, Value as JsonValue};
+
use conjure_core::context::Context;
-
use thiserror::Error as ThisError;
+
use serde_json::{Map, Value as JsonValue};
-

+                
use thiserror::Error as ThisError;
-
use crate::ast::{Constant, Name};
+

             
-
use crate::model_from_json;
+
use crate::ast::{Constant, Name};
-
use crate::solver::adaptors::Minion;
+
use crate::model_from_json;
-
use crate::solver::Solver;
+
use crate::solver::adaptors::Minion;
-
use crate::utils::json::sort_json_object;
+
use crate::solver::Solver;
-
use crate::Error as ParseErr;
+
use crate::utils::json::sort_json_object;
-
use crate::Model;
+
use crate::Error as ParseErr;
-

+                
use crate::Model;
15
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage">
-
-
#[derive(Debug, ThisError)]
+

             
16
+ class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0">
-
-
pub enum EssenceParseError {
+
#[derive(Debug, ThisError)]
-
    #[error("Error running conjure pretty: {0}")]
+
pub enum EssenceParseError {
-
    ConjurePrettyError(String),
+
    #[error("Error running conjure pretty: {0}")]
-
    #[error("Error parsing essence file: {0}")]
+
    ConjurePrettyError(String),
-
    ParseError(ParseErr),
+
    #[error("Error parsing essence file: {0}")]
-
}
+
    ParseError(ParseErr),
-

+                
}
-
impl From<ParseErr> for EssenceParseError {
+

             
24
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage">
-
-
    fn from(e: ParseErr) -> Self {
+
impl From<ParseErr> for EssenceParseError {
-
        EssenceParseError::ParseError(e)
+
    fn from(e: ParseErr) -> Self {
-
    }
+
        EssenceParseError::ParseError(e)
27
+ class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0">
-
-
}
+
    }
-

+                
}
29
- 36 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
pub fn parse_essence_file(path: &str, filename: &str) -> Result<Model, EssenceParseError> {
+

             
- 36 + role="cell" aria-label="45"> + 45
-
    let mut cmd = std::process::Command::new("conjure");
+
pub fn parse_essence_file(
- 36 + role="cell" aria-label="45"> + 45
-
    let output = match cmd
+
    path: &str,
- 36 + role="cell" aria-label="45"> + 45
-
        .arg("pretty")
+
    filename: &str,
- 36 + role="cell" aria-label="45"> + 45
-
        .arg("--output-format=astjson")
+
    context: Arc<RwLock<Context<'static>>>,
- 36 + role="cell" aria-label="45"> + 45
-
        .arg(format!("{path}/{filename}.essence"))
+
) -> Result<Model, EssenceParseError> {
- 36 + role="cell" aria-label="45"> + 45
-
        .output()
+
    let mut cmd = std::process::Command::new("conjure");
36
+
+ 45 +
+
+
    let output = match cmd
+
+
+
+ 37 +
+
+ 45 +
+
+
        .arg("pretty")
+
+
+
+ 38 +
+
+ 45 +
+
+
        .arg("--output-format=astjson")
+
+
+
+ 39 +
+
+ 45 +
+
+
        .arg(format!("{path}/{filename}.essence"))
+
+
+
+ 40 +
+
+ 45 +
+
+
        .output()
+
+
+
+ 41 +
@@ -609,14 +689,14 @@
- 37 + 42
- 36 + role="cell" aria-label="45"> + 45
@@ -625,9 +705,9 @@
- 38 + 43
- 39 + 44
- 40 + 45
- 41 + 46
- 36 + role="cell" aria-label="45"> + 45
@@ -689,9 +769,9 @@
- 42 + 47
- 43 + 48
- 44 + 49
- 45 + 50
- 36 + role="cell" aria-label="45"> + 45
@@ -753,9 +833,9 @@
- 46 + 51
- 47 + 52
- 36 + role="cell" aria-label="45"> + 45
@@ -785,14 +865,14 @@
- 48 + 53
- 36 + role="cell" aria-label="45"> + 45
@@ -801,9 +881,9 @@
- 49 + 54
- 50 + 55
- 51 + 56
- 52 + 57
- 53 + 58
- 54 + 59
- 55 + 60
- 56 + 61
- 57 + 62
- 36 + role="cell" aria-label="45"> + 45
-
    let parsed_model = model_from_json(&astjson)?;
+
    let parsed_model = model_from_json(&astjson, context)?;
- 58 + 63
- 36 + role="cell" aria-label="45"> + 45
@@ -961,14 +1041,14 @@
- 59 + 64
- 36 + role="cell" aria-label="45"> + 45
@@ -977,9 +1057,9 @@
- 60 + 65
- 61 + 66
- 36 + role="cell" aria-label="45"> + 45
@@ -1009,14 +1089,14 @@
- 62 + 67
- 36 + role="cell" aria-label="45"> + 45
@@ -1025,14 +1105,14 @@
- 63 + 68
- 36 + role="cell" aria-label="45"> + 45
@@ -1041,14 +1121,14 @@
- 64 + 69
- 36 + role="cell" aria-label="45"> + 45
@@ -1057,14 +1137,14 @@
- 65 + 70
- 36 + role="cell" aria-label="45"> + 45
@@ -1073,9 +1153,9 @@
- 66 + 71
- 67 + 72
- 36 + role="cell" aria-label="45"> + 45
@@ -1105,14 +1185,14 @@
- 68 + 73
- 36 + role="cell" aria-label="45"> + 45
@@ -1121,14 +1201,14 @@
- 69 + 74
- 36 + role="cell" aria-label="45"> + 45
@@ -1137,14 +1217,14 @@
- 70 + 75
- 36 + role="cell" aria-label="45"> + 45
@@ -1153,14 +1233,14 @@
- 71 + 76
- 36 + role="cell" aria-label="45"> + 45
@@ -1169,126 +1249,190 @@
- 72 + 77
- 140 + role="cell" aria-label="45"> + 45
-
    solver.solve(Box::new(move |sols| {
+
    let solver = solver
- 73 + 78
- 140 + role="cell" aria-label="175"> + 175
-
        let mut all_solutions = (*all_solutions_ref_2).lock().unwrap();
+
        .solve(Box::new(move |sols| {
- 74 + 79
- 140 + role="cell" aria-label="175"> + 175
-
        (*all_solutions).push(sols);
+
            let mut all_solutions = (*all_solutions_ref_2).lock().unwrap();
- 75 + 80
- 140 + role="cell" aria-label="175"> + 175
-
        true
+
            (*all_solutions).push(sols);
- 76 + 81
- 140 + role="cell" aria-label="175"> + 175
-
    }))?;
+
            true
- 77 + 82
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="175"> + 175
-
-

+                
        }))
- 78 + 83
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="45"> + 45
-
-
    #[allow(clippy::unwrap_used)]
+
        .unwrap();
- 79 + 84
- 36 + role="cell" aria-label="45"> + 45 +
+
+

+            
+
+
+ 85 +
+
+ 45 +
+
+
    solver.save_stats_to_context();
+
+
+
+ 86 +
+
+ 45 +
+
+

+            
+
+
+ 87 +
+
+ 45 +
+
+
    #[allow(clippy::unwrap_used)]
+
+
+
+ 88 +
+
+ 45
@@ -1297,14 +1441,30 @@
- 80 + 89 +
+
+ 45 +
+
+

+            
+
+
+ 90
- 36 + role="cell" aria-label="45"> + 45
@@ -1313,14 +1473,14 @@
- 81 + 91
- 36 + role="cell" aria-label="45"> + 45
@@ -1329,9 +1489,9 @@
- 82 + 92
- 83 + 93
- 36 + role="cell" aria-label="45"> + 45
@@ -1361,14 +1521,14 @@
- 84 + 94
- 36 + role="cell" aria-label="45"> + 45
@@ -1377,14 +1537,14 @@
- 85 + 95
- 176 + role="cell" aria-label="220"> + 220
@@ -1393,14 +1553,14 @@
- 86 + 96
- 140 + role="cell" aria-label="175"> + 175
@@ -1409,14 +1569,14 @@
- 87 + 97
- 520 + role="cell" aria-label="650"> + 650
@@ -1425,14 +1585,14 @@
- 88 + 98
- 380 + role="cell" aria-label="475"> + 475
@@ -1441,14 +1601,14 @@
- 89 + 99
- 380 + role="cell" aria-label="475"> + 475
@@ -1457,9 +1617,9 @@
- 90 + 100
- 91 + 101
- 92 + 102
- 380 + role="cell" aria-label="475"> + 475
@@ -1505,9 +1665,9 @@
- 93 + 103
- 94 + 104
- 140 + role="cell" aria-label="175"> + 175
@@ -1537,9 +1697,9 @@
- 95 + 105
- 96 + 106
- 36 + role="cell" aria-label="45"> + 45
@@ -1569,14 +1729,14 @@
- 97 + 107
- 36 + role="cell" aria-label="45"> + 45
@@ -1585,14 +1745,14 @@
- 98 + 108
- 36 + role="cell" aria-label="45"> + 45
diff --git a/coverage/main/conjure_oxide/src/utils/index.html b/coverage/main/conjure_oxide/src/utils/index.html index bbff7ff666..b9824c34aa 100644 --- a/coverage/main/conjure_oxide/src/utils/index.html +++ b/coverage/main/conjure_oxide/src/utils/index.html @@ -15,7 +15,7 @@

Lines

- 64.47 %

+ 67.86 %

@@ -23,7 +23,7 @@

Functions

- 25 %

+ 25.4 %

@@ -46,16 +46,16 @@ - 76.27% + 80% - 76.27% + 80% - 45 / 59 + 56 / 70 22.22% @@ -118,20 +118,20 @@ - 54.55% + 59.35% - 54.55% + 59.35% - 60 / 110 + 73 / 123 - 23.81% - 5 / 21 + 25% + 6 / 24 diff --git a/coverage/main/conjure_oxide/src/utils/json.rs.html b/coverage/main/conjure_oxide/src/utils/json.rs.html index af3b63bb1f..367be315aa 100644 --- a/coverage/main/conjure_oxide/src/utils/json.rs.html +++ b/coverage/main/conjure_oxide/src/utils/json.rs.html @@ -135,8 +135,8 @@
- 468 + role="cell" aria-label="615"> + 615
@@ -151,8 +151,8 @@
- 468 + role="cell" aria-label="615"> + 615
@@ -295,8 +295,8 @@
- 116 + role="cell" aria-label="135"> + 135
@@ -311,8 +311,8 @@
- 116 + role="cell" aria-label="135"> + 135
@@ -327,8 +327,8 @@
- 116 + role="cell" aria-label="135"> + 135
@@ -343,8 +343,8 @@
- 116 + role="cell" aria-label="135"> + 135
@@ -359,8 +359,8 @@
- 116 + role="cell" aria-label="135"> + 135
@@ -439,8 +439,8 @@
- 352 + role="cell" aria-label="480"> + 480
@@ -471,8 +471,8 @@
- 468 + role="cell" aria-label="615"> + 615
@@ -535,8 +535,8 @@
- 72 + role="cell" aria-label="90"> + 90
@@ -551,8 +551,8 @@
- 72 + role="cell" aria-label="90"> + 90
@@ -567,8 +567,8 @@
- 72 + role="cell" aria-label="90"> + 90
@@ -583,8 +583,8 @@
- 72 + role="cell" aria-label="90"> + 90
@@ -599,8 +599,8 @@
- 72 + role="cell" aria-label="90"> + 90
@@ -615,8 +615,8 @@
- 72 + role="cell" aria-label="90"> + 90
@@ -679,8 +679,8 @@
- 72 + role="cell" aria-label="90"> + 90
@@ -791,8 +791,8 @@
- 7860 + role="cell" aria-label="10230"> + 10230
@@ -807,8 +807,8 @@
- 7860 + role="cell" aria-label="10230"> + 10230
@@ -823,8 +823,8 @@
- 3572 + role="cell" aria-label="4600"> + 4600
@@ -839,8 +839,8 @@
- 3572 + role="cell" aria-label="4600"> + 4600
@@ -855,8 +855,8 @@
- 3572 + role="cell" aria-label="4600"> + 4600
@@ -871,8 +871,8 @@
- 4196 + role="cell" aria-label="5560"> + 5560
@@ -887,8 +887,8 @@
- 4196 + role="cell" aria-label="5560"> + 5560
@@ -903,8 +903,8 @@
- 72 + role="cell" aria-label="90"> + 90
@@ -935,8 +935,8 @@
- 4124 + role="cell" aria-label="5470"> + 5470
@@ -967,8 +967,8 @@
- 4196 + role="cell" aria-label="5560"> + 5560
@@ -983,8 +983,8 @@
- 3572 + role="cell" aria-label="4600"> + 4600
@@ -999,8 +999,8 @@
- 3572 + role="cell" aria-label="4600"> + 4600
@@ -1015,8 +1015,8 @@
- 3572 + role="cell" aria-label="4600"> + 4600
@@ -1031,8 +1031,8 @@
- 3572 + role="cell" aria-label="4600"> + 4600
@@ -1063,8 +1063,8 @@
- 1428 + role="cell" aria-label="1875"> + 1875
@@ -1079,8 +1079,8 @@
- 1428 + role="cell" aria-label="1875"> + 1875
@@ -1095,8 +1095,8 @@
- 1428 + role="cell" aria-label="1875"> + 1875
@@ -1111,8 +1111,8 @@
- 3592 + role="cell" aria-label="4535"> + 4535
@@ -1127,8 +1127,8 @@
- 1428 + role="cell" aria-label="1875"> + 1875
@@ -1143,8 +1143,8 @@
- 1428 + role="cell" aria-label="1875"> + 1875
@@ -1159,8 +1159,8 @@
- 1428 + role="cell" aria-label="1875"> + 1875
@@ -1175,8 +1175,8 @@
- 72 + role="cell" aria-label="90"> + 90
@@ -1191,8 +1191,8 @@
- 1356 + role="cell" aria-label="1785"> + 1785
@@ -1223,8 +1223,8 @@
- 1428 + role="cell" aria-label="1875"> + 1875
@@ -1255,8 +1255,8 @@
- 2860 + role="cell" aria-label="3755"> + 3755
@@ -1287,8 +1287,8 @@
- 7860 + role="cell" aria-label="10230"> + 10230
diff --git a/coverage/main/conjure_oxide/src/utils/testing.rs.html b/coverage/main/conjure_oxide/src/utils/testing.rs.html index a28cc9ebe1..50c96db5b7 100644 --- a/coverage/main/conjure_oxide/src/utils/testing.rs.html +++ b/coverage/main/conjure_oxide/src/utils/testing.rs.html @@ -15,7 +15,7 @@

Lines

- 54.55 %

+ 59.35 %

@@ -23,7 +23,7 @@

Functions

- 23.81 %

+ 25 %

@@ -124,7 +124,7 @@
-

+                
use std::sync::{Arc, RwLock};
-
use serde_json::{Error as JsonError, Value as JsonValue};
+

             
-

+                
use conjure_core::context::Context;
-
use conjure_core::error::Error;
+
use serde_json::{Error as JsonError, Value as JsonValue};
-
use crate::ast::Name::UserName;
+
use conjure_core::error::Error;
-
use crate::ast::{Constant, Name};
+

             
-
use crate::utils::conjure::minion_solutions_to_json;
+
use crate::ast::Name::UserName;
-
use crate::utils::json::sort_json_object;
+
use crate::ast::{Constant, Name};
-
use crate::utils::misc::to_set;
+
use crate::utils::conjure::minion_solutions_to_json;
-
use crate::Model as ConjureModel;
+
use crate::utils::json::sort_json_object;
-

+                
use crate::utils::misc::to_set;
18
+
+ +
+
+
use crate::Model as ConjureModel;
+
+
+
+ 19 +
+
+ +
+
+

+            
+
+
+ 20 +
@@ -321,9 +353,9 @@
- 19 + 21
- 20 + 22
- 21 + 23
- 22 + 24
- 23 + 25
- 24 + 26
- 25 + 27
- 26 + 28
- 27 + 29
- 28 + 30
- 29 + 31
- 30 + 32
- 31 + 33
- 32 + 34
- 33 + 35
- 34 + 36
- 35 + 37
- 36 + 38
- 37 + 39
- 38 + 40
- 39 + 41
- 72 + role="cell" aria-label="90"> + 90
@@ -657,9 +689,9 @@
- 40 + 42
- 41 + 43
- 42 + 44
- 43 + 45
- 72 + role="cell" aria-label="90"> + 90
@@ -721,9 +753,9 @@
- 44 + 46
- 45 + 47
- 46 + 48
- 72 + role="cell" aria-label="90"> + 90
@@ -769,9 +801,9 @@
- 47 + 49
- 48 + 50
- 72 + role="cell" aria-label="90"> + 90
@@ -801,14 +833,14 @@
- 49 + 51
- 72 + role="cell" aria-label="90"> + 90
@@ -817,9 +849,9 @@
- 50 + 52
- 51 + 53
- 72 + role="cell" aria-label="90"> + 90
@@ -849,14 +881,14 @@
- 52 + 54
- 72 + role="cell" aria-label="90"> + 90
@@ -865,14 +897,14 @@
- 53 + 55
- 72 + role="cell" aria-label="90"> + 90
@@ -881,14 +913,14 @@
- 54 + 56
- 72 + role="cell" aria-label="90"> + 90
@@ -897,14 +929,14 @@
- 55 + 57
- 72 + role="cell" aria-label="90"> + 90
@@ -913,14 +945,14 @@
- 56 + 58
- 72 + role="cell" aria-label="90"> + 90
@@ -929,14 +961,14 @@
- 57 + 59
- 72 + role="cell" aria-label="90"> + 90
@@ -945,14 +977,14 @@
- 58 + 60
- 72 + role="cell" aria-label="90"> + 90
@@ -961,9 +993,9 @@
- 59 + 61
- 60 + 62
- 72 + role="cell" aria-label="90"> + 90
@@ -993,14 +1025,14 @@
- 61 + 63
- 72 + role="cell" aria-label="90"> + 90
@@ -1009,14 +1041,14 @@
- 62 + 64
- 72 + role="cell" aria-label="90"> + 90
@@ -1025,14 +1057,14 @@
- 63 + 65
- 72 + role="cell" aria-label="90"> + 90
@@ -1041,9 +1073,9 @@
- 64 + 66
- 65 + 67
- 72 + role="cell" aria-label="90"> + 90
@@ -1073,9 +1105,9 @@
- 66 + 68
- 67 + 69
- 68 + 70
- 69 + 71
- 70 + 72
- 72 + role="cell" aria-label="90"> + 90
@@ -1153,9 +1185,9 @@
- 71 + 73
- 72 + 74
- 72 + role="cell" aria-label="90"> + 90
@@ -1185,14 +1217,14 @@
- 73 + 75
- 72 + role="cell" aria-label="90"> + 90
@@ -1201,9 +1233,9 @@
- 74 + 76
- 75 + 77 +
+
+ 45 +
+
+
pub fn save_stats_json(
+
+
+
+ 78 +
+
+ 45 +
+
+
    context: Arc<RwLock<Context<'static>>>,
+
+
+
+ 79 +
+
+ 45 +
+
+
    path: &str,
+
+
+
+ 80 +
+
+ 45 +
+
+
    test_name: &str,
+
+
+
+ 81 +
+
+ 45 +
+
+
) -> Result<(), std::io::Error> {
+
+
+
+ 82 +
+
+ 45 +
+
+
    #[allow(clippy::unwrap_used)]
+
+
+
+ 83 +
+
+ 45 +
+
+
    let stats = context.read().unwrap().clone();
+
+
+
+ 84 +
+
+ 45 +
+
+
    let generated_json = sort_json_object(&serde_json::to_value(stats)?, false);
+
+
+
+ 85 +
+
+ +
+
+

+            
+
+
+ 86 +
+
+ +
+
+
    // serialise to string
+
+
+
+ 87
- 72 + role="cell" aria-label="45"> + 45 +
+
+
    let generated_json_str = serde_json::to_string_pretty(&generated_json)?;
+
+
+
+ 88 +
+
+ +
+
+

+            
+
+
+ 89 +
+
+ 45 +
+
+
    File::create(format!("{path}/{test_name}-stats.json"))?
+
+
+
+ 90 +
+
+ 45 +
+
+
        .write_all(generated_json_str.as_bytes())?;
+
+
+
+ 91 +
+
+ +
+
+

+            
+
+
+ 92 +
+
+ 45 +
+
+
    Ok(())
+
+
+
+ 93 +
+
+ 45 +
+
+
}
+
+
+
+ 94 +
+
+ +
+
+

+            
+
+
+ 95 +
+
+ 90
@@ -1233,14 +1553,14 @@
- 76 + 96
- 72 + role="cell" aria-label="90"> + 90
@@ -1249,14 +1569,14 @@
- 77 + 97
- 72 + role="cell" aria-label="90"> + 90
@@ -1265,14 +1585,14 @@
- 78 + 98
- 72 + role="cell" aria-label="90"> + 90
@@ -1281,14 +1601,14 @@
- 79 + 99
- 72 + role="cell" aria-label="90"> + 90
@@ -1297,14 +1617,14 @@
- 80 + 100
- 72 + role="cell" aria-label="90"> + 90
@@ -1313,14 +1633,14 @@
- 81 + 101
- 72 + role="cell" aria-label="90"> + 90
@@ -1329,14 +1649,14 @@
- 82 + 102
- 72 + role="cell" aria-label="90"> + 90
@@ -1345,14 +1665,14 @@
- 83 + 103
- 72 + role="cell" aria-label="90"> + 90
@@ -1361,9 +1681,9 @@
- 84 + 104
- 85 + 105
- 72 + role="cell" aria-label="90"> + 90
@@ -1393,9 +1713,9 @@
- 86 + 106
- 87 + 107
- 72 + role="cell" aria-label="90"> + 90
@@ -1425,14 +1745,14 @@
- 88 + 108
- 72 + role="cell" aria-label="90"> + 90
@@ -1441,9 +1761,9 @@
- 89 + 109
- 90 + 110
- 91 + 111
- 92 + 112
- 93 + 113
- 94 + 114
- 95 + 115
- 96 + 116
- 97 + 117
- 98 + 118
- 99 + 119
- 100 + 120
- 101 + 121
- 102 + 122
- 103 + 123
- 104 + 124
- 105 + 125
- 106 + 126
- 107 + 127
- 108 + 128
- 109 + 129
- 110 + 130
- 111 + 131
- 112 + 132
- 113 + 133
- 114 + 134
- 115 + 135
- 116 + 136
- 117 + 137
- 118 + 138
- 119 + 139
- 120 + 140
- 121 + 141
- 122 + 142
- 123 + 143
- 124 + 144
- 125 + 145
- 126 + 146
- 127 + 147
- 128 + 148
- 36 + role="cell" aria-label="45"> + 45
@@ -2081,14 +2401,14 @@
- 129 + 149
- 36 + role="cell" aria-label="45"> + 45
@@ -2097,14 +2417,14 @@
- 130 + 150
- 36 + role="cell" aria-label="45"> + 45
@@ -2113,14 +2433,14 @@
- 131 + 151
- 36 + role="cell" aria-label="45"> + 45
@@ -2129,14 +2449,14 @@
- 132 + 152
- 36 + role="cell" aria-label="45"> + 45
@@ -2145,14 +2465,14 @@
- 133 + 153
- 36 + role="cell" aria-label="45"> + 45
@@ -2161,14 +2481,14 @@
- 134 + 154
- 36 + role="cell" aria-label="45"> + 45
@@ -2177,9 +2497,9 @@
- 135 + 155
- 136 + 156
- 36 + role="cell" aria-label="45"> + 45
@@ -2209,9 +2529,9 @@
- 137 + 157
- 138 + 158
- 36 + role="cell" aria-label="45"> + 45
@@ -2241,14 +2561,14 @@
- 139 + 159
- 36 + role="cell" aria-label="45"> + 45
@@ -2257,14 +2577,14 @@
- 140 + 160
- 36 + role="cell" aria-label="45"> + 45
@@ -2273,14 +2593,14 @@
- 141 + 161
- 36 + role="cell" aria-label="45"> + 45
@@ -2289,9 +2609,9 @@
- 142 + 162
- 143 + 163
- 36 + role="cell" aria-label="45"> + 45
@@ -2321,9 +2641,9 @@
- 144 + 164
- 145 + 165
- 146 + 166
- 147 + 167
- 148 + 168
- 36 + role="cell" aria-label="45"> + 45
@@ -2401,9 +2721,9 @@
- 149 + 169
- 150 + 170
- 36 + role="cell" aria-label="45"> + 45
@@ -2433,14 +2753,14 @@
- 151 + 171
- 36 + role="cell" aria-label="45"> + 45
@@ -2449,9 +2769,9 @@
- 152 + 172
- 153 + 173
- 36 + role="cell" aria-label="45"> + 45
@@ -2481,14 +2801,14 @@
- 154 + 174
- 36 + role="cell" aria-label="45"> + 45
@@ -2497,14 +2817,14 @@
- 155 + 175
- 36 + role="cell" aria-label="45"> + 45
@@ -2513,14 +2833,14 @@
- 156 + 176
- 36 + role="cell" aria-label="45"> + 45
@@ -2529,14 +2849,14 @@
- 157 + 177
- 36 + role="cell" aria-label="45"> + 45
@@ -2545,14 +2865,14 @@
- 158 + 178
- 36 + role="cell" aria-label="45"> + 45
@@ -2561,14 +2881,14 @@
- 159 + 179
- 36 + role="cell" aria-label="45"> + 45
@@ -2577,9 +2897,9 @@
- 160 + 180
- 161 + 181
- 36 + role="cell" aria-label="45"> + 45
@@ -2609,14 +2929,14 @@
- 162 + 182
- 36 + role="cell" aria-label="45"> + 45
@@ -2625,9 +2945,9 @@
- 163 + 183
- 164 + 184
- 36 + role="cell" aria-label="45"> + 45
@@ -2657,14 +2977,14 @@
- 165 + 185
- 36 + role="cell" aria-label="45"> + 45
diff --git a/coverage/main/conjure_oxide/tests/generated_tests.rs.html b/coverage/main/conjure_oxide/tests/generated_tests.rs.html index 426fb52aa4..f2d4f0a7b8 100644 --- a/coverage/main/conjure_oxide/tests/generated_tests.rs.html +++ b/coverage/main/conjure_oxide/tests/generated_tests.rs.html @@ -15,7 +15,7 @@

Lines

- 66.67 %

+ 68.97 %

@@ -92,7 +92,7 @@
-

+                
use std::sync::Arc;
-
use conjure_oxide::rule_engine::resolve_rule_sets;
+
use std::sync::RwLock;
-
use conjure_oxide::rule_engine::rewrite_model;
+

             
-
use conjure_oxide::utils::conjure::{get_minion_solutions, parse_essence_file};
+
use conjure_core::context::Context;
-
use conjure_oxide::utils::testing::{
+
use conjure_oxide::rule_engine::resolve_rule_sets;
-
    read_minion_solutions_json, read_model_json, save_minion_solutions_json, save_model_json,
+
use conjure_oxide::rule_engine::rewrite_model;
-
};
+
use conjure_oxide::utils::conjure::{get_minion_solutions, parse_essence_file};
-
use conjure_oxide::SolverFamily;
+
use conjure_oxide::utils::testing::save_stats_json;
-

+                
use conjure_oxide::utils::testing::{
13
+
+ +
+
+
    read_minion_solutions_json, read_model_json, save_minion_solutions_json, save_model_json,
+
+
+
+ 14 +
+
+ +
+
+
};
+
+
+
+ 15 +
+
+ +
+
+
use conjure_oxide::SolverFamily;
+
+
+
+ 16 +
+
+ +
+
+

+            
+
+
+ 17 +
@@ -241,9 +305,9 @@
- 14 + 18
- 15 + 19
- 16 + 20
- 17 + 21
- 18 + 22
- 19 + 23
- 20 + 24
- 21 + 25
- 22 + 26
- 23 + 27 +
+
+ +
+
+
#[allow(clippy::unwrap_used)]
+
+
+
+ 28
- 24 + 29 +
+
+ 9 +
+
+
    let context: Arc<RwLock<Context<'static>>> = Default::default();
+
+
+
+ 30
- 25 + 31
- 26 + 32
- 27 + 33
- 28 + 34
- 29 + 35
- 30 + 36
- 31 + 37
- 32 + 38
- 33 + 39
- 34 + 40
- 35 + 41
-
    let model = parse_essence_file(path, essence_base)?;
+
    let model = parse_essence_file(path, essence_base, context.clone())?;
- 36 + 42
- 37 + 43
- 38 + 44
- 39 + 45
- 40 + 46 +
+
+ 9 +
+
+
    context.as_ref().write().unwrap().file_name = Some(format!("{path}/{essence_base}.essence"));
+
+
+
+ 47 +
+
+ 9 +
+
+

+            
+
+
+ 48
- 41 + 49
- 42 + 50
- 43 + 51
- 44 + 52
- 45 + 53
- 46 + 54
- 47 + 55
- 48 + 56
- 49 + 57
- 50 + 58
- 51 + 59
- 52 + 60
- 53 + 61
- 54 + 62
- 55 + 63
- 56 + 64
- 57 + 65
- 58 + 66
- 59 + 67
- 60 + 68
- 61 + 69
- 62 + 70
- 63 + 71
- 64 + 72
- 65 + 73
- 66 + 74
- 67 + 75
- 68 + 76
- 69 + 77
- 70 + 78
- 71 + 79
- 72 + 80
- 73 + 81
- 74 + 82
- 75 + 83
- 76 + 84
- 77 + 85 +
+
+ 9 +
+
+
    save_stats_json(context, path, essence_base)?;
+
+
+
+ 86 +
+
+ +
+
+

+            
+
+
+ 87
- 78 + 88
- 79 + 89
- 80 + 90
- 81 + 91
- 82 + 92
- 83 + 93
- 84 + 94
- 85 + 95

Lines

- 95.15 %

+ 95.17 %

@@ -46,16 +46,16 @@ - 66.67% + 68.97% - 66.67% + 68.97% - 36 / 54 + 40 / 58 50% diff --git a/coverage/main/conjure_oxide/tests/model_tests.rs.html b/coverage/main/conjure_oxide/tests/model_tests.rs.html index 6c58b7d0a0..13ab97f6f1 100644 --- a/coverage/main/conjure_oxide/tests/model_tests.rs.html +++ b/coverage/main/conjure_oxide/tests/model_tests.rs.html @@ -396,7 +396,7 @@
-
        Context::default(),
+
        Default::default(),
-
        .apply(&expr, &Model::default())
+
        .apply(&expr, &Model::new_empty(Default::default()))
-
        .apply(&expr, &Model::default())
+
        .apply(&expr, &Model::new_empty(Default::default()))
-
        .apply(&expr, &Model::default())
+
        .apply(&expr, &Model::new_empty(Default::default()))
-
        .apply(&expr, &Model::default())
+
        .apply(&expr, &Model::new_empty(Default::default()))
-
        .apply(&expr1, &Model::default())
+
        .apply(&expr1, &Model::new_empty(Default::default()))
-
        .apply(&expr1, &Model::default())
+
        .apply(&expr1, &Model::new_empty(Default::default()))
-
        .apply(&expr1, &Model::default())
+
        .apply(&expr1, &Model::new_empty(Default::default()))
-
        .apply(&expr2, &Model::default())
+
        .apply(&expr2, &Model::new_empty(Default::default()))
-
        Context::default(),
+
        Default::default(),
-
        .apply(&expr, &Model::default())
+
        .apply(&expr, &Model::new_empty(Default::default()))
-
        .apply(&expr, &Model::default())
+
        .apply(&expr, &Model::new_empty(Default::default()))
-
        .apply(&expr, &Model::default())
+
        .apply(&expr, &Model::new_empty(Default::default()))
-
    let result = unwrap_nested_or.apply(&expr, &Model::default());
+
    let result = unwrap_nested_or.apply(&expr, &Model::new_empty(Default::default()));
-
    let result = unwrap_nested_and.apply(&expr, &Model::default());
+
    let result = unwrap_nested_and.apply(&expr, &Model::new_empty(Default::default()));
-
        .apply(&expr_and, &Model::default())
+
        .apply(&expr_and, &Model::new_empty(Default::default()))
-
        .apply(&expr_or, &Model::default())
+
        .apply(&expr_or, &Model::new_empty(Default::default()))
-
        .apply(&expr, &Model::default())
+
        .apply(&expr, &Model::new_empty(Default::default()))
-
        .apply(&expr, &Model::default())
+
        .apply(&expr, &Model::new_empty(Default::default()))
-
    let result = remove_constants_from_or.apply(&expr, &Model::default());
+
    let result = remove_constants_from_or.apply(&expr, &Model::new_empty(Default::default()));
-
    let result = remove_constants_from_and.apply(&expr, &Model::default());
+
    let result = remove_constants_from_and.apply(&expr, &Model::new_empty(Default::default()));
-
        .apply(&expr, &Model::default())
+
        .apply(&expr, &Model::new_empty(Default::default()))
-
        .apply(&expr, &Model::default())
+
        .apply(&expr, &Model::new_empty(Default::default()))
-
    let result = distribute_not_over_and.apply(&expr, &Model::default());
+
    let result = distribute_not_over_and.apply(&expr, &Model::new_empty(Default::default()));
-
    let result = distribute_not_over_or.apply(&expr, &Model::default());
+
    let result = distribute_not_over_or.apply(&expr, &Model::new_empty(Default::default()));
-
        .apply(&expr, &Model::default())
+
        .apply(&expr, &Model::new_empty(Default::default()))
-
//     let red = ensure_div.apply(&expr, &Model::default()).unwrap();
+
//     let red = ensure_div.apply(&expr, &Model::new_empty(Default::default())).unwrap();
-
        &Model::new(HashMap::new(), nested_expr, Context::default()),
+
        &Model::new(HashMap::new(), nested_expr, Default::default()),
-
    let mut model = Model::new(HashMap::new(), rewritten_expr, Context::default());
+
    let mut model = Model::new(HashMap::new(), rewritten_expr, Default::default());
-
        match rule.apply(expression, &Model::default()) {
+
        match rule.apply(expression, &Model::new_empty(Default::default())) {
- 552 + role="cell" aria-label="690"> + 690
diff --git a/coverage/main/crates/conjure_core/src/ast/domains.rs.html b/coverage/main/crates/conjure_core/src/ast/domains.rs.html index 25e7c051fd..b32f42e8a4 100644 --- a/coverage/main/crates/conjure_core/src/ast/domains.rs.html +++ b/coverage/main/crates/conjure_core/src/ast/domains.rs.html @@ -71,8 +71,8 @@
- 372 + role="cell" aria-label="465"> + 465
@@ -167,8 +167,8 @@
- 328 + role="cell" aria-label="410"> + 410
diff --git a/coverage/main/crates/conjure_core/src/ast/symbol_table.rs.html b/coverage/main/crates/conjure_core/src/ast/symbol_table.rs.html index c39bbb727f..ca07bff886 100644 --- a/coverage/main/crates/conjure_core/src/ast/symbol_table.rs.html +++ b/coverage/main/crates/conjure_core/src/ast/symbol_table.rs.html @@ -151,8 +151,8 @@
- 1384 + role="cell" aria-label="1730"> + 1730
diff --git a/coverage/main/crates/conjure_core/src/ast/variables.rs.html b/coverage/main/crates/conjure_core/src/ast/variables.rs.html index 15cf6a870a..6e9d637dc6 100644 --- a/coverage/main/crates/conjure_core/src/ast/variables.rs.html +++ b/coverage/main/crates/conjure_core/src/ast/variables.rs.html @@ -135,8 +135,8 @@
- 328 + role="cell" aria-label="410"> + 410
diff --git a/coverage/main/crates/conjure_core/src/context.rs.html b/coverage/main/crates/conjure_core/src/context.rs.html index 4d799ea6ce..e3d8b4b2fe 100644 --- a/coverage/main/crates/conjure_core/src/context.rs.html +++ b/coverage/main/crates/conjure_core/src/context.rs.html @@ -15,7 +15,7 @@

Lines

- 40.98 %

+ 0 %

@@ -23,7 +23,7 @@

Functions

- 11.11 %

+ 0 %

@@ -92,7 +92,7 @@
-
use crate::rule_engine::{Rule, RuleSet};
+
use derivative::Derivative;
-
use crate::solver::SolverFamily;
+
use serde::Serialize;
-

+                
use serde_with::skip_serializing_none;
-
#[derive(Clone)]
+

             
-
#[non_exhaustive]
+
use crate::rule_engine::{Rule, RuleSet};
-
pub struct Context<'a> {
+
use crate::solver::SolverFamily;
-
    pub target_solver_family: Arc<RwLock<Option<SolverFamily>>>,
+
use crate::stats::Stats;
-
    pub extra_rule_set_names: Arc<RwLock<Vec<&'a str>>>,
+

             
-
    pub rules: Arc<RwLock<Vec<&'a Rule<'a>>>>,
+
#[skip_serializing_none]
13
+ class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0">
-
-
    pub rule_sets: Arc<RwLock<Vec<&'a RuleSet<'a>>>>,
+
#[derive(Clone, Serialize, Default, Derivative)]
-
}
+
#[serde(rename_all = "camelCase")]
-

+                
#[derivative(Eq, PartialEq)]
-
impl<'a> Context<'a> {
+
#[non_exhaustive]
17
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage">
-
-
    pub fn new(
+
pub struct Context<'a> {
18
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage">
-
-
        target_solver_family: SolverFamily,
+
    pub target_solver_family: Option<SolverFamily>,
19
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage">
-
-
        extra_rule_set_names: Vec<&'a str>,
+

             
20
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage">
-
-
        rules: Vec<&'a Rule<'a>>,
+
    pub file_name: Option<String>,
21
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage">
-
-
        rule_sets: Vec<&'a RuleSet<'a>>,
+

             
22
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage">
-
-
    ) -> Self {
+
    pub extra_rule_set_names: Vec<&'a str>,
23
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage">
-
-
        Context {
+

             
24
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage">
-
-
            target_solver_family: Arc::new(RwLock::new(Some(target_solver_family))),
+
    #[serde(skip)]
25
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage">
-
-
            extra_rule_set_names: Arc::new(RwLock::new(extra_rule_set_names)),
+
    pub rules: Vec<&'a Rule<'a>>,
26
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage">
-
-
            rules: Arc::new(RwLock::new(rules)),
+

             
27
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage">
-
-
            rule_sets: Arc::new(RwLock::new(rule_sets)),
+
    #[serde(skip)]
28
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage">
-
-
        }
+
    pub rule_sets: Vec<&'a RuleSet<'a>>,
29
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage">
-
-
    }
+

             
-
}
+
    #[derivative(PartialEq = "ignore")]
-

+                
    pub stats: Stats,
-
impl<'a> Debug for Context<'a> {
+
}
33
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage">
-
-
    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
+

             
34
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage">
-
-
        let target_solver_family: Option<SolverFamily> = *self.target_solver_family.read().unwrap();
+
impl<'a> Context<'a> {
-
        let extra_rule_set_names: Vec<&str> = self.extra_rule_set_names.read().unwrap().clone();
+
    pub fn new(
-
        let rules: Vec<&str> = self.rules.read().unwrap().iter().map(|r| r.name).collect();
+
        target_solver_family: SolverFamily,
-
        let rule_sets: Vec<&str> = self
+
        extra_rule_set_names: Vec<&'a str>,
-
            .rule_sets
+
        rules: Vec<&'a Rule<'a>>,
-
            .read()
+
        rule_sets: Vec<&'a RuleSet<'a>>,
-
            .unwrap()
+
    ) -> Self {
-
            .iter()
+
        Context {
-
            .map(|r| r.name)
+
            target_solver_family: Some(target_solver_family),
-
            .collect();
+
            extra_rule_set_names,
-

+                
            rules,
-
        write!(
+
            rule_sets,
-
            f,
+
            stats: Default::default(),
-
            "Context {{\n\
+
            ..Default::default()
-
            \ttarget_solver_family: {:?}\n\
+
        }
-
            \textra_rule_set_names: {:?}\n\
+
    }
50
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage">
-
-
            \trules: {:?}\n\
+
}
51
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage">
-
-
            \trule_sets: {:?}\n\
+

             
52
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage">
-
-
        }}",
+
impl Context<'static> {
-
            target_solver_family, extra_rule_set_names, rules, rule_sets
+
    pub fn new_ptr(
-
        )
+
        target_solver_family: SolverFamily,
-
    }
+
        extra_rule_set_names: Vec<&'static str>,
56
+ class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0">
-
-
}
+
        rules: Vec<&'static Rule<'static>>,
57
+ class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0">
-
-

+                
        rule_sets: Vec<&'static RuleSet<'static>>,
58
+ class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0">
-
-
impl<'a> Default for Context<'a> {
+
    ) -> Arc<RwLock<Context<'static>>> {
59
- 7170 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
    fn default() -> Self {
+
        Arc::new(RwLock::new(Context::new(
60
- 7170 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
        Context {
+
            target_solver_family,
61
- 7170 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
            target_solver_family: Arc::new(RwLock::new(None)),
+
            extra_rule_set_names,
62
- 7170 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
            extra_rule_set_names: Arc::new(RwLock::new(Vec::new())),
+
            rules,
63
- 7170 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
            rules: Arc::new(RwLock::new(Vec::new())),
+
            rule_sets,
64
- 7170 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
            rule_sets: Arc::new(RwLock::new(Vec::new())),
+
        )))
65
- 7170 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
        }
+
    }
66
- 7170 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
    }
+
}
-
}
+

             
-

+                
impl<'a> Debug for Context<'a> {
69
+ class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0">
-
-
impl PartialEq for Context<'_> {
+
    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
70
+ class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0">
-
-
    #[allow(clippy::unwrap_used)] // A poisoned RWLock is probably panic worthy
+
        let target_solver_family: Option<SolverFamily> = self.target_solver_family;
71
- 270 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
    fn eq(&self, other: &Self) -> bool {
+
        let extra_rule_set_names: Vec<&str> = self.extra_rule_set_names.clone();
72
- 270 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
        self.target_solver_family
+
        let rules: Vec<&str> = self.rules.iter().map(|r| r.name).collect();
73
- 270 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
            .read()
+
        let rule_sets: Vec<&str> = self.rule_sets.iter().map(|r| r.name).collect();
74
- 270 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
            .unwrap()
+

             
75
- 270 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
            .eq(&*other.target_solver_family.read().unwrap())
+
        write!(
76
- 270 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
            && self
+
            f,
77
- 270 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
                .extra_rule_set_names
+
            "Context {{\n\
78
- 270 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
                .read()
+
            \ttarget_solver_family: {:?}\n\
79
- 270 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
                .unwrap()
+
            \textra_rule_set_names: {:?}\n\
80
- 270 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
                .eq(&*other.extra_rule_set_names.read().unwrap())
+
            \trules: {:?}\n\
81
- 270 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
            && self.rules.read().unwrap().eq(&*other.rules.read().unwrap())
+
            \trule_sets: {:?}\n\
82
- 270 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
            && self
+
        }}",
83
- 270 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
                .rule_sets
+
            target_solver_family, extra_rule_set_names, rules, rule_sets
84
- 270 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
                .read()
+
        )
85
- 270 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
                .unwrap()
+
    }
86
-
- 270 -
-
-
                .eq(&*other.rule_sets.read().unwrap())
-
-
-
- 87 -
-
- 270 -
-
-
    }
-
-
-
- 88 -
@@ -1438,38 +1406,6 @@ role="cell">
}
-
-
- 89 -
-
- -
-
-

-            
-
-
- 90 -
-
- -
-
-
impl Eq for Context<'_> {}
-
diff --git a/coverage/main/crates/conjure_core/src/index.html b/coverage/main/crates/conjure_core/src/index.html index 1c5f1a81cc..786b1f087f 100644 --- a/coverage/main/crates/conjure_core/src/index.html +++ b/coverage/main/crates/conjure_core/src/index.html @@ -15,7 +15,7 @@

Lines

- 57.46 %

+ 43.7 %

@@ -23,7 +23,7 @@

Functions

- 11.95 %

+ 11.11 %

@@ -46,20 +46,20 @@ - 40.98% + 0% - 40.98% + 0% - 25 / 61 + 0 / 46 - 11.11% - 2 / 18 + 0% + 0 / 18 @@ -130,8 +130,8 @@ 48 / 62 - 14.77% - 13 / 88 + 15.38% + 14 / 91 diff --git a/coverage/main/crates/conjure_core/src/metadata.rs.html b/coverage/main/crates/conjure_core/src/metadata.rs.html index 662570326f..ea1f8b56c3 100644 --- a/coverage/main/crates/conjure_core/src/metadata.rs.html +++ b/coverage/main/crates/conjure_core/src/metadata.rs.html @@ -103,8 +103,8 @@
- 2416 + role="cell" aria-label="3020"> + 3020
diff --git a/coverage/main/crates/conjure_core/src/model.rs.html b/coverage/main/crates/conjure_core/src/model.rs.html index 1b1f13163a..30c33462ab 100644 --- a/coverage/main/crates/conjure_core/src/model.rs.html +++ b/coverage/main/crates/conjure_core/src/model.rs.html @@ -23,7 +23,7 @@

Functions

- 14.77 %

+ 15.38 %

@@ -76,7 +76,7 @@
-

+                
use std::sync::{Arc, RwLock};
-
use serde::{Deserialize, Serialize};
+

             
-
use serde_with::serde_as;
+
use derivative::Derivative;
-

+                
use serde::{Deserialize, Serialize};
-
use crate::ast::{DecisionVariable, Domain, Expression, Name, SymbolTable};
+
use serde_with::serde_as;
-
use crate::context::Context;
+

             
-
use crate::metadata::Metadata;
+
use crate::ast::{DecisionVariable, Domain, Expression, Name, SymbolTable};
-

+                
use crate::context::Context;
-
#[serde_as]
+
use crate::metadata::Metadata;
12
- 360 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
+

             
-
pub struct Model {
+
#[serde_as]
14
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="630"> + 630
-
-
    #[serde_as(as = "Vec<(_, _)>")]
+
#[derive(Derivative, Clone, Debug, Serialize, Deserialize)]
-
    pub variables: SymbolTable,
+
#[derivative(PartialEq, Eq)]
-
    pub constraints: Expression,
+
pub struct Model {
-
    #[serde(skip)]
+
    #[serde_as(as = "Vec<(_, _)>")]
-
    pub context: Context<'static>,
+
    pub variables: SymbolTable,
-
    next_var: RefCell<i32>,
+
    pub constraints: Expression,
-
}
+
    #[serde(skip)]
-

+                
    #[derivative(PartialEq = "ignore")]
-
impl Model {
+
    pub context: Arc<RwLock<Context<'static>>>,
23
- 6900 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
    pub fn new(
+
    next_var: RefCell<i32>,
24
- 6900 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
        variables: SymbolTable,
+
}
25
- 6900 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
        constraints: Expression,
+

             
26
- 6900 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
        context: Context<'static>,
+
impl Model {
-
    ) -> Model {
+
    pub fn new(
-
        Model {
+
        variables: SymbolTable,
-
            variables,
+
        constraints: Expression,
-
            constraints,
+
        context: Arc<RwLock<Context<'static>>>,
-
            context,
+
    ) -> Model {
-
            next_var: RefCell::new(0),
+
        Model {
-
        }
+
            variables,
-
    }
+
            constraints,
35
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="6900"> + 6900
-
-
    // Function to update a DecisionVariable based on its Name
+
            context,
- 15 + role="cell" aria-label="6900"> + 6900
-
    pub fn update_domain(&mut self, name: &Name, new_domain: Domain) {
+
            next_var: RefCell::new(0),
- 15 + role="cell" aria-label="6900"> + 6900
-
        if let Some(decision_var) = self.variables.get_mut(name) {
+
        }
- 15 + role="cell" aria-label="6900"> + 6900
-
            decision_var.domain = new_domain;
+
    }
39
- 15 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
        }
+

             
- 15 + role="cell" aria-label="6840"> + 6840
-
    }
+
    pub fn new_empty(context: Arc<RwLock<Context<'static>>>) -> Model {
41
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="6840"> + 6840
-
-

+                
        Model::new(Default::default(), Expression::Nothing, context)
42
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="6840"> + 6840
-
-
    pub fn get_domain(&self, name: &Name) -> Option<&Domain> {
+
    }
43
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage">
-
-
        self.variables.get(name).map(|v| &v.domain)
+
    // Function to update a DecisionVariable based on its Name
44
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="15"> + 15
-
-
    }
+
    pub fn update_domain(&mut self, name: &Name, new_domain: Domain) {
45
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="15"> + 15
-
-

+                
        if let Some(decision_var) = self.variables.get_mut(name) {
46
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="15"> + 15
-
-
    // Function to add a new DecisionVariable to the Model
+
            decision_var.domain = new_domain;
- 375 + role="cell" aria-label="15"> + 15
-
    pub fn add_variable(&mut self, name: Name, decision_var: DecisionVariable) {
+
        }
- 375 + role="cell" aria-label="15"> + 15
-
        self.variables.insert(name, decision_var);
+
    }
49
- 375 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
    }
+

             
50
+ class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0">
-
-

+                
    pub fn get_domain(&self, name: &Name) -> Option<&Domain> {
51
- 360 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
    pub fn get_constraints_vec(&self) -> Vec<Expression> {
+
        self.variables.get(name).map(|v| &v.domain)
52
- 360 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
        match &self.constraints {
+
    }
53
- 120 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
            Expression::And(_, constraints) => constraints.clone(),
+

             
54
- 180 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
            Expression::Nothing => vec![],
+
    // Function to add a new DecisionVariable to the Model
- 60 + role="cell" aria-label="375"> + 375
-
            _ => vec![self.constraints.clone()],
+
    pub fn add_variable(&mut self, name: Name, decision_var: DecisionVariable) {
56
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="375"> + 375
-
-
        }
+
        self.variables.insert(name, decision_var);
- 360 + role="cell" aria-label="375"> + 375
@@ -967,12 +967,12 @@
- 180 + role="cell" aria-label="360"> + 360
-
    pub fn set_constraints(&mut self, constraints: Vec<Expression>) {
+
    pub fn get_constraints_vec(&self) -> Vec<Expression> {
- 180 + role="cell" aria-label="360"> + 360
-
        if constraints.is_empty() {
+
        match &self.constraints {
61
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="120"> + 120
-
-
            self.constraints = Expression::Nothing;
+
            Expression::And(_, constraints) => constraints.clone(),
-
        } else if constraints.len() == 1 {
+
            Expression::Nothing => vec![],
- 150 + role="cell" aria-label="60"> + 60
-
            self.constraints = constraints[0].clone();
+
            _ => vec![self.constraints.clone()],
64
- 150 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
        } else {
+
        }
- 30 + role="cell" aria-label="360"> + 360
-
            self.constraints = Expression::And(Metadata::new(), constraints);
+
    }
66
- 30 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
        }
+

             
-
    }
+
    pub fn set_constraints(&mut self, constraints: Vec<Expression>) {
68
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="180"> + 180
-
-

+                
        if constraints.is_empty() {
-
    pub fn set_context(&mut self, context: Context<'static>) {
+
            self.constraints = Expression::Nothing;
70
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="180"> + 180
-
-
        self.context = context;
+
        } else if constraints.len() == 1 {
71
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="150"> + 150
-
-
    }
+
            self.constraints = constraints[0].clone();
72
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="150"> + 150
-
-

+                
        } else {
73
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="30"> + 30
-
-
    pub fn add_constraint(&mut self, expression: Expression) {
+
            self.constraints = Expression::And(Metadata::new(), constraints);
74
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="30"> + 30
-
-
        // ToDo (gs248) - there is no checking whatsoever
+
        }
75
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="180"> + 180
-
-
        // We need to properly validate the expression but this is just for testing
+
    }
76
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage">
-
-
        let mut constraints = self.get_constraints_vec();
+

             
-
        constraints.push(expression);
+
    pub fn set_context(&mut self, context: Arc<RwLock<Context<'static>>>) {
-
        self.set_constraints(constraints);
+
        self.context = context;
81
- 180 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
    pub fn add_constraints(&mut self, expressions: Vec<Expression>) {
+
    pub fn add_constraint(&mut self, expression: Expression) {
82
- 180 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
        let mut constraints = self.get_constraints_vec();
+
        // ToDo (gs248) - there is no checking whatsoever
83
- 180 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
        constraints.extend(expressions);
+
        // We need to properly validate the expression but this is just for testing
84
- 180 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
        self.set_constraints(constraints);
+
        let mut constraints = self.get_constraints_vec();
85
- 180 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
    }
+
        constraints.push(expression);
86
+ class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0">
-
-

+                
        self.set_constraints(constraints);
87
+ class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0">
-
-
    /// Returns an arbitrary variable name that is not in the model.
+
    }
88
- 75 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
    pub fn gensym(&self) -> Name {
+

             
- 75 + role="cell" aria-label="180"> + 180
-
        let num = *self.next_var.borrow();
+
    pub fn add_constraints(&mut self, expressions: Vec<Expression>) {
- 75 + role="cell" aria-label="180"> + 180
-
        *(self.next_var.borrow_mut()) += 1;
+
        let mut constraints = self.get_constraints_vec();
- 75 + role="cell" aria-label="180"> + 180
-
        Name::MachineName(num) // incremented when inserted
+
        constraints.extend(expressions);
- 75 + role="cell" aria-label="180"> + 180
-
    }
+
        self.set_constraints(constraints);
93
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="180"> + 180
-
-
}
+
    }
-
impl Default for Model {
+
    /// Returns an arbitrary variable name that is not in the model.
- 6840 + role="cell" aria-label="75"> + 75
-
    fn default() -> Self {
+
    pub fn gensym(&self) -> Name {
- 6840 + role="cell" aria-label="75"> + 75
-
        Self::new(SymbolTable::new(), Expression::Nothing, Context::default())
+
        let num = *self.next_var.borrow();
- 6840 + role="cell" aria-label="75"> + 75
-
    }
+
        *(self.next_var.borrow_mut()) += 1;
99
+
+ 75 +
+
+
        Name::MachineName(num) // incremented when inserted
+
+
+
+ 100 +
+
+ 75 +
+
+
    }
+
+
+
+ 101 +
diff --git a/coverage/main/crates/conjure_core/src/parse/example_models.rs.html b/coverage/main/crates/conjure_core/src/parse/example_models.rs.html index c40889c3c4..8f5f122201 100644 --- a/coverage/main/crates/conjure_core/src/parse/example_models.rs.html +++ b/coverage/main/crates/conjure_core/src/parse/example_models.rs.html @@ -76,7 +76,7 @@
-
use std::path::PathBuf;
+
use std::default;
-

+                
use std::path::PathBuf;
-
use project_root::get_project_root;
+

             
-
use walkdir::WalkDir;
+
use project_root::get_project_root;
-

+                
use walkdir::WalkDir;
-
use crate::parse::model_from_json;
+

             
-
use crate::Model;
+
use crate::parse::model_from_json;
-

+                
use crate::Model;
-
/// Searches recursively in `../tests/integration` folder for an `.essence` file matching the given
+

             
-
/// filename, then uses conjure to process it into astjson, and returns the parsed model.
+
/// Searches recursively in `../tests/integration` folder for an `.essence` file matching the given
-
///
+
/// filename, then uses conjure to process it into astjson, and returns the parsed model.
-
/// # Arguments
+
///
-
///
+
/// # Arguments
-
/// * `filename` - A string slice that holds filename without extension
+
///
-
///
+
/// * `filename` - A string slice that holds filename without extension
-
/// # Returns
+
///
-
///
+
/// # Returns
-
/// Function returns a `Result<Value, anyhow::Error>`, where `Value` is the parsed model.
+
///
21
+
+ +
+
+
/// Function returns a `Result<Value, anyhow::Error>`, where `Value` is the parsed model.
+
+
+
+ 22 +
@@ -369,9 +385,9 @@
- 22 + 23
- 23 + 24
- 24 + 25
- 25 + 26
- 26 + 27
- 27 + 28
- 244185 + role="cell" aria-label="245640"> + 245640
@@ -465,14 +481,14 @@
- 28 + 29
- 244185 + role="cell" aria-label="245640"> + 245640
@@ -481,14 +497,14 @@
- 29 + 30
- 244185 + role="cell" aria-label="245640"> + 245640
@@ -497,14 +513,14 @@
- 30 + 31
- 206565 + role="cell" aria-label="207915"> + 207915
@@ -513,9 +529,9 @@
- 31 + 32
- 32 + 33
- 33 + 34
- 34 + 35
- 35 + 36
- 244155 + role="cell" aria-label="245610"> + 245610
@@ -593,9 +609,9 @@
- 36 + 37
- 37 + 38
- 38 + 39
- 39 + 40
- 40 + 41
- 41 + 42
- 42 + 43
- 43 + 44
- 44 + 45
- 45 + 46
- 46 + 47
- 47 + 48
- 48 + 49
- 49 + 50
- 50 + 51
- 51 + 52
- 52 + 53
- 53 + 54
- 54 + 55
- 55 + 56
- 56 + 57
- 57 + 58
- 58 + 59
- 59 + 60
- 60 + 61
- 61 + 62
- 62 + 63
-
    let generated_mdl = model_from_json(&astjson)?;
+
    let generated_mdl = model_from_json(&astjson, Default::default())?;
- 63 + 64
- 64 + 65
- 65 + 66
}
-
-
- 66 -
-
- -
-
-

-            
-
/// Searches for an `.essence` file at the given filepath,
+

             
-
/// then uses conjure to process it into astjson, and returns the parsed model.
+
/// Searches for an `.essence` file at the given filepath,
-
///
+
/// then uses conjure to process it into astjson, and returns the parsed model.
-
/// # Arguments
+
///
-
///
+
/// # Arguments
-
/// * `filepath` - A string slice that holds the full file path
+
///
-
///
+
/// * `filepath` - A string slice that holds the full file path
-
/// # Returns
+
///
-
///
+
/// # Returns
-
/// Function returns a `Result<Value, anyhow::Error>`, where `Value` is the parsed model
+
///
77
- 30 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
pub fn get_example_model_by_path(filepath: &str) -> Result<Model, anyhow::Error> {
+
/// Function returns a `Result<Value, anyhow::Error>`, where `Value` is the parsed model
-
    let essence_path = PathBuf::from(filepath);
+
pub fn get_example_model_by_path(filepath: &str) -> Result<Model, anyhow::Error> {
-

+                
    let essence_path = PathBuf::from(filepath);
-
    // return error if file not found
+

             
-
    if essence_path.as_os_str().is_empty() {
+
    // return error if file not found
- 15 + role="cell" aria-label="30"> + 30
-
        return Err(anyhow::Error::new(std::io::Error::new(
+
    if essence_path.as_os_str().is_empty() {
-
            std::io::ErrorKind::NotFound,
+
        return Err(anyhow::Error::new(std::io::Error::new(
-
            "ERROR: File not found in any subdirectory",
+
            std::io::ErrorKind::NotFound,
-
        )));
+
            "ERROR: File not found in any subdirectory",
-
    }
+
        )));
-

+                
    }
-
    // println!("PATH TO FILE: {}", essence_path.display());
+

             
-

+                
    // println!("PATH TO FILE: {}", essence_path.display());
-
    // Command execution using 'conjure' CLI tool with provided path
+

             
-
    let mut cmd = std::process::Command::new("conjure");
+
    // Command execution using 'conjure' CLI tool with provided path
-
    let output = cmd
+
    let mut cmd = std::process::Command::new("conjure");
-
        .arg("pretty")
+
    let output = cmd
-
        .arg("--output-format=astjson")
+
        .arg("pretty")
-
        .arg(&essence_path)
+
        .arg("--output-format=astjson")
-
        .output()?;
+
        .arg(&essence_path)
97
+
+ 15 +
+
+
        .output()?;
+
+
+
+ 98 +
@@ -1585,9 +1601,9 @@
- 98 + 99
- 99 + 100
- 100 + 101
- 101 + 102
- 102 + 103
- 103 + 104
- 104 + 105
-
    let generated_model = model_from_json(&astjson)?;
+
    let generated_model = model_from_json(&astjson, Default::default())?;
- 105 + 106
- 106 + 107
- 107 + 108
-

+                
use std::sync::{Arc, RwLock};
-
use serde_json::Value;
+

             
-
use serde_json::Value as JsonValue;
+
use serde_json::Value;
-

+                
use serde_json::Value as JsonValue;
-
use crate::ast::{Constant, DecisionVariable, Domain, Expression, Name, Range};
+

             
-
use crate::error::{Error, Result};
+
use crate::ast::{Constant, DecisionVariable, Domain, Expression, Name, Range};
-
use crate::metadata::Metadata;
+
use crate::context::Context;
-
use crate::Model;
+
use crate::error::{Error, Result};
-

+                
use crate::metadata::Metadata;
11
- 180 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
pub fn model_from_json(str: &str) -> Result<Model> {
+
use crate::Model;
12
- 180 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
    let mut m = Model::default();
+

             
-
    let v: JsonValue = serde_json::from_str(str)?;
+
pub fn model_from_json(str: &str, context: Arc<RwLock<Context<'static>>>) -> Result<Model> {
-
    let statements = v["mStatements"]
+
    let mut m = Model::new_empty(context);
-
        .as_array()
+
    let v: JsonValue = serde_json::from_str(str)?;
-
        .ok_or(Error::Parse("mStatements is not an array".to_owned()))?;
+
    let statements = v["mStatements"]
17
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="180"> + 180
-
-

+                
        .as_array()
- 735 + role="cell" aria-label="180"> + 180
-
    for statement in statements {
+
        .ok_or(Error::Parse("mStatements is not an array".to_owned()))?;
19
- 555 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
        let entry = statement
+

             
- 555 + role="cell" aria-label="735"> + 735
-
            .as_object()
+
    for statement in statements {
-
            .ok_or(Error::Parse("mStatements contains a non-object".to_owned()))?
+
        let entry = statement
-
            .iter()
+
            .as_object()
-
            .next()
+
            .ok_or(Error::Parse("mStatements contains a non-object".to_owned()))?
-
            .ok_or(Error::Parse(
+
            .iter()
-
                "mStatements contains an empty object".to_owned(),
+
            .next()
-
            ))?;
+
            .ok_or(Error::Parse(
-
        match entry.0.as_str() {
+
                "mStatements contains an empty object".to_owned(),
-
            "Declaration" => {
+
            ))?;
29
+
+ 555 +
+
+
        match entry.0.as_str() {
+
+
+
+ 30 +
+
+ 555 +
+
+
            "Declaration" => {
+
+
+
+ 31 +
@@ -497,9 +529,9 @@
- 30 + 32
- 31 + 33
- 32 + 34
- 33 + 35
- 34 + 36
- 35 + 37
- 36 + 38
- 37 + 39
- 38 + 40
- 39 + 41
- 40 + 42
- 41 + 43
- 42 + 44
- 43 + 45
- 44 + 46
- 45 + 47
- 46 + 48
- 47 + 49
- 48 + 50
- 49 + 51
- 50 + 52
- 51 + 53
- 52 + 54
- 53 + 55
- 54 + 56
- 55 + 57
- 56 + 58
- 57 + 59
- 58 + 60
- 59 + 61
- 60 + 62
- 61 + 63
- 62 + 64
- 63 + 65
- 64 + 66
- 65 + 67
- 66 + 68
- 67 + 69
- 68 + 70
- 69 + 71
- 70 + 72
- 71 + 73
- 72 + 74
- 73 + 75
- 74 + 76
- 75 + 77
- 76 + 78
- 77 + 79
- 78 + 80
- 79 + 81
- 80 + 82
- 81 + 83
- 82 + 84
- 83 + 85
- 84 + 86
- 85 + 87
- 86 + 88
- 87 + 89
- 88 + 90
- 89 + 91
- 90 + 92
- 91 + 93
- 92 + 94
- 93 + 95
- 94 + 96
- 95 + 97
- 96 + 98
- 97 + 99
- 98 + 100
- 99 + 101
- 100 + 102
- 101 + 103
- 102 + 104
- 103 + 105
- 104 + 106
- 105 + 107
- 106 + 108
- 107 + 109
- 108 + 110
- 109 + 111
- 110 + 112
- 111 + 113
- 112 + 114
- 113 + 115
- 114 + 116
- 115 + 117
- 116 + 118
- 117 + 119
- 118 + 120
- 119 + 121
- 120 + 122
- 121 + 123
- 122 + 124
- 123 + 125
- 124 + 126
- 125 + 127
- 126 + 128
- 127 + 129
- 128 + 130
- 129 + 131
- 130 + 132
- 131 + 133
- 132 + 134
- 133 + 135
- 134 + 136
- 135 + 137
- 136 + 138
- 137 + 139
- 138 + 140
- 139 + 141
- 140 + 142
- 141 + 143
- 142 + 144
- 143 + 145
- 144 + 146

             
-
-
- 145 -
-
- 840 -
-
-
fn parse_expression(obj: &JsonValue) -> Option<Expression> {
-
-
-
- 146 -
-
- 840 -
-
-
    let binary_operators: HashMap<&str, BinOp> = [
-
-
        (
+
fn parse_expression(obj: &JsonValue) -> Option<Expression> {
-
            "MkOpEq",
+
    let binary_operators: HashMap<&str, BinOp> = [
-
            Box::new(Expression::Eq) as Box<dyn Fn(_, _, _) -> _>,
+
        (
-
        ),
+
            "MkOpEq",
-
        (
+
            Box::new(Expression::Eq) as Box<dyn Fn(_, _, _) -> _>,
-
            "MkOpNeq",
+
        ),
-
            Box::new(Expression::Neq) as Box<dyn Fn(_, _, _) -> _>,
+
        (
-
        ),
+
            "MkOpNeq",
-
        (
+
            Box::new(Expression::Neq) as Box<dyn Fn(_, _, _) -> _>,
-
            "MkOpGeq",
+
        ),
-
            Box::new(Expression::Geq) as Box<dyn Fn(_, _, _) -> _>,
+
        (
-
        ),
+
            "MkOpGeq",
-
        (
+
            Box::new(Expression::Geq) as Box<dyn Fn(_, _, _) -> _>,
-
            "MkOpLeq",
+
        ),
-
            Box::new(Expression::Leq) as Box<dyn Fn(_, _, _) -> _>,
+
        (
-
        ),
+
            "MkOpLeq",
-
        (
+
            Box::new(Expression::Leq) as Box<dyn Fn(_, _, _) -> _>,
-
            "MkOpGt",
+
        ),
-
            Box::new(Expression::Gt) as Box<dyn Fn(_, _, _) -> _>,
+
        (
-
        ),
+
            "MkOpGt",
-
        (
+
            Box::new(Expression::Gt) as Box<dyn Fn(_, _, _) -> _>,
-
            "MkOpLt",
+
        ),
-
            Box::new(Expression::Lt) as Box<dyn Fn(_, _, _) -> _>,
+
        (
-
        ),
+
            "MkOpLt",
-
        (
+
            Box::new(Expression::Lt) as Box<dyn Fn(_, _, _) -> _>,
-
            "MkOpGt",
+
        ),
-
            Box::new(Expression::Gt) as Box<dyn Fn(_, _, _) -> _>,
+
        (
-
        ),
+
            "MkOpGt",
-
        (
+
            Box::new(Expression::Gt) as Box<dyn Fn(_, _, _) -> _>,
-
            "MkOpLt",
+
        ),
-
            Box::new(Expression::Lt) as Box<dyn Fn(_, _, _) -> _>,
+
        (
-
        ),
+
            "MkOpLt",
-
        // (
+
            Box::new(Expression::Lt) as Box<dyn Fn(_, _, _) -> _>,
-
        //     "MkOpDiv",
+
        ),
-
        //     Box::new(Expression::Div) as Box<dyn Fn(_, _, _) -> _>,
+
        // (
-
        // ),
+
        //     "MkOpDiv",
-
    ]
+
        //     Box::new(Expression::Div) as Box<dyn Fn(_, _, _) -> _>,
-
    .into_iter()
+
        // ),
-
    .collect();
+
    ]
-

+                
    .into_iter()
-
    let unary_operators: HashMap<&str, UnaryOp> = [(
+
    .collect();
-
        "MkOpNot",
+

             
-
        Box::new(Expression::Not) as Box<dyn Fn(_, _) -> _>,
+
    let unary_operators: HashMap<&str, UnaryOp> = [(
-
    )]
+
        "MkOpNot",
-
    .into_iter()
+
        Box::new(Expression::Not) as Box<dyn Fn(_, _) -> _>,
-
    .collect();
+
    )]
-

+                
    .into_iter()
-
    let vec_operators: HashMap<&str, VecOp> = [
+
    .collect();
-
        (
+

             
-
            "MkOpSum",
+
    let vec_operators: HashMap<&str, VecOp> = [
-
            Box::new(Expression::Sum) as Box<dyn Fn(_, _) -> _>,
+
        (
-
        ),
+
            "MkOpSum",
-
        (
+
            Box::new(Expression::Sum) as Box<dyn Fn(_, _) -> _>,
-
            "MkOpAnd",
+
        ),
-
            Box::new(Expression::And) as Box<dyn Fn(_, _) -> _>,
+
        (
-
        ),
+
            "MkOpAnd",
-
        ("MkOpOr", Box::new(Expression::Or) as Box<dyn Fn(_, _) -> _>),
+
            Box::new(Expression::And) as Box<dyn Fn(_, _) -> _>,
-
        (
+
        ),
-
            "MkOpMin",
+
        ("MkOpOr", Box::new(Expression::Or) as Box<dyn Fn(_, _) -> _>),
-
            Box::new(Expression::Min) as Box<dyn Fn(_, _) -> _>,
+
        (
-
        ),
+
            "MkOpMin",
-
    ]
+
            Box::new(Expression::Min) as Box<dyn Fn(_, _) -> _>,
-
    .into_iter()
+
        ),
-
    .collect();
+
    ]
-

+                
    .into_iter()
- 1455 + role="cell" aria-label="840"> + 840
-
    let mut binary_operator_names = binary_operators.iter().map(|x| x.0);
+
    .collect();
-
    let mut unary_operator_names = unary_operators.iter().map(|x| x.0);
+

             
214
+
+ 1515 +
+
+
    let mut binary_operator_names = binary_operators.iter().map(|x| x.0);
+
+
+
+ 215 +
+
+ 840 +
+
+
    let mut unary_operator_names = unary_operators.iter().map(|x| x.0);
+
+
+
+ 216 +
@@ -3457,9 +3489,9 @@
- 215 + 217
- 216 + 218
- 217 + 219
- 218 + 220
- 1455 + role="cell" aria-label="1515"> + 1515
@@ -3521,9 +3553,9 @@
- 219 + 221
- 220 + 222
- 221 + 223
- 222 + 224
- 223 + 225
- 224 + 226
- 375 + role="cell" aria-label="420"> + 420
@@ -3617,9 +3649,9 @@
- 225 + 227
- 226 + 228
- 227 + 229
- 228 + 230
- 229 + 231
- 230 + 232
- 231 + 233
- 232 + 234
- 233 + 235
- 234 + 236
- 235 + 237
- 236 + 238
- 237 + 239
- 238 + 240
- 239 + 241
- 240 + 242
- 241 + 243
- 242 + 244
- 243 + 245
- 244 + 246
- 245 + 247
- 246 + 248
- 247 + 249
- 248 + 250
- 249 + 251
- 250 + 252
- 251 + 253
- 252 + 254
- 253 + 255
- 254 + 256
- 255 + 257
- 256 + 258
- 257 + 259
- 258 + 260
- 259 + 261
- 260 + 262
- 261 + 263
- 262 + 264
- 263 + 265
- 264 + 266
- 265 + 267
- 266 + 268
- 267 + 269
- 268 + 270
- 269 + 271
- 270 + 272
- 271 + 273
- 272 + 274
- 273 + 275
- 274 + 276
- 275 + 277
- 276 + 278
- 277 + 279
- 278 + 280
- 279 + 281
- 280 + 282
- 281 + 283
- 282 + 284
- 283 + 285
- 284 + 286
- 285 + 287
- 286 + 288
- 287 + 289
- 288 + 290
- 289 + 291
- 290 + 292
- 291 + 293
- 292 + 294
- 293 + 295
- 294 + 296
- 295 + 297
- 296 + 298
- 297 + 299
- 298 + 300
- 299 + 301
- 300 + 302
- 301 + 303
- 302 + 304
- 303 + 305
- 304 + 306
- 305 + 307
- 306 + 308
- 307 + 309
- 308 + 310
- 309 + 311
- 310 + 312
- 311 + 313
- 312 + 314

Lines

- 74.28 %

+ 73.49 %

@@ -23,7 +23,7 @@

Functions

- 24.68 %

+ 24.05 %

@@ -142,20 +142,20 @@ - 62.24% + 59.18% - 62.24% + 59.18% - 61 / 98 + 58 / 98 - 23.33% - 7 / 30 + 20% + 6 / 30 diff --git a/coverage/main/crates/conjure_core/src/rule_engine/resolve_rules.rs.html b/coverage/main/crates/conjure_core/src/rule_engine/resolve_rules.rs.html index 99f711307d..4078c28b5d 100644 --- a/coverage/main/crates/conjure_core/src/rule_engine/resolve_rules.rs.html +++ b/coverage/main/crates/conjure_core/src/rule_engine/resolve_rules.rs.html @@ -2071,8 +2071,8 @@
- 19305 + role="cell" aria-label="18855"> + 18855
@@ -2087,8 +2087,8 @@
- 19305 + role="cell" aria-label="18855"> + 18855
@@ -2103,8 +2103,8 @@
- 19305 + role="cell" aria-label="18855"> + 18855
@@ -2119,8 +2119,8 @@
- 19305 + role="cell" aria-label="18855"> + 18855
@@ -2135,8 +2135,8 @@
- 19305 + role="cell" aria-label="18855"> + 18855
@@ -2151,8 +2151,8 @@
- 19305 + role="cell" aria-label="18855"> + 18855
@@ -2167,8 +2167,8 @@
- 19305 + role="cell" aria-label="18855"> + 18855
@@ -2183,8 +2183,8 @@
- 19305 + role="cell" aria-label="18855"> + 18855
@@ -2199,8 +2199,8 @@
- 19305 + role="cell" aria-label="18855"> + 18855
@@ -2215,8 +2215,8 @@
- 17160 + role="cell" aria-label="16320"> + 16320
@@ -2231,8 +2231,8 @@
- 2145 + role="cell" aria-label="2535"> + 2535
@@ -2247,8 +2247,8 @@
- 2145 + role="cell" aria-label="2535"> + 2535
@@ -2263,8 +2263,8 @@
- 2145 + role="cell" aria-label="2535"> + 2535
@@ -2279,8 +2279,8 @@
- 19305 + role="cell" aria-label="18855"> + 18855
@@ -2455,8 +2455,8 @@
- 19305 + role="cell" aria-label="18855"> + 18855
diff --git a/coverage/main/crates/conjure_core/src/rule_engine/rule.rs.html b/coverage/main/crates/conjure_core/src/rule_engine/rule.rs.html index 12e008e3e1..2dc69dd6e8 100644 --- a/coverage/main/crates/conjure_core/src/rule_engine/rule.rs.html +++ b/coverage/main/crates/conjure_core/src/rule_engine/rule.rs.html @@ -2119,8 +2119,8 @@
- 39870 + role="cell" aria-label="39420"> + 39420
@@ -2135,8 +2135,8 @@
- 39870 + role="cell" aria-label="39420"> + 39420
@@ -2151,8 +2151,8 @@
- 39870 + role="cell" aria-label="39420"> + 39420
@@ -2247,8 +2247,8 @@
- 61935 + role="cell" aria-label="61035"> + 61035
@@ -2263,8 +2263,8 @@
- 61935 + role="cell" aria-label="61035"> + 61035
@@ -2279,8 +2279,8 @@
- 61935 + role="cell" aria-label="61035"> + 61035
diff --git a/coverage/main/crates/conjure_core/src/rule_engine/rule_set.rs.html b/coverage/main/crates/conjure_core/src/rule_engine/rule_set.rs.html index 922da95338..e1ef1a9460 100644 --- a/coverage/main/crates/conjure_core/src/rule_engine/rule_set.rs.html +++ b/coverage/main/crates/conjure_core/src/rule_engine/rule_set.rs.html @@ -15,7 +15,7 @@

Lines

- 62.24 %

+ 59.18 %

@@ -23,7 +23,7 @@

Functions

- 23.33 %

+ 20 %

@@ -2262,13 +2262,13 @@ 140
- 15 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
    fn eq(&self, other: &Self) -> bool {
+
    fn eq(&self, other: &Self) -> bool {
141
- 15 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
        self.name == other.name
+
        self.name == other.name
142
- 15 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
    }
+
    }

Lines

- 46.84 %

+ 47.91 %

@@ -23,7 +23,7 @@

Functions

- 11.73 %

+ 12.73 %

@@ -70,20 +70,20 @@ - 83.68% + 85.12% - 83.68% + 85.12% - 200 / 239 + 206 / 242 - 24.36% - 19 / 78 + 25.93% + 21 / 81 diff --git a/coverage/main/crates/conjure_core/src/solver/adaptors/minion.rs.html b/coverage/main/crates/conjure_core/src/solver/adaptors/minion.rs.html index 9e44ff0da2..ea4eefcca6 100644 --- a/coverage/main/crates/conjure_core/src/solver/adaptors/minion.rs.html +++ b/coverage/main/crates/conjure_core/src/solver/adaptors/minion.rs.html @@ -15,7 +15,7 @@

Lines

- 83.68 %

+ 85.12 %

@@ -23,7 +23,7 @@

Functions

- 24.36 %

+ 25.93 %

@@ -2108,7 +2108,7 @@
-
            stats: None,
+
            stats: Default::default(),
151
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="180"> + 180
-
-
    fn get_family(&self) -> SolverFamily {
+
    fn get_family(&self) -> SolverFamily {
152
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="180"> + 180
-
-
        SolverFamily::Minion
+
        SolverFamily::Minion
153
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="180"> + 180
-
-
    }
+
    }
-
}
+

             
155
+
+ 180 +
+
+
    fn get_name(&self) -> Option<String> {
+
+
+
+ 156 +
+
+ 180 +
+
+
        Some("adaptors::Minion".to_owned())
+
+
+
+ 157 +
+
+ 180 +
+
+
    }
+
+
+
+ 158 +
+
+ +
+
+
}
+
+
+
+ 159 +
@@ -2513,9 +2577,9 @@
- 156 + 160
- 157 + 161
- 158 + 162
- 159 + 163
- 160 + 164
- 161 + 165
- 162 + 166
- 163 + 167
- 164 + 168
- 165 + 169
- 166 + 170
- 167 + 171
- 168 + 172
- 169 + 173
- 170 + 174
- 171 + 175
- 172 + 176
- 173 + 177
- 174 + 178
- 175 + 179
- 176 + 180
- 177 + 181
- 178 + 182
- 179 + 183
- 180 + 184
- 181 + 185
- 182 + 186
- 183 + 187
- 184 + 188
- 185 + 189
- 186 + 190
- 187 + 191
- 188 + 192
- 189 + 193
- 190 + 194
- 191 + 195
- 192 + 196
- 193 + 197
- 194 + 198
- 195 + 199
- 196 + 200
- 197 + 201
- 198 + 202
- 199 + 203
- 200 + 204
- 201 + 205
- 202 + 206
- 203 + 207
- 204 + 208
- 205 + 209
- 206 + 210
- 207 + 211
- 208 + 212
- 209 + 213
- 210 + 214
- 211 + 215
- 212 + 216
- 213 + 217
- 214 + 218
- 215 + 219
- 216 + 220
- 217 + 221
- 218 + 222
- 219 + 223
- 220 + 224
- 221 + 225
- 222 + 226
- 223 + 227
- 224 + 228
- 225 + 229
- 226 + 230
- 227 + 231
- 228 + 232
- 229 + 233
- 230 + 234
- 231 + 235
- 232 + 236
- 233 + 237
- 234 + 238
- 235 + 239
- 236 + 240
- 237 + 241
- 238 + 242
- 239 + 243
- 240 + 244
- 241 + 245
- 242 + 246
- 243 + 247
- 244 + 248
- 245 + 249
- 246 + 250
- 247 + 251
- 248 + 252
- 249 + 253
- 250 + 254
- 251 + 255
- 252 + 256
- 253 + 257
- 254 + 258
- 255 + 259
- 256 + 260
- 257 + 261
- 258 + 262
- 259 + 263
- 260 + 264
- 261 + 265
- 262 + 266
- 263 + 267
- 264 + 268
- 265 + 269
- 266 + 270
- 267 + 271
- 268 + 272
- 269 + 273
- 270 + 274
- 271 + 275
- 272 + 276
- 273 + 277
- 274 + 278
- 275 + 279
- 276 + 280
- 277 + 281
- 278 + 282
- 279 + 283
- 280 + 284
- 281 + 285
- 282 + 286
- 283 + 287
- 284 + 288
- 285 + 289
- 286 + 290
- 287 + 291
- 288 + 292
- 289 + 293
- 290 + 294
- 291 + 295
- 292 + 296
- 293 + 297
- 294 + 298
- 295 + 299
- 296 + 300
- 297 + 301
- 298 + 302
- 299 + 303
- 300 + 304
- 301 + 305
- 302 + 306
- 303 + 307
- 304 + 308
- 305 + 309
- 306 + 310
- 307 + 311
- 308 + 312
- 309 + 313
- 310 + 314
- 311 + 315
- 312 + 316
- 313 + 317
- 314 + 318
- 315 + 319
- 316 + 320
- 317 + 321
- 318 + 322
- 319 + 323
- 320 + 324
- 321 + 325
- 322 + 326
- 323 + 327
- 324 + 328
- 325 + 329
- 326 + 330
- 327 + 331
- 328 + 332
- 329 + 333
- 330 + 334
- 331 + 335
- 332 + 336
- 333 + 337
- 334 + 338
- 335 + 339
- 336 + 340
- 337 + 341
- 338 + 342
- 339 + 343
- 340 + 344
- 341 + 345
- 342 + 346
- 343 + 347
- 344 + 348
- 345 + 349

Lines

- 66.4 %

+ 70 %

@@ -23,7 +23,7 @@

Functions

- 10.48 %

+ 12.4 %

@@ -46,20 +46,20 @@ - 69.75% + 72.73% - 69.75% + 72.73% - 83 / 119 + 112 / 154 - 11.11% - 11 / 99 + 13.04% + 15 / 115 diff --git a/coverage/main/crates/conjure_core/src/solver/mod.rs.html b/coverage/main/crates/conjure_core/src/solver/mod.rs.html index a22f1da3d9..cc18b2d262 100644 --- a/coverage/main/crates/conjure_core/src/solver/mod.rs.html +++ b/coverage/main/crates/conjure_core/src/solver/mod.rs.html @@ -15,7 +15,7 @@

Lines

- 69.75 %

+ 72.73 %

@@ -23,7 +23,7 @@

Functions

- 11.11 %

+ 13.04 %

@@ -1420,7 +1420,7 @@
-
use std::collections::HashMap;
+
use std::any::Any;
-
use std::error::Error;
+
use std::cell::OnceCell;
-
use std::fmt::{Debug, Display};
+
use std::collections::HashMap;
-
use std::time::Instant;
+
use std::error::Error;
-

+                
use std::fmt::{Debug, Display};
-
use serde::{Deserialize, Serialize};
+
use std::rc::Rc;
-
use strum_macros::{Display, EnumIter, EnumString};
+
use std::sync::{Arc, RwLock};
-
use thiserror::Error;
+
use std::time::Instant;
-
use crate::ast::{Constant, Name};
+
use serde::{Deserialize, Serialize};
-
use crate::Model;
+
use strum_macros::{Display, EnumIter, EnumString};
-

+                
use thiserror::Error;
-
use self::model_modifier::*;
+

             
-
use self::states::*;
+
use crate::ast::{Constant, Name};
-
use self::stats::SolverStats;
+
use crate::context::Context;
-

+                
use crate::stats::SolverStats;
-
pub mod adaptors;
+
use crate::Model;
-
pub mod model_modifier;
+

             
-
pub mod stats;
+
use self::model_modifier::ModelModifier;
-

+                
use self::states::*;
-
#[doc(hidden)]
+

             
-
mod private;
+
pub mod adaptors;
-

+                
pub mod model_modifier;
-
pub mod states;
+

             
-

+                
#[doc(hidden)]
-
#[derive(
+
mod private;
113
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage">
-
-
    Debug, EnumString, EnumIter, Display, PartialEq, Eq, Hash, Clone, Copy, Serialize, Deserialize,
+

             
-
)]
+
pub mod states;
-
pub enum SolverFamily {
+

             
-
    SAT,
+
#[derive(
117
+ class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0">
-
-
    Minion,
+
    Debug, EnumString, EnumIter, Display, PartialEq, Eq, Hash, Clone, Copy, Serialize, Deserialize,
-
}
+
)]
-

+                
pub enum SolverFamily {
-
/// The type for user-defined callbacks for use with [Solver].
+
    SAT,
-
///
+
    Minion,
-
/// Note that this enforces thread safety
+
}
-
pub type SolverCallback = Box<dyn Fn(HashMap<Name, Constant>) -> bool + Send>;
+

             
-
pub type SolverMutCallback =
+
/// The type for user-defined callbacks for use with [Solver].
-
    Box<dyn Fn(HashMap<Name, Constant>, Box<dyn ModelModifier>) -> bool + Send>;
+
///
-

+                
/// Note that this enforces thread safety
-
/// A common interface for calling underlying solver APIs inside a [`Solver`].
+
pub type SolverCallback = Box<dyn Fn(HashMap<Name, Constant>) -> bool + Send>;
-
///
+
pub type SolverMutCallback =
-
/// Implementations of this trait aren't directly callable and should be used through [`Solver`] .
+
    Box<dyn Fn(HashMap<Name, Constant>, Box<dyn ModelModifier>) -> bool + Send>;
-
///
+

             
-
/// The below documentation lists the formal requirements that all implementations of
+
/// A common interface for calling underlying solver APIs inside a [`Solver`].
-
/// [`SolverAdaptor`] should follow - **see the top level module documentation and [`Solver`] for
+
///
-
/// usage details.**
+
/// Implementations of this trait aren't directly callable and should be used through [`Solver`] .
-
/// # Encapsulation
+
/// The below documentation lists the formal requirements that all implementations of
-
///  
+
/// [`SolverAdaptor`] should follow - **see the top level module documentation and [`Solver`] for
-
///  The [`SolverAdaptor`] trait **must** only be implemented inside a submodule of this one,
+
/// usage details.**
-
///  and **should** only be called through [`Solver`].
+
///
-
///
+
/// # Encapsulation
-
/// The `private::Sealed` trait and `private::Internal` type enforce these requirements by only
+
///  
-
/// allowing trait implementations and calling of methods of SolverAdaptor to occur inside this
+
///  The [`SolverAdaptor`] trait **must** only be implemented inside a submodule of this one,
-
/// module.
+
///  and **should** only be called through [`Solver`].
-
/// # Thread Safety
+
/// The `private::Sealed` trait and `private::Internal` type enforce these requirements by only
-
///
+
/// allowing trait implementations and calling of methods of SolverAdaptor to occur inside this
-
/// Multiple instances of [`Solver`] can be run in parallel across multiple threads.
+
/// module.
-
/// [`Solver`] provides no concurrency control or thread-safety; therefore, adaptors **must**
+
/// # Thread Safety
-
/// ensure that multiple instances of themselves can be ran in parallel. This applies to all
+
///
-
/// stages of solving including having two active `solve()` calls happening at a time, loading
+
/// Multiple instances of [`Solver`] can be run in parallel across multiple threads.
-
/// a model while another is mid-solve, loading two models at once, etc.
+
///
-
///
+
/// [`Solver`] provides no concurrency control or thread-safety; therefore, adaptors **must**
-
/// A [SolverAdaptor] **may** use whatever threading or process model it likes underneath the hood,
+
/// ensure that multiple instances of themselves can be ran in parallel. This applies to all
-
/// as long as it obeys the above.
+
/// stages of solving including having two active `solve()` calls happening at a time, loading
-
///
+
/// a model while another is mid-solve, loading two models at once, etc.
-
/// Method calls **should** block instead of erroring where possible.
+
///
-
///
+
/// A [SolverAdaptor] **may** use whatever threading or process model it likes underneath the hood,
-
/// Underlying solvers that only have one instance per process (such as Minion) **should** block
+
/// as long as it obeys the above.
-
/// (eg. using a [`Mutex<()>`](`std::sync::Mutex`)) to run calls to
+
///
-
/// [`Solver<A,ModelLoaded>::solve()`] and [`Solver<A,ModelLoaded>::solve_mut()`] sequentially.
+
/// Method calls **should** block instead of erroring where possible.
-
pub trait SolverAdaptor: private::Sealed {
+
///
-
    /// Runs the solver on the given model.
+
/// Underlying solvers that only have one instance per process (such as Minion) **should** block
-
    ///
+
/// (eg. using a [`Mutex<()>`](`std::sync::Mutex`)) to run calls to
-
    /// Implementations of this function **must** call the user provided callback whenever a solution
+
/// [`Solver<A,ModelLoaded>::solve()`] and [`Solver<A,ModelLoaded>::solve_mut()`] sequentially.
-
    /// is found. If the user callback returns `true`, search should continue, if the user callback
+
pub trait SolverAdaptor: private::Sealed + Any {
-
    /// returns `false`, search should terminate.
+
    /// Runs the solver on the given model.
-
    /// # Returns
+
    /// Implementations of this function **must** call the user provided callback whenever a solution
-
    ///
+
    /// is found. If the user callback returns `true`, search should continue, if the user callback
-
    /// If the solver terminates without crashing a [SolveSuccess] struct **must** returned. The
+
    /// returns `false`, search should terminate.
-
    /// value of [SearchStatus] can be used to denote whether the underlying solver completed its
+
    ///
-
    /// search or not. The latter case covers most non-crashing "failure" cases including user
+
    /// # Returns
-
    /// termination, timeouts, etc.
+
    ///
-
    ///
+
    /// If the solver terminates without crashing a [SolveSuccess] struct **must** returned. The
-
    /// To help populate [SearchStatus], it may be helpful to implement counters that track if the
+
    /// value of [SearchStatus] can be used to denote whether the underlying solver completed its
-
    /// user callback has been called yet, and its return value. This information makes it is
+
    /// search or not. The latter case covers most non-crashing "failure" cases including user
-
    /// possible to distinguish between the most common search statuses:
+
    /// termination, timeouts, etc.
-
    /// [SearchComplete::HasSolutions], [SearchComplete::NoSolutions], and
+
    ///
-
    /// [SearchIncomplete::UserTerminated].
+
    /// To help populate [SearchStatus], it may be helpful to implement counters that track if the
-
    fn solve(
+
    /// user callback has been called yet, and its return value. This information makes it is
-
        &mut self,
+
    /// possible to distinguish between the most common search statuses:
-
        callback: SolverCallback,
+
    /// [SearchComplete::HasSolutions], [SearchComplete::NoSolutions], and
-
        _: private::Internal,
+
    /// [SearchIncomplete::UserTerminated].
-
    ) -> Result<SolveSuccess, SolverError>;
+
    fn solve(
-

+                
        &mut self,
-
    /// Runs the solver on the given model, allowing modification of the model through a
+
        callback: SolverCallback,
-
    /// [`ModelModifier`].
+
        _: private::Internal,
-
    ///
+
    ) -> Result<SolveSuccess, SolverError>;
-
    /// Implementations of this function **must** return [`OpNotSupported`](`ModificationFailure::OpNotSupported`)
+

             
-
    /// if modifying the model mid-search is not supported.
+
    /// Runs the solver on the given model, allowing modification of the model through a
-
    ///
+
    /// [`ModelModifier`].
-
    /// Otherwise, this should work in the same way as [`solve`](SolverAdaptor::solve).
+
    ///
-
    fn solve_mut(
+
    /// Implementations of this function **must** return [`OpNotSupported`](`ModificationFailure::OpNotSupported`)
-
        &mut self,
+
    /// if modifying the model mid-search is not supported.
-
        callback: SolverMutCallback,
+
    ///
-
        _: private::Internal,
+
    /// Otherwise, this should work in the same way as [`solve`](SolverAdaptor::solve).
-
    ) -> Result<SolveSuccess, SolverError>;
+
    fn solve_mut(
-
    fn load_model(&mut self, model: Model, _: private::Internal) -> Result<(), SolverError>;
+
        &mut self,
199
- 45 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
    fn init_solver(&mut self, _: private::Internal) {}
+
        callback: SolverMutCallback,
-

+                
        _: private::Internal,
-
    /// Get the solver family that this solver adaptor belongs to
+
    ) -> Result<SolveSuccess, SolverError>;
-
    fn get_family(&self) -> SolverFamily;
+
    fn load_model(&mut self, model: Model, _: private::Internal) -> Result<(), SolverError>;
203
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="56"> + 56
-
-
}
+
    fn init_solver(&mut self, _: private::Internal) {}
-
/// An abstract representation of a constraints solver.
+
    /// Get the solver family that this solver adaptor belongs to
-
///
+
    fn get_family(&self) -> SolverFamily;
-
/// [Solver] provides a common interface for interacting with a constraint solver. It also
+

             
-
/// abstracts over solver-specific datatypes, handling the translation to/from [conjure_core::ast]
+
    /// Gets the name of the solver adaptor for pretty printing.
209
+ class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0">
-
-
/// types for a model and its solutions.
+
    fn get_name(&self) -> Option<String> {
210
+ class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0">
-
-
///
+
        None
211
+ class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0">
-
-
/// Details of how a model is solved is specified by the [SolverAdaptor]. This includes: the
+
    }
-
/// underlying solver used, the translation of the model to a solver compatible form, how solutions
+

             
-
/// are translated back to [conjure_core::ast] types, and how incremental solving is implemented.
+
    /// Adds the solver adaptor name and family (if they exist) to the given stats object.
214
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="56"> + 56
-
-
/// As such, there may be multiple [SolverAdaptor] implementations for a single underlying solver:
+
    fn add_adaptor_info_to_stats(&self, stats: SolverStats) -> SolverStats {
215
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="56"> + 56
-
-
/// e.g. one adaptor may give solutions in a representation close to the solvers, while another may
+
        SolverStats {
216
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="56"> + 56
-
-
/// attempt to rewrite it back into Essence.
+
            solver_adaptor: self.get_name(),
217
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="56"> + 56
-
-
///
+
            solver_family: Some(self.get_family()),
218
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="56"> + 56
-
-
#[derive(Clone)]
+
            ..stats
219
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="56"> + 56
-
-
pub struct Solver<A: SolverAdaptor, State: SolverState = Init> {
+
        }
220
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="56"> + 56
-
-
    state: State,
+
    }
-
    adaptor: A,
+
}
-
}
+

             
-

+                
/// An abstract representation of a constraints solver.
-
impl<Adaptor: SolverAdaptor> Solver<Adaptor> {
+
///
225
- 45 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
    pub fn new(solver_adaptor: Adaptor) -> Solver<Adaptor> {
+
/// [Solver] provides a common interface for interacting with a constraint solver. It also
226
- 45 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
        let mut solver = Solver {
+
/// abstracts over solver-specific datatypes, handling the translation to/from [conjure_core::ast]
227
- 45 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
            state: Init,
+
/// types for a model and its solutions.
228
- 45 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
            adaptor: solver_adaptor,
+
///
229
- 45 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
        };
+
/// Details of how a model is solved is specified by the [SolverAdaptor]. This includes: the
230
- 45 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-

+                
/// underlying solver used, the translation of the model to a solver compatible form, how solutions
231
- 45 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
        solver.adaptor.init_solver(private::Internal);
+
/// are translated back to [conjure_core::ast] types, and how incremental solving is implemented.
232
- 45 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
        solver
+
/// As such, there may be multiple [SolverAdaptor] implementations for a single underlying solver:
233
- 45 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
    }
+
/// e.g. one adaptor may give solutions in a representation close to the solvers, while another may
-

+                
/// attempt to rewrite it back into Essence.
235
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage">
-
-
    pub fn get_family(&self) -> SolverFamily {
+
///
236
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage">
-
-
        self.adaptor.get_family()
+
#[derive(Clone)]
237
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage">
-
-
    }
+
pub struct Solver<A: SolverAdaptor, State: SolverState = Init> {
-
}
+
    state: State,
-

+                
    adaptor: A,
-
impl<A: SolverAdaptor> Solver<A, Init> {
+
    context: Option<Arc<RwLock<Context<'static>>>>,
241
- 45 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
    pub fn load_model(mut self, model: Model) -> Result<Solver<A, ModelLoaded>, SolverError> {
+
}
242
- 45 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
        let solver_model = &mut self.adaptor.load_model(model, private::Internal)?;
+

             
243
- 45 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
        Ok(Solver {
+
impl<Adaptor: SolverAdaptor> Solver<Adaptor> {
- 45 + role="cell" aria-label="56"> + 56
-
            state: ModelLoaded,
+
    pub fn new(solver_adaptor: Adaptor) -> Solver<Adaptor> {
- 45 + role="cell" aria-label="56"> + 56
-
            adaptor: self.adaptor,
+
        let mut solver = Solver {
- 45 + role="cell" aria-label="56"> + 56
-
        })
+
            state: Init,
- 45 + role="cell" aria-label="56"> + 56
-
    }
+
            adaptor: solver_adaptor,
248
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="56"> + 56
-
-
}
+
            context: None,
249
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="56"> + 56
-
-

+                
        };
250
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="56"> + 56
-
-
impl<A: SolverAdaptor> Solver<A, ModelLoaded> {
+

             
- 45 + role="cell" aria-label="56"> + 56
-
    pub fn solve(
+
        solver.adaptor.init_solver(private::Internal);
- 45 + role="cell" aria-label="56"> + 56
-
        mut self,
+
        solver
- 45 + role="cell" aria-label="56"> + 56
-
        callback: SolverCallback,
+
    }
254
- 45 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
    ) -> Result<Solver<A, ExecutionSuccess>, SolverError> {
+

             
255
- 45 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
        #[allow(clippy::unwrap_used)]
+
    pub fn get_family(&self) -> SolverFamily {
256
- 45 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-
        let start_time = Instant::now();
+
        self.adaptor.get_family()
257
- 45 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger" + role="cell" aria-label="0"> +
-
-

+                
    }
258
- 45 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
        #[allow(clippy::unwrap_used)]
+
}
259
- 45 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
        let result = self.adaptor.solve(callback, private::Internal);
+

             
260
- 45 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-

+                
impl<A: SolverAdaptor> Solver<A, Init> {
- 45 + role="cell" aria-label="56"> + 56
-
        let duration = start_time.elapsed();
+
    pub fn load_model(mut self, model: Model) -> Result<Solver<A, ModelLoaded>, SolverError> {
- 45 + role="cell" aria-label="56"> + 56
-

+                
        let solver_model = &mut self.adaptor.load_model(model.clone(), private::Internal)?;
- 45 + role="cell" aria-label="56"> + 56
-
        match result {
+
        Ok(Solver {
- 45 + role="cell" aria-label="56"> + 56
-
            Ok(x) => Ok(Solver {
+
            state: ModelLoaded,
- 45 + role="cell" aria-label="56"> + 56
-
                adaptor: self.adaptor,
+
            adaptor: self.adaptor,
- 45 + role="cell" aria-label="56"> + 56
-
                state: ExecutionSuccess {
+
            context: Some(model.context.clone()),
- 45 + role="cell" aria-label="56"> + 56
-
                    stats: x.stats,
+
        })
- 45 + role="cell" aria-label="56"> + 56
-
                    status: x.status,
+
    }
269
- 45 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
                    _sealed: private::Internal,
+
}
270
- 45 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
                    wall_time_s: duration.as_secs_f64(),
+

             
271
- 45 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white" + role="cell" aria-label="no coverage"> +
-
-
                },
+
impl<A: SolverAdaptor> Solver<A, ModelLoaded> {
- 45 + role="cell" aria-label="56"> + 56
-
            }),
+
    pub fn solve(
273
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="56"> + 56
-
-
            Err(x) => Err(x),
+
        mut self,
274
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="56"> + 56
-
-
        }
+
        callback: SolverCallback,
- 45 + role="cell" aria-label="56"> + 56
-
    }
+
    ) -> Result<Solver<A, ExecutionSuccess>, SolverError> {
276
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="56"> + 56
-
-

+                
        #[allow(clippy::unwrap_used)]
277
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="56"> + 56
-
-
    pub fn solve_mut(
+
        let start_time = Instant::now();
278
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="56"> + 56
-
-
        mut self,
+

             
279
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="56"> + 56
-
-
        callback: SolverMutCallback,
+
        #[allow(clippy::unwrap_used)]
280
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="56"> + 56
-
-
    ) -> Result<Solver<A, ExecutionSuccess>, SolverError> {
+
        let result = self.adaptor.solve(callback, private::Internal);
281
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="56"> + 56
-
-
        #[allow(clippy::unwrap_used)]
+

             
282
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="56"> + 56
-
-
        let start_time = Instant::now();
+
        let duration = start_time.elapsed();
283
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="56"> + 56
-
-

+                

             
284
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="56"> + 56
-
-
        #[allow(clippy::unwrap_used)]
+
        match result {
285
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="56"> + 56
-
-
        let result = self.adaptor.solve_mut(callback, private::Internal);
+
            Ok(x) => {
286
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="56"> + 56
-
-

+                
                let stats = self
287
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="56"> + 56
-
-
        let duration = start_time.elapsed();
+
                    .adaptor
288
+ 56 +
+
+
                    .add_adaptor_info_to_stats(x.stats)
+
+
+
+ 289 +
+
+ 56 +
+
+
                    .with_timings(duration.as_secs_f64());
+
+
+
+ 290 +
+
+ 56 +
+
+

+            
+
+
+ 291 +
+
+ 56 +
+
+
                Ok(Solver {
+
+
+
+ 292 +
+
+ 56 +
+
+
                    adaptor: self.adaptor,
+
+
+
+ 293 +
+
+ 56 +
+
+
                    state: ExecutionSuccess {
+
+
+
+ 294 +
+
+ 56 +
+
+
                        stats,
+
+
+
+ 295 +
+
+ 56 +
+
+
                        status: x.status,
+
+
+
+ 296 +
+
+ 56 +
+
+
                        _sealed: private::Internal,
+
+
+
+ 297 +
+
+ 56 +
+
+
                    },
+
+
+
+ 298 +
+
+ 56 +
+
+
                    context: self.context,
+
+
+
+ 299 +
+
+ 56 +
+
+
                })
+
+
+
+ 300 +
+
+ +
+
+
            }
+
+
+
+ 301 +
+
+ +
+
+
            Err(x) => Err(x),
+
+
+
+ 302 +
+
+ +
+
+
        }
+
+
+
+ 303 +
+
+ 56 +
+
+
    }
+
+
+
+ 304 +
+
+ +
+
+

+            
+
+
+ 305 +
+
+ +
+
+
    pub fn solve_mut(
+
+
+
+ 306 +
+
+ +
+
+
        mut self,
+
+
+
+ 307 +
+
+ +
+
+
        callback: SolverMutCallback,
+
+
+
+ 308 +
+
+ +
+
+
    ) -> Result<Solver<A, ExecutionSuccess>, SolverError> {
+
+
+
+ 309 +
+
+ +
+
+
        #[allow(clippy::unwrap_used)]
+
+
+
+ 310 +
+
+ +
+
+
        let start_time = Instant::now();
+
+
+
+ 311 +
+
+ +
+
+

+            
+
+
+ 312 +
+
+ +
+
+
        #[allow(clippy::unwrap_used)]
+
+
+
+ 313 +
+
+ +
+
+
        let result = self.adaptor.solve_mut(callback, private::Internal);
+
+
+
+ 314 +
+
+ +
+
+

+            
+
+
+ 315 +
+
+ +
+
+
        let duration = start_time.elapsed();
+
+
+
+ 316 +
+
+ +
+
+

+            
+
+
+ 317 +
+
+ +
+
+
        match result {
+
+
+
+ 318 +
+
+ +
+
+
            Ok(x) => {
+
+
+
+ 319 +
+
+ +
+
+
                let stats = self
+
+
+
+ 320 +
+
+ +
+
+
                    .adaptor
+
+
+
+ 321 +
+
+ +
+
+
                    .add_adaptor_info_to_stats(x.stats)
+
+
+
+ 322 +
+
+ +
+
+
                    .with_timings(duration.as_secs_f64());
+
+
+
+ 323 +
+
@@ -4641,9 +5201,9 @@
- 289 + 324
-
        match result {
+
                Ok(Solver {
- 290 + 325
-
            Ok(x) => Ok(Solver {
+
                    adaptor: self.adaptor,
- 291 + 326
-
                adaptor: self.adaptor,
+
                    state: ExecutionSuccess {
- 292 + 327
-
                state: ExecutionSuccess {
+
                        stats,
- 293 + 328
-
                    stats: x.stats,
+
                        status: x.status,
- 294 + 329
-
                    status: x.status,
+
                        _sealed: private::Internal,
- 295 + 330
-
                    _sealed: private::Internal,
+
                    },
- 296 + 331
-
                    wall_time_s: duration.as_secs_f64(),
+
                    context: self.context,
- 297 + 332
-
                },
+
                })
- 298 + 333 +
+
+ +
+
+
            }
+
+
+
+ 334
-
            }),
+
            Err(x) => Err(x),
- 299 + 335 +
+
+ +
+
+
        }
+
+
+
+ 336
-
            Err(x) => Err(x),
+
    }
- 300 + 337 +
+
+ +
+
+
}
+
+
+
+ 338 +
+
+ +
+
+

+            
+
+
+ 339 +
+
+ +
+
+
impl<A: SolverAdaptor> Solver<A, ExecutionSuccess> {
+
+
+
+ 340 +
+
+ 45 +
+
+
    pub fn stats(&self) -> SolverStats {
+
+
+
+ 341 +
+
+ 45 +
+
+
        self.state.stats.clone()
+
+
+
+ 342 +
+
+ 45 +
+
+
    }
+
+
+
+ 343 +
+
+ +
+
+

+            
+
+
+ 344 +
+
+ +
+
+
    // Saves this solvers stats to the global context as a "solver run"
+
+
+
+ 345 +
+
+ 45 +
+
+
    pub fn save_stats_to_context(&self) {
+
+
+
+ 346 +
+
+ 45 +
+
+
        #[allow(clippy::unwrap_used)]
+
+
+
+ 347 +
+
+ 45 +
+
+
        #[allow(clippy::expect_used)]
+
+
+
+ 348
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="45"> + 45
-
-
        }
+
        self.context
- 301 + 349
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="45"> + 45
-
-
    }
+
            .as_ref()
- 302 + 350
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="45"> + 45
-
-
}
+
            .expect("")
- 303 + 351
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="45"> + 45
-
-

+                
            .write()
- 304 + 352
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="45"> + 45
-
-
impl<A: SolverAdaptor> Solver<A, ExecutionSuccess> {
+
            .unwrap()
- 305 + 353
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="45"> + 45
-
-
    pub fn stats(self) -> Option<Box<dyn SolverStats>> {
+
            .stats
- 306 + 354
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="45"> + 45
-
-
        self.state.stats
+
            .add_solver_run(self.stats());
- 307 + 355
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success" + role="cell" aria-label="45"> + 45
-
-
    }
+
    }
- 308 + 356
- 309 + 357
- 310 + 358
-
        self.state.wall_time_s
+
        self.stats().conjure_solver_wall_time_s
- 311 + 359
- 312 + 360
- 313 + 361
- 314 + 362
- 315 + 363
- 316 + 364
- 317 + 365
- 318 + 366
- 319 + 367
- 320 + 368
- 321 + 369
- 322 + 370
- 323 + 371
- 324 + 372
- 325 + 373
- 326 + 374
- 327 + 375
- 328 + 376
- 329 + 377
- 330 + 378
- 331 + 379
- 332 + 380
- 333 + 381
- 334 + 382
- 335 + 383
- 336 + 384
- 337 + 385
- 338 + 386
- 339 + 387
- 340 + 388
- 341 + 389
- 342 + 390
- 343 + 391
-
    stats: Option<Box<dyn SolverStats>>,
+
    stats: SolverStats,
- 344 + 392
- 345 + 393
- 346 + 394
- 347 + 395
- 348 + 396
- 349 + 397
- 350 + 398
- 351 + 399
- 352 + 400
- 353 + 401
- 354 + 402
- 355 + 403
- 356 + 404
- 357 + 405
- 358 + 406
- 359 + 407
- 360 + 408
- 361 + 409
- 362 + 410
- 363 + 411
- 364 + 412
- 365 + 413
- 366 + 414
- 367 + 415
- 368 + 416
- 369 + 417
- 370 + 418
+ + + + Grcov report - crates/conjure_core/src/stats + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileLine CoverageFunctions
mod.rs + + 50% + + + 50% + + 3 / 6 + 16.67%1 / 6
solver_stats.rs + + 100% + + + 100% + + 6 / 6 + 33.33%1 / 3
+
+
+

Date: 2024-03-30 19:33

+
+
+ + diff --git a/coverage/main/crates/conjure_core/src/stats/mod.rs.html b/coverage/main/crates/conjure_core/src/stats/mod.rs.html new file mode 100644 index 0000000000..aa4305fd03 --- /dev/null +++ b/coverage/main/crates/conjure_core/src/stats/mod.rs.html @@ -0,0 +1,409 @@ + + + + + Grcov report - mod.rs + + +
+ + + +
+
+ 1 +
+
+ +
+
+
mod solver_stats;
+
+
+
+ 2 +
+
+ +
+
+

+            
+
+
+ 3 +
+
+ +
+
+
use serde::Serialize;
+
+
+
+ 4 +
+
+ +
+
+
use serde_with::skip_serializing_none;
+
+
+
+ 5 +
+
+ +
+
+
pub use solver_stats::SolverStats;
+
+
+
+ 6 +
+
+ +
+
+

+            
+
+
+ 7 +
+
+ +
+
+
#[allow(dead_code)]
+
+
+
+ 8 +
+
+ +
+
+
#[skip_serializing_none]
+
+
+
+ 9 +
+
+ +
+
+
#[derive(Default, Serialize, Clone)]
+
+
+
+ 10 +
+
+ +
+
+
#[serde(rename_all = "camelCase")]
+
+
+
+ 11 +
+
+ +
+
+
pub struct Stats {
+
+
+
+ 12 +
+
+ +
+
+
    pub solver_runs: Vec<SolverStats>,
+
+
+
+ 13 +
+
+ +
+
+
}
+
+
+
+ 14 +
+
+ +
+
+

+            
+
+
+ 15 +
+
+ +
+
+
impl Stats {
+
+
+
+ 16 +
+
+ +
+
+
    pub fn new() -> Stats {
+
+
+
+ 17 +
+
+ +
+
+
        Default::default()
+
+
+
+ 18 +
+
+ +
+
+
    }
+
+
+
+ 19 +
+
+ +
+
+

+            
+
+
+ 20 +
+
+ 135 +
+
+
    pub fn add_solver_run(&mut self, solver_stats: SolverStats) {
+
+
+
+ 21 +
+
+ 135 +
+
+
        self.solver_runs.push(solver_stats);
+
+
+
+ 22 +
+
+ 135 +
+
+
    }
+
+
+
+ 23 +
+
+ +
+
+
}
+
+
+
+
+
+

Date: 2024-03-30 19:33

+
+
+ + diff --git a/coverage/main/crates/conjure_core/src/stats/solver_stats.rs.html b/coverage/main/crates/conjure_core/src/stats/solver_stats.rs.html new file mode 100644 index 0000000000..ff929a6f09 --- /dev/null +++ b/coverage/main/crates/conjure_core/src/stats/solver_stats.rs.html @@ -0,0 +1,633 @@ + + + + + Grcov report - solver_stats.rs + + +
+ + + +
+
+ 1 +
+
+ +
+
+
use serde::Serialize;
+
+
+
+ 2 +
+
+ +
+
+
use serde_with::skip_serializing_none;
+
+
+
+ 3 +
+
+ +
+
+

+            
+
+
+ 4 +
+
+ +
+
+
use crate::solver::{SolverAdaptor, SolverFamily};
+
+
+
+ 5 +
+
+ +
+
+

+            
+
+
+ 6 +
+
+ +
+
+
#[skip_serializing_none]
+
+
+
+ 7 +
+
+ +
+
+
#[derive(Default, Serialize, Clone)]
+
+
+
+ 8 +
+
+ +
+
+
#[serde(rename_all = "camelCase")]
+
+
+
+ 9 +
+
+ +
+
+
#[allow(dead_code)]
+
+
+
+ 10 +
+
+ +
+
+
pub struct SolverStats {
+
+
+
+ 11 +
+
+ +
+
+
    /// Wall time as measured by Conjure-oxide (not the solver).
+
+
+
+ 12 +
+
+ +
+
+
    #[serde(rename = "conjureSolverWallTime_s")]
+
+
+
+ 13 +
+
+ +
+
+
    pub conjure_solver_wall_time_s: f64,
+
+
+
+ 14 +
+
+ +
+
+

+            
+
+
+ 15 +
+
+ +
+
+
    // This is set by Solver, not SolverAdaptor
+
+
+
+ 16 +
+
+ +
+
+
    /// The solver family used for this run.
+
+
+
+ 17 +
+
+ +
+
+
    pub solver_family: Option<SolverFamily>,
+
+
+
+ 18 +
+
+ +
+
+

+            
+
+
+ 19 +
+
+ +
+
+
    /// The solver adaptor used for this run.
+
+
+
+ 20 +
+
+ +
+
+
    pub solver_adaptor: Option<String>,
+
+
+
+ 21 +
+
+ +
+
+

+            
+
+
+ 22 +
+
+ +
+
+
    // NOTE (niklasdewally): these fields are copied from the list in Savile Row
+
+
+
+ 23 +
+
+ +
+
+
    pub nodes: Option<u64>,
+
+
+
+ 24 +
+
+ +
+
+
    pub satisfiable: Option<bool>,
+
+
+
+ 25 +
+
+ +
+
+
    pub sat_vars: Option<u64>,
+
+
+
+ 26 +
+
+ +
+
+
    pub sat_clauses: Option<u64>,
+
+
+
+ 27 +
+
+ +
+
+
}
+
+
+
+ 28 +
+
+ +
+
+

+            
+
+
+ 29 +
+
+ +
+
+
impl SolverStats {
+
+
+
+ 30 +
+
+ +
+
+
    // Adds the conjure_solver_wall_time_s to the stats.
+
+
+
+ 31 +
+
+ 180 +
+
+
    pub fn with_timings(self, wall_time_s: f64) -> SolverStats {
+
+
+
+ 32 +
+
+ 180 +
+
+
        SolverStats {
+
+
+
+ 33 +
+
+ 180 +
+
+
            conjure_solver_wall_time_s: wall_time_s,
+
+
+
+ 34 +
+
+ 180 +
+
+
            ..self.clone()
+
+
+
+ 35 +
+
+ 180 +
+
+
        }
+
+
+
+ 36 +
+
+ 180 +
+
+
    }
+
+
+
+ 37 +
+
+ +
+
+
}
+
+
+
+
+
+

Date: 2024-03-30 19:33

+
+
+ + diff --git a/coverage/main/crates/uniplate/src/tree.rs.html b/coverage/main/crates/uniplate/src/tree.rs.html index c9f9cbaefc..f75707b81f 100644 --- a/coverage/main/crates/uniplate/src/tree.rs.html +++ b/coverage/main/crates/uniplate/src/tree.rs.html @@ -647,8 +647,8 @@
- 29582 + role="cell" aria-label="31395"> + 31395
@@ -663,8 +663,8 @@
- 29582 + role="cell" aria-label="31395"> + 31395
@@ -679,8 +679,8 @@
- 13242 + role="cell" aria-label="14110"> + 14110
@@ -695,8 +695,8 @@
- 13298 + role="cell" aria-label="14113"> + 14113
@@ -711,8 +711,8 @@
- 13298 + role="cell" aria-label="14113"> + 14113
@@ -727,8 +727,8 @@
- 13298 + role="cell" aria-label="14113"> + 14113
@@ -743,8 +743,8 @@
- 13298 + role="cell" aria-label="14113"> + 14113
@@ -775,8 +775,8 @@
- 28797 + role="cell" aria-label="30610"> + 30610
@@ -807,8 +807,8 @@
- 29582 + role="cell" aria-label="31395"> + 31395
@@ -871,8 +871,8 @@
- 9954 + role="cell" aria-label="9087"> + 9087
@@ -887,8 +887,8 @@
- 9944 + role="cell" aria-label="9077"> + 9077
@@ -903,8 +903,8 @@
- 9944 + role="cell" aria-label="9077"> + 9077
@@ -919,8 +919,8 @@
- 9944 + role="cell" aria-label="9077"> + 9077
@@ -935,8 +935,8 @@
- 9944 + role="cell" aria-label="9077"> + 9077
@@ -951,8 +951,8 @@
- 9944 + role="cell" aria-label="9077"> + 9077
@@ -967,8 +967,8 @@
- 4517 + role="cell" aria-label="4069"> + 4069
@@ -983,8 +983,8 @@
- 4455 + role="cell" aria-label="4066"> + 4066
@@ -999,8 +999,8 @@
- 4445 + role="cell" aria-label="4056"> + 4056
@@ -1015,8 +1015,8 @@
- 4445 + role="cell" aria-label="4056"> + 4056
@@ -1047,8 +1047,8 @@
- 1002 + role="cell" aria-label="972"> + 972
@@ -1063,8 +1063,8 @@
- 9686 + role="cell" aria-label="8819"> + 8819
@@ -1079,8 +1079,8 @@
- 9686 + role="cell" aria-label="8819"> + 8819
@@ -1095,8 +1095,8 @@
- 9686 + role="cell" aria-label="8819"> + 8819
@@ -1111,8 +1111,8 @@
- 9686 + role="cell" aria-label="8819"> + 8819
@@ -1127,8 +1127,8 @@
- 9686 + role="cell" aria-label="8819"> + 8819
@@ -1143,8 +1143,8 @@
- 9686 + role="cell" aria-label="8819"> + 8819
@@ -1159,8 +1159,8 @@
- 992 + role="cell" aria-label="962"> + 962
@@ -1207,8 +1207,8 @@
- 9954 + role="cell" aria-label="9087"> + 9087
@@ -1335,8 +1335,8 @@
- 9793 + role="cell" aria-label="11133"> + 11133
@@ -1351,8 +1351,8 @@
- 9793 + role="cell" aria-label="11133"> + 11133
@@ -1367,8 +1367,8 @@
- 4361 + role="cell" aria-label="5019"> + 5019
@@ -1383,8 +1383,8 @@
- 4418 + role="cell" aria-label="5020"> + 5020
@@ -1399,8 +1399,8 @@
- 9535 + role="cell" aria-label="10875"> + 10875
@@ -1431,8 +1431,8 @@
- 9793 + role="cell" aria-label="11133"> + 11133
@@ -1991,8 +1991,8 @@
- 4418 + role="cell" aria-label="5020"> + 5020
diff --git a/coverage/main/doc-coverage.json b/coverage/main/doc-coverage.json index f8c385ae59..9637f64c02 100644 --- a/coverage/main/doc-coverage.json +++ b/coverage/main/doc-coverage.json @@ -1,9 +1,9 @@ -{"crates/enum_compatability_macro/src/lib.rs":{"total":2,"with_docs":2,"total_examples":2,"with_examples":1}} +{"solvers/kissat/src/lib.rs":{"total":1,"with_docs":0,"total_examples":1,"with_examples":0}} {"crates/conjure_macros/src/lib.rs":{"total":3,"with_docs":2,"total_examples":3,"with_examples":1}} {"crates/uniplate_derive/src/lib.rs":{"total":2,"with_docs":1,"total_examples":2,"with_examples":1}} -{"solvers/kissat/src/lib.rs":{"total":1,"with_docs":0,"total_examples":1,"with_examples":0}} -{"conjure_oxide/src/find_conjure.rs":{"total":2,"with_docs":1,"total_examples":2,"with_examples":0},"conjure_oxide/src/lib.rs":{"total":1,"with_docs":0,"total_examples":1,"with_examples":0},"conjure_oxide/src/utils/conjure.rs":{"total":7,"with_docs":0,"total_examples":5,"with_examples":0},"conjure_oxide/src/utils/json.rs":{"total":3,"with_docs":2,"total_examples":3,"with_examples":0},"conjure_oxide/src/utils/misc.rs":{"total":2,"with_docs":0,"total_examples":2,"with_examples":0},"conjure_oxide/src/utils/mod.rs":{"total":1,"with_docs":0,"total_examples":1,"with_examples":0},"conjure_oxide/src/utils/testing.rs":{"total":8,"with_docs":0,"total_examples":8,"with_examples":0}} +{"conjure_oxide/src/find_conjure.rs":{"total":2,"with_docs":1,"total_examples":2,"with_examples":0},"conjure_oxide/src/lib.rs":{"total":1,"with_docs":0,"total_examples":1,"with_examples":0},"conjure_oxide/src/utils/conjure.rs":{"total":7,"with_docs":0,"total_examples":5,"with_examples":0},"conjure_oxide/src/utils/json.rs":{"total":3,"with_docs":2,"total_examples":3,"with_examples":0},"conjure_oxide/src/utils/misc.rs":{"total":2,"with_docs":0,"total_examples":2,"with_examples":0},"conjure_oxide/src/utils/mod.rs":{"total":1,"with_docs":0,"total_examples":1,"with_examples":0},"conjure_oxide/src/utils/testing.rs":{"total":9,"with_docs":0,"total_examples":9,"with_examples":0}} +{"crates/enum_compatability_macro/src/lib.rs":{"total":2,"with_docs":2,"total_examples":2,"with_examples":1}} {"/home/runner/work/conjure-oxide/conjure-oxide/target/debug/build/chuffed_rs-deaded5605d26364/out/chuffed_bindings.rs":{"total":207,"with_docs":0,"total_examples":104,"with_examples":0},"solvers/chuffed/src/lib.rs":{"total":10,"with_docs":0,"total_examples":10,"with_examples":0}} -{"solvers/minion/src/ast.rs":{"total":98,"with_docs":11,"total_examples":12,"with_examples":0},"solvers/minion/src/error.rs":{"total":8,"with_docs":8,"total_examples":3,"with_examples":0},"solvers/minion/src/lib.rs":{"total":1,"with_docs":1,"total_examples":1,"with_examples":1}} {"crates/uniplate/src/biplate.rs":{"total":16,"with_docs":9,"total_examples":16,"with_examples":0},"crates/uniplate/src/lib.rs":{"total":1,"with_docs":1,"total_examples":1,"with_examples":1},"crates/uniplate/src/uniplate.rs":{"total":13,"with_docs":9,"total_examples":12,"with_examples":0}} -{"crates/conjure_core/src/ast/mod.rs":{"total":1,"with_docs":0,"total_examples":1,"with_examples":0},"crates/conjure_core/src/context.rs":{"total":7,"with_docs":0,"total_examples":3,"with_examples":0},"crates/conjure_core/src/error.rs":{"total":7,"with_docs":1,"total_examples":2,"with_examples":0},"crates/conjure_core/src/lib.rs":{"total":1,"with_docs":0,"total_examples":1,"with_examples":0},"crates/conjure_core/src/metadata.rs":{"total":4,"with_docs":0,"total_examples":3,"with_examples":0},"crates/conjure_core/src/model.rs":{"total":15,"with_docs":1,"total_examples":12,"with_examples":0},"crates/conjure_core/src/parse/mod.rs":{"total":1,"with_docs":0,"total_examples":1,"with_examples":0},"crates/conjure_core/src/rule_engine/mod.rs":{"total":7,"with_docs":5,"total_examples":7,"with_examples":5},"crates/conjure_core/src/rules/mod.rs":{"total":1,"with_docs":0,"total_examples":1,"with_examples":0},"crates/conjure_core/src/solver/adaptors/mod.rs":{"total":1,"with_docs":1,"total_examples":1,"with_examples":0},"crates/conjure_core/src/solver/mod.rs":{"total":39,"with_docs":12,"total_examples":21,"with_examples":1},"crates/conjure_core/src/solver/model_modifier.rs":{"total":10,"with_docs":7,"total_examples":6,"with_examples":0},"crates/conjure_core/src/solver/states.rs":{"total":12,"with_docs":7,"total_examples":6,"with_examples":0},"crates/conjure_core/src/solver/stats.rs":{"total":3,"with_docs":0,"total_examples":3,"with_examples":0}} +{"solvers/minion/src/ast.rs":{"total":98,"with_docs":11,"total_examples":12,"with_examples":0},"solvers/minion/src/error.rs":{"total":8,"with_docs":8,"total_examples":3,"with_examples":0},"solvers/minion/src/lib.rs":{"total":1,"with_docs":1,"total_examples":1,"with_examples":1}} +{"crates/conjure_core/src/ast/mod.rs":{"total":1,"with_docs":0,"total_examples":1,"with_examples":0},"crates/conjure_core/src/context.rs":{"total":10,"with_docs":0,"total_examples":4,"with_examples":0},"crates/conjure_core/src/error.rs":{"total":7,"with_docs":1,"total_examples":2,"with_examples":0},"crates/conjure_core/src/lib.rs":{"total":1,"with_docs":0,"total_examples":1,"with_examples":0},"crates/conjure_core/src/metadata.rs":{"total":4,"with_docs":0,"total_examples":3,"with_examples":0},"crates/conjure_core/src/model.rs":{"total":16,"with_docs":1,"total_examples":13,"with_examples":0},"crates/conjure_core/src/parse/mod.rs":{"total":1,"with_docs":0,"total_examples":1,"with_examples":0},"crates/conjure_core/src/rule_engine/mod.rs":{"total":7,"with_docs":5,"total_examples":7,"with_examples":5},"crates/conjure_core/src/rules/mod.rs":{"total":1,"with_docs":0,"total_examples":1,"with_examples":0},"crates/conjure_core/src/solver/adaptors/mod.rs":{"total":1,"with_docs":1,"total_examples":1,"with_examples":0},"crates/conjure_core/src/solver/mod.rs":{"total":42,"with_docs":14,"total_examples":24,"with_examples":1},"crates/conjure_core/src/solver/model_modifier.rs":{"total":10,"with_docs":7,"total_examples":6,"with_examples":0},"crates/conjure_core/src/solver/states.rs":{"total":11,"with_docs":7,"total_examples":6,"with_examples":0},"crates/conjure_core/src/stats/mod.rs":{"total":5,"with_docs":0,"total_examples":4,"with_examples":0}} diff --git a/coverage/main/doc-coverage.txt b/coverage/main/doc-coverage.txt index 7e0897c045..50348c78b7 100644 --- a/coverage/main/doc-coverage.txt +++ b/coverage/main/doc-coverage.txt @@ -1,16 +1,16 @@ +-------------------------------------+------------+------------+------------+------------+ | File | Documented | Percentage | Examples | Percentage | +-------------------------------------+------------+------------+------------+------------+ -| crates/uniplate_derive/src/lib.rs | 1 | 50.0% | 1 | 50.0% | +| crates/conjure_macros/src/lib.rs | 2 | 66.7% | 1 | 33.3% | +-------------------------------------+------------+------------+------------+------------+ -| Total | 1 | 50.0% | 1 | 50.0% | +| Total | 2 | 66.7% | 1 | 33.3% | +-------------------------------------+------------+------------+------------+------------+ +-------------------------------------+------------+------------+------------+------------+ | File | Documented | Percentage | Examples | Percentage | +-------------------------------------+------------+------------+------------+------------+ -| crates/conjure_macros/src/lib.rs | 2 | 66.7% | 1 | 33.3% | +| solvers/kissat/src/lib.rs | 0 | 0.0% | 0 | 0.0% | +-------------------------------------+------------+------------+------------+------------+ -| Total | 2 | 66.7% | 1 | 33.3% | +| Total | 0 | 0.0% | 0 | 0.0% | +-------------------------------------+------------+------------+------------+------------+ +-------------------------------------+------------+------------+------------+------------+ | File | Documented | Percentage | Examples | Percentage | @@ -22,9 +22,9 @@ +-------------------------------------+------------+------------+------------+------------+ | File | Documented | Percentage | Examples | Percentage | +-------------------------------------+------------+------------+------------+------------+ -| solvers/kissat/src/lib.rs | 0 | 0.0% | 0 | 0.0% | +| crates/uniplate_derive/src/lib.rs | 1 | 50.0% | 1 | 50.0% | +-------------------------------------+------------+------------+------------+------------+ -| Total | 0 | 0.0% | 0 | 0.0% | +| Total | 1 | 50.0% | 1 | 50.0% | +-------------------------------------+------------+------------+------------+------------+ +-------------------------------------+------------+------------+------------+------------+ | File | Documented | Percentage | Examples | Percentage | @@ -59,7 +59,7 @@ | crates/conjure_core/src/error.rs | 1 | 14.3% | 0 | 0.0% | | crates/conjure_core/src/lib.rs | 0 | 0.0% | 0 | 0.0% | | crates/conjure_core/src/metadata.rs | 0 | 0.0% | 0 | 0.0% | -| crates/conjure_core/src/model.rs | 1 | 6.7% | 0 | 0.0% | +| crates/conjure_core/src/model.rs | 1 | 6.2% | 0 | 0.0% | | ...core/src/parse/example_models.rs | 2 | 100.0% | 0 | 0.0% | | ...es/conjure_core/src/parse/mod.rs | 0 | 0.0% | 0 | 0.0% | | ...re_core/src/parse/parse_model.rs | 0 | 0.0% | 0 | 0.0% | @@ -73,12 +73,13 @@ | ...re/src/solver/adaptors/kissat.rs | 1 | 100.0% | 0 | 0.0% | | ...re/src/solver/adaptors/minion.rs | 1 | 100.0% | 0 | 0.0% | | ..._core/src/solver/adaptors/mod.rs | 1 | 100.0% | 0 | 0.0% | -| ...s/conjure_core/src/solver/mod.rs | 12 | 30.8% | 1 | 4.8% | +| ...s/conjure_core/src/solver/mod.rs | 14 | 33.3% | 1 | 4.2% | | ...ore/src/solver/model_modifier.rs | 7 | 70.0% | 0 | 0.0% | -| ...onjure_core/src/solver/states.rs | 7 | 58.3% | 0 | 0.0% | -| ...conjure_core/src/solver/stats.rs | 0 | 0.0% | 0 | 0.0% | +| ...onjure_core/src/solver/states.rs | 7 | 63.6% | 0 | 0.0% | +| ...es/conjure_core/src/stats/mod.rs | 0 | 0.0% | 0 | 0.0% | +| ...e_core/src/stats/solver_stats.rs | 3 | 37.5% | 0 | 0.0% | +-------------------------------------+------------+------------+------------+------------+ -| Total | 69 | 40.1% | 6 | 8.8% | +| Total | 74 | 39.4% | 6 | 8.1% | +-------------------------------------+------------+------------+------------+------------+ +-------------------------------------+------------+------------+------------+------------+ | File | Documented | Percentage | Examples | Percentage | @@ -91,7 +92,7 @@ | conjure_oxide/src/utils/mod.rs | 0 | 0.0% | 0 | 0.0% | | conjure_oxide/src/utils/testing.rs | 0 | 0.0% | 0 | 0.0% | +-------------------------------------+------------+------------+------------+------------+ -| Total | 3 | 12.5% | 0 | 0.0% | +| Total | 3 | 12.0% | 0 | 0.0% | +-------------------------------------+------------+------------+------------+------------+ +-------------------------------------+------------+------------+------------+------------+ | File | Documented | Percentage | Examples | Percentage | diff --git a/coverage/main/index.html b/coverage/main/index.html index 03d42a546f..975a21e3b5 100644 --- a/coverage/main/index.html +++ b/coverage/main/index.html @@ -15,7 +15,7 @@

Lines

- 73.25 %

+ 73.22 %

@@ -23,7 +23,7 @@

Functions

- 22.33 %

+ 22.31 %

@@ -70,20 +70,20 @@ - 64.47% + 67.86% - 64.47% + 67.86% - 147 / 228 + 171 / 252 - 25% - 15 / 60 + 25.4% + 16 / 63 @@ -94,16 +94,16 @@ - 95.15% + 95.17% - 95.15% + 95.17% - 962 / 1011 + 966 / 1015 95.74% @@ -118,20 +118,20 @@ - 57.46% + 43.7% - 57.46% + 43.7% - 77 / 134 + 52 / 119 - 11.95% - 19 / 159 + 11.11% + 18 / 162 @@ -190,20 +190,20 @@ - 74.28% + 73.49% - 74.28% + 73.49% - 283 / 381 + 280 / 381 - 24.68% - 39 / 158 + 24.05% + 38 / 158 @@ -238,20 +238,20 @@ - 66.4% + 70% - 66.4% + 70% - 83 / 125 + 112 / 160 - 10.48% - 11 / 105 + 12.4% + 15 / 121 @@ -262,20 +262,44 @@ - 46.84% + 47.91% - 46.84% + 47.91% - 200 / 427 + 206 / 430 - 11.73% - 19 / 162 + 12.73% + 21 / 165 + + + + + + crates/conjure_core/src/stats + + + + 75% + + + + 75% + + + 9 / 12 + + + 22.22% + 2 / 9 diff --git a/coverage/main/lcov.info b/coverage/main/lcov.info index efe07b26d8..7e7e8bb29d 100644 --- a/coverage/main/lcov.info +++ b/coverage/main/lcov.info @@ -157,51 +157,50 @@ LF:79 LH:58 end_of_record SF:crates/conjure_core/src/parse/example_models.rs -FN:27,conjure_core::parse::example_models::get_example_model::{closure#0} -FN:30,conjure_core::parse::example_models::get_example_model::{closure#1} -FN:27,conjure_core::parse::example_models::get_example_model::{closure#0} -FN:77,conjure_core::parse::example_models::get_example_model_by_path -FN:21,conjure_core::parse::example_models::get_example_model -FN:27,conjure_core::parse::example_models::get_example_model::{closure#0} -FN:30,conjure_core::parse::example_models::get_example_model::{closure#1} -FN:30,conjure_core::parse::example_models::get_example_model::{closure#1} -FN:21,conjure_core::parse::example_models::get_example_model -FN:21,conjure_core::parse::example_models::get_example_model -FN:77,conjure_core::parse::example_models::get_example_model_by_path -FN:77,conjure_core::parse::example_models::get_example_model_by_path -FNDA:0,conjure_core::parse::example_models::get_example_model::{closure#0} +FN:31,conjure_core::parse::example_models::get_example_model::{closure#1} +FN:78,conjure_core::parse::example_models::get_example_model_by_path +FN:28,conjure_core::parse::example_models::get_example_model::{closure#0} +FN:28,conjure_core::parse::example_models::get_example_model::{closure#0} +FN:31,conjure_core::parse::example_models::get_example_model::{closure#1} +FN:22,conjure_core::parse::example_models::get_example_model +FN:28,conjure_core::parse::example_models::get_example_model::{closure#0} +FN:22,conjure_core::parse::example_models::get_example_model +FN:78,conjure_core::parse::example_models::get_example_model_by_path +FN:78,conjure_core::parse::example_models::get_example_model_by_path +FN:22,conjure_core::parse::example_models::get_example_model +FN:31,conjure_core::parse::example_models::get_example_model::{closure#1} FNDA:0,conjure_core::parse::example_models::get_example_model::{closure#1} -FNDA:0,conjure_core::parse::example_models::get_example_model::{closure#0} FNDA:0,conjure_core::parse::example_models::get_example_model_by_path -FNDA:0,conjure_core::parse::example_models::get_example_model FNDA:1,conjure_core::parse::example_models::get_example_model::{closure#0} -FNDA:1,conjure_core::parse::example_models::get_example_model::{closure#1} +FNDA:0,conjure_core::parse::example_models::get_example_model::{closure#0} FNDA:0,conjure_core::parse::example_models::get_example_model::{closure#1} -FNDA:1,conjure_core::parse::example_models::get_example_model +FNDA:0,conjure_core::parse::example_models::get_example_model +FNDA:0,conjure_core::parse::example_models::get_example_model::{closure#0} FNDA:0,conjure_core::parse::example_models::get_example_model FNDA:0,conjure_core::parse::example_models::get_example_model_by_path FNDA:1,conjure_core::parse::example_models::get_example_model_by_path +FNDA:1,conjure_core::parse::example_models::get_example_model +FNDA:1,conjure_core::parse::example_models::get_example_model::{closure#1} FNF:12 FNH:4 BRF:0 BRH:0 -DA:21,45 -DA:23,45 +DA:22,45 DA:24,45 -DA:27,244185 -DA:28,244185 -DA:29,244185 -DA:30,206565 -DA:31,225 -DA:33,30 +DA:25,45 +DA:28,245640 +DA:29,245640 +DA:30,245640 +DA:31,207915 +DA:32,225 DA:34,30 -DA:35,244155 -DA:41,45 -DA:42,15 +DA:35,30 +DA:36,245610 +DA:42,45 DA:43,15 DA:44,15 DA:45,15 -DA:46,30 +DA:46,15 DA:47,30 DA:48,30 DA:49,30 @@ -210,16 +209,16 @@ DA:51,30 DA:52,30 DA:53,30 DA:54,30 -DA:57,30 -DA:62,30 -DA:64,30 -DA:65,45 -DA:77,30 +DA:55,30 +DA:58,30 +DA:63,30 +DA:65,30 +DA:66,45 DA:78,30 DA:79,30 DA:80,30 DA:81,30 -DA:82,15 +DA:82,30 DA:83,15 DA:84,15 DA:85,15 @@ -234,185 +233,201 @@ DA:93,15 DA:94,15 DA:95,15 DA:96,15 -DA:99,15 -DA:104,15 -DA:106,15 -DA:107,30 +DA:97,15 +DA:100,15 +DA:105,15 +DA:107,15 +DA:108,30 LF:53 LH:53 end_of_record SF:conjure_oxide/tests/generated_tests.rs -FN:81,generated_tests::assert_conjure_present -FN:13,generated_tests::main -FN:23,generated_tests::integration_test -FN:15,generated_tests::main::{closure#0} +FN:28,generated_tests::integration_test +FN:91,generated_tests::assert_conjure_present +FN:17,generated_tests::main +FN:19,generated_tests::main::{closure#0} +FNDA:1,generated_tests::integration_test FNDA:1,generated_tests::assert_conjure_present FNDA:0,generated_tests::main -FNDA:1,generated_tests::integration_test FNDA:0,generated_tests::main::{closure#0} FNF:4 FNH:2 BRF:0 BRH:0 -DA:13,0 -DA:14,0 -DA:15,0 -DA:16,0 DA:17,0 DA:18,0 DA:19,0 +DA:20,0 DA:21,0 -DA:23,9 -DA:24,9 -DA:25,9 -DA:26,9 -DA:27,9 -DA:28,0 -DA:29,0 -DA:30,0 -DA:31,0 +DA:22,0 +DA:23,0 +DA:25,0 +DA:28,9 +DA:29,9 +DA:30,9 +DA:31,9 DA:32,9 -DA:35,9 -DA:36,9 +DA:33,9 +DA:34,0 +DA:35,0 +DA:36,0 DA:37,0 DA:38,9 -DA:40,9 DA:41,9 DA:42,9 DA:43,0 DA:44,9 DA:46,9 +DA:47,9 +DA:48,9 DA:49,9 DA:50,9 -DA:51,9 -DA:52,0 -DA:53,9 -DA:55,9 -DA:56,9 +DA:51,0 +DA:52,9 +DA:54,9 DA:57,9 -DA:58,0 +DA:58,9 DA:59,9 +DA:60,0 DA:61,9 +DA:63,9 DA:64,9 DA:65,9 -DA:66,9 -DA:67,0 -DA:68,9 -DA:70,9 -DA:71,9 -DA:72,0 +DA:66,0 +DA:67,9 +DA:69,9 +DA:72,9 DA:73,9 -DA:75,9 -DA:77,9 +DA:74,9 +DA:75,0 +DA:76,9 DA:78,9 -DA:81,1 -DA:82,1 -DA:83,1 -LF:54 -LH:36 +DA:79,9 +DA:80,0 +DA:81,9 +DA:83,9 +DA:85,9 +DA:87,9 +DA:88,9 +DA:91,1 +DA:92,1 +DA:93,1 +LF:58 +LH:40 end_of_record SF:conjure_oxide/src/utils/conjure.rs -FN:83,conjure_oxide::utils::conjure::minion_solutions_to_json -FN:29,conjure_oxide::utils::conjure::parse_essence_file -FN:83,conjure_oxide::utils::conjure::minion_solutions_to_json -FN:15,::fmt -FN:24,>::from -FN:72,conjure_oxide::utils::conjure::get_minion_solutions::{closure#0} -FN:61,conjure_oxide::utils::conjure::get_minion_solutions -FN:61,conjure_oxide::utils::conjure::get_minion_solutions -FN:29,conjure_oxide::utils::conjure::parse_essence_file -FN:24,>::from -FN:61,conjure_oxide::utils::conjure::get_minion_solutions -FN:72,conjure_oxide::utils::conjure::get_minion_solutions::{closure#0} -FN:15,::fmt -FN:24,>::from -FN:83,conjure_oxide::utils::conjure::minion_solutions_to_json -FN:29,conjure_oxide::utils::conjure::parse_essence_file -FN:72,conjure_oxide::utils::conjure::get_minion_solutions::{closure#0} -FN:15,::fmt +FN:16,::fmt +FN:16,::fmt +FN:93,conjure_oxide::utils::conjure::minion_solutions_to_json +FN:30,conjure_oxide::utils::conjure::parse_essence_file +FN:30,conjure_oxide::utils::conjure::parse_essence_file +FN:78,conjure_oxide::utils::conjure::get_minion_solutions::{closure#0} +FN:16,::fmt +FN:25,>::from +FN:78,conjure_oxide::utils::conjure::get_minion_solutions::{closure#0} +FN:25,>::from +FN:30,conjure_oxide::utils::conjure::parse_essence_file +FN:25,>::from +FN:66,conjure_oxide::utils::conjure::get_minion_solutions +FN:93,conjure_oxide::utils::conjure::minion_solutions_to_json +FN:93,conjure_oxide::utils::conjure::minion_solutions_to_json +FN:66,conjure_oxide::utils::conjure::get_minion_solutions +FN:66,conjure_oxide::utils::conjure::get_minion_solutions +FN:78,conjure_oxide::utils::conjure::get_minion_solutions::{closure#0} +FNDA:0,::fmt +FNDA:0,::fmt FNDA:1,conjure_oxide::utils::conjure::minion_solutions_to_json FNDA:0,conjure_oxide::utils::conjure::parse_essence_file -FNDA:0,conjure_oxide::utils::conjure::minion_solutions_to_json -FNDA:0,::fmt -FNDA:0,>::from -FNDA:0,conjure_oxide::utils::conjure::get_minion_solutions::{closure#0} -FNDA:0,conjure_oxide::utils::conjure::get_minion_solutions -FNDA:0,conjure_oxide::utils::conjure::get_minion_solutions FNDA:1,conjure_oxide::utils::conjure::parse_essence_file +FNDA:0,conjure_oxide::utils::conjure::get_minion_solutions::{closure#0} +FNDA:0,::fmt FNDA:0,>::from -FNDA:1,conjure_oxide::utils::conjure::get_minion_solutions FNDA:1,conjure_oxide::utils::conjure::get_minion_solutions::{closure#0} -FNDA:0,::fmt FNDA:0,>::from -FNDA:0,conjure_oxide::utils::conjure::minion_solutions_to_json FNDA:0,conjure_oxide::utils::conjure::parse_essence_file +FNDA:0,>::from +FNDA:1,conjure_oxide::utils::conjure::get_minion_solutions +FNDA:0,conjure_oxide::utils::conjure::minion_solutions_to_json +FNDA:0,conjure_oxide::utils::conjure::minion_solutions_to_json +FNDA:0,conjure_oxide::utils::conjure::get_minion_solutions +FNDA:0,conjure_oxide::utils::conjure::get_minion_solutions FNDA:0,conjure_oxide::utils::conjure::get_minion_solutions::{closure#0} -FNDA:0,::fmt FNF:18 FNH:4 BRF:0 BRH:0 -DA:15,0 -DA:24,0 +DA:16,0 DA:25,0 DA:26,0 -DA:29,36 -DA:30,36 -DA:31,36 -DA:32,36 -DA:33,36 -DA:34,36 -DA:35,36 -DA:37,36 -DA:38,0 -DA:41,36 -DA:42,0 +DA:27,0 +DA:30,45 +DA:31,45 +DA:32,45 +DA:33,45 +DA:34,45 +DA:35,45 +DA:36,45 +DA:37,45 +DA:38,45 +DA:39,45 +DA:40,45 +DA:42,45 DA:43,0 -DA:44,0 -DA:45,36 -DA:47,36 -DA:48,36 +DA:46,45 +DA:47,0 +DA:48,0 DA:49,0 -DA:50,0 -DA:51,0 -DA:52,0 -DA:53,0 -DA:57,36 -DA:58,36 -DA:59,36 -DA:61,36 -DA:62,36 -DA:63,36 -DA:64,36 -DA:65,36 -DA:67,36 -DA:68,36 -DA:69,36 -DA:70,36 -DA:71,36 -DA:72,140 -DA:73,140 -DA:74,140 -DA:75,140 -DA:76,140 -DA:79,36 -DA:80,36 -DA:81,36 -DA:83,36 -DA:84,36 -DA:85,176 -DA:86,140 -DA:87,520 -DA:88,380 -DA:89,380 -DA:90,0 -DA:92,380 -DA:94,140 -DA:96,36 -DA:97,36 -DA:98,36 -LF:59 -LH:45 +DA:50,45 +DA:52,45 +DA:53,45 +DA:54,0 +DA:55,0 +DA:56,0 +DA:57,0 +DA:58,0 +DA:62,45 +DA:63,45 +DA:64,45 +DA:66,45 +DA:67,45 +DA:68,45 +DA:69,45 +DA:70,45 +DA:72,45 +DA:73,45 +DA:74,45 +DA:75,45 +DA:76,45 +DA:77,45 +DA:78,175 +DA:79,175 +DA:80,175 +DA:81,175 +DA:82,175 +DA:83,45 +DA:84,45 +DA:85,45 +DA:86,45 +DA:87,45 +DA:88,45 +DA:89,45 +DA:90,45 +DA:91,45 +DA:93,45 +DA:94,45 +DA:95,220 +DA:96,175 +DA:97,650 +DA:98,475 +DA:99,475 +DA:100,0 +DA:102,475 +DA:104,175 +DA:106,45 +DA:107,45 +DA:108,45 +LF:70 +LH:56 end_of_record SF:solvers/chuffed/tests/dummy_test.rs FN:2,dummy_test::dummy @@ -471,54 +486,54 @@ LF:31 LH:31 end_of_record SF:crates/conjure_core/src/rule_engine/resolve_rules.rs +FN:45,conjure_core::rule_engine::resolve_rules::rule_sets_by_names +FN:70,conjure_core::rule_engine::resolve_rules::resolve_rule_sets +FN:90,conjure_core::rule_engine::resolve_rules::get_rule_priorities FN:70,conjure_core::rule_engine::resolve_rules::resolve_rule_sets FN:15,::fmt +FN:90,conjure_core::rule_engine::resolve_rules::get_rule_priorities FN:150,conjure_core::rule_engine::resolve_rules::get_rules_vec -FN:152,conjure_core::rule_engine::resolve_rules::get_rules_vec::{closure#0} +FN:29,conjure_core::rule_engine::resolve_rules::get_rule_set +FN:45,conjure_core::rule_engine::resolve_rules::rule_sets_by_names FN:150,conjure_core::rule_engine::resolve_rules::get_rules_vec -FN:90,conjure_core::rule_engine::resolve_rules::get_rule_priorities +FN:29,conjure_core::rule_engine::resolve_rules::get_rule_set FN:15,::fmt -FN:128,conjure_core::rule_engine::resolve_rules::rule_cmp -FN:152,conjure_core::rule_engine::resolve_rules::get_rules_vec::{closure#0} -FN:70,conjure_core::rule_engine::resolve_rules::resolve_rule_sets FN:70,conjure_core::rule_engine::resolve_rules::resolve_rule_sets +FN:150,conjure_core::rule_engine::resolve_rules::get_rules_vec FN:45,conjure_core::rule_engine::resolve_rules::rule_sets_by_names -FN:29,conjure_core::rule_engine::resolve_rules::get_rule_set -FN:15,::fmt -FN:29,conjure_core::rule_engine::resolve_rules::get_rule_set FN:90,conjure_core::rule_engine::resolve_rules::get_rule_priorities FN:128,conjure_core::rule_engine::resolve_rules::rule_cmp -FN:45,conjure_core::rule_engine::resolve_rules::rule_sets_by_names -FN:45,conjure_core::rule_engine::resolve_rules::rule_sets_by_names +FN:128,conjure_core::rule_engine::resolve_rules::rule_cmp +FN:128,conjure_core::rule_engine::resolve_rules::rule_cmp +FN:152,conjure_core::rule_engine::resolve_rules::get_rules_vec::{closure#0} +FN:15,::fmt +FN:152,conjure_core::rule_engine::resolve_rules::get_rules_vec::{closure#0} FN:29,conjure_core::rule_engine::resolve_rules::get_rule_set FN:152,conjure_core::rule_engine::resolve_rules::get_rules_vec::{closure#0} -FN:90,conjure_core::rule_engine::resolve_rules::get_rule_priorities -FN:128,conjure_core::rule_engine::resolve_rules::rule_cmp -FN:150,conjure_core::rule_engine::resolve_rules::get_rules_vec +FNDA:1,conjure_core::rule_engine::resolve_rules::rule_sets_by_names FNDA:0,conjure_core::rule_engine::resolve_rules::resolve_rule_sets +FNDA:0,conjure_core::rule_engine::resolve_rules::get_rule_priorities +FNDA:1,conjure_core::rule_engine::resolve_rules::resolve_rule_sets FNDA:0,::fmt +FNDA:1,conjure_core::rule_engine::resolve_rules::get_rule_priorities FNDA:0,conjure_core::rule_engine::resolve_rules::get_rules_vec -FNDA:0,conjure_core::rule_engine::resolve_rules::get_rules_vec::{closure#0} +FNDA:0,conjure_core::rule_engine::resolve_rules::get_rule_set +FNDA:0,conjure_core::rule_engine::resolve_rules::rule_sets_by_names FNDA:0,conjure_core::rule_engine::resolve_rules::get_rules_vec -FNDA:0,conjure_core::rule_engine::resolve_rules::get_rule_priorities +FNDA:0,conjure_core::rule_engine::resolve_rules::get_rule_set FNDA:0,::fmt -FNDA:0,conjure_core::rule_engine::resolve_rules::rule_cmp -FNDA:0,conjure_core::rule_engine::resolve_rules::get_rules_vec::{closure#0} FNDA:0,conjure_core::rule_engine::resolve_rules::resolve_rule_sets -FNDA:1,conjure_core::rule_engine::resolve_rules::resolve_rule_sets +FNDA:1,conjure_core::rule_engine::resolve_rules::get_rules_vec FNDA:0,conjure_core::rule_engine::resolve_rules::rule_sets_by_names -FNDA:0,conjure_core::rule_engine::resolve_rules::get_rule_set -FNDA:0,::fmt -FNDA:0,conjure_core::rule_engine::resolve_rules::get_rule_set FNDA:0,conjure_core::rule_engine::resolve_rules::get_rule_priorities FNDA:0,conjure_core::rule_engine::resolve_rules::rule_cmp -FNDA:0,conjure_core::rule_engine::resolve_rules::rule_sets_by_names -FNDA:1,conjure_core::rule_engine::resolve_rules::rule_sets_by_names -FNDA:1,conjure_core::rule_engine::resolve_rules::get_rule_set -FNDA:1,conjure_core::rule_engine::resolve_rules::get_rules_vec::{closure#0} -FNDA:1,conjure_core::rule_engine::resolve_rules::get_rule_priorities FNDA:1,conjure_core::rule_engine::resolve_rules::rule_cmp -FNDA:1,conjure_core::rule_engine::resolve_rules::get_rules_vec +FNDA:0,conjure_core::rule_engine::resolve_rules::rule_cmp +FNDA:0,conjure_core::rule_engine::resolve_rules::get_rules_vec::{closure#0} +FNDA:0,::fmt +FNDA:1,conjure_core::rule_engine::resolve_rules::get_rules_vec::{closure#0} +FNDA:1,conjure_core::rule_engine::resolve_rules::get_rule_set +FNDA:0,conjure_core::rule_engine::resolve_rules::get_rules_vec::{closure#0} FNF:24 FNH:7 BRF:0 @@ -574,23 +589,23 @@ DA:109,4290 DA:110,4290 DA:112,165 DA:113,165 -DA:128,19305 -DA:129,19305 -DA:130,19305 -DA:131,19305 -DA:132,19305 -DA:133,19305 -DA:134,19305 -DA:135,19305 -DA:136,19305 -DA:137,17160 -DA:138,2145 -DA:139,2145 -DA:140,2145 -DA:141,19305 +DA:128,18855 +DA:129,18855 +DA:130,18855 +DA:131,18855 +DA:132,18855 +DA:133,18855 +DA:134,18855 +DA:135,18855 +DA:136,18855 +DA:137,16320 +DA:138,2535 +DA:139,2535 +DA:140,2535 +DA:141,18855 DA:150,165 DA:151,165 -DA:152,19305 +DA:152,18855 DA:153,165 DA:154,165 LF:70 @@ -598,47 +613,47 @@ LH:61 end_of_record SF:conjure_oxide/src/utils/json.rs FN:32,conjure_oxide::utils::json::sort_json_variables +FN:68,conjure_oxide::utils::json::sort_json_object::{closure#2} +FN:68,conjure_oxide::utils::json::sort_json_object::{closure#2} +FN:48,conjure_oxide::utils::json::sort_json_object +FN:53,conjure_oxide::utils::json::sort_json_object::{closure#0} FN:53,conjure_oxide::utils::json::sort_json_object::{closure#0} -FN:7,conjure_oxide::utils::json::json_value_cmp -FN:62,conjure_oxide::utils::json::sort_json_object::{closure#1} -FN:7,conjure_oxide::utils::json::json_value_cmp FN:32,conjure_oxide::utils::json::sort_json_variables FN:62,conjure_oxide::utils::json::sort_json_object::{closure#1} -FN:68,conjure_oxide::utils::json::sort_json_object::{closure#2} -FN:62,conjure_oxide::utils::json::sort_json_object::{closure#1} FN:7,conjure_oxide::utils::json::json_value_cmp -FN:53,conjure_oxide::utils::json::sort_json_object::{closure#0} -FN:48,conjure_oxide::utils::json::sort_json_object -FN:32,conjure_oxide::utils::json::sort_json_variables FN:48,conjure_oxide::utils::json::sort_json_object +FN:7,conjure_oxide::utils::json::json_value_cmp +FN:7,conjure_oxide::utils::json::json_value_cmp FN:68,conjure_oxide::utils::json::sort_json_object::{closure#2} +FN:62,conjure_oxide::utils::json::sort_json_object::{closure#1} +FN:62,conjure_oxide::utils::json::sort_json_object::{closure#1} FN:48,conjure_oxide::utils::json::sort_json_object -FN:68,conjure_oxide::utils::json::sort_json_object::{closure#2} +FN:32,conjure_oxide::utils::json::sort_json_variables FN:53,conjure_oxide::utils::json::sort_json_object::{closure#0} FNDA:0,conjure_oxide::utils::json::sort_json_variables +FNDA:1,conjure_oxide::utils::json::sort_json_object::{closure#2} +FNDA:0,conjure_oxide::utils::json::sort_json_object::{closure#2} +FNDA:0,conjure_oxide::utils::json::sort_json_object +FNDA:0,conjure_oxide::utils::json::sort_json_object::{closure#0} FNDA:0,conjure_oxide::utils::json::sort_json_object::{closure#0} +FNDA:0,conjure_oxide::utils::json::sort_json_variables +FNDA:0,conjure_oxide::utils::json::sort_json_object::{closure#1} FNDA:1,conjure_oxide::utils::json::json_value_cmp -FNDA:1,conjure_oxide::utils::json::sort_json_object::{closure#1} +FNDA:1,conjure_oxide::utils::json::sort_json_object +FNDA:0,conjure_oxide::utils::json::json_value_cmp FNDA:0,conjure_oxide::utils::json::json_value_cmp -FNDA:1,conjure_oxide::utils::json::sort_json_variables -FNDA:0,conjure_oxide::utils::json::sort_json_object::{closure#1} FNDA:0,conjure_oxide::utils::json::sort_json_object::{closure#2} FNDA:0,conjure_oxide::utils::json::sort_json_object::{closure#1} -FNDA:0,conjure_oxide::utils::json::json_value_cmp -FNDA:0,conjure_oxide::utils::json::sort_json_object::{closure#0} -FNDA:0,conjure_oxide::utils::json::sort_json_object -FNDA:0,conjure_oxide::utils::json::sort_json_variables +FNDA:1,conjure_oxide::utils::json::sort_json_object::{closure#1} FNDA:0,conjure_oxide::utils::json::sort_json_object -FNDA:1,conjure_oxide::utils::json::sort_json_object::{closure#2} -FNDA:1,conjure_oxide::utils::json::sort_json_object -FNDA:0,conjure_oxide::utils::json::sort_json_object::{closure#2} +FNDA:1,conjure_oxide::utils::json::sort_json_variables FNDA:1,conjure_oxide::utils::json::sort_json_object::{closure#0} FNF:18 FNH:6 BRF:0 BRH:0 -DA:7,468 -DA:8,468 +DA:7,615 +DA:8,615 DA:9,0 DA:10,0 DA:11,0 @@ -646,140 +661,140 @@ DA:12,0 DA:13,0 DA:14,0 DA:15,0 -DA:17,116 -DA:18,116 -DA:19,116 -DA:20,116 -DA:21,116 +DA:17,135 +DA:18,135 +DA:19,135 +DA:20,135 +DA:21,135 DA:22,0 DA:24,0 -DA:26,352 -DA:28,468 -DA:32,72 -DA:33,72 -DA:34,72 -DA:35,72 -DA:36,72 -DA:37,72 +DA:26,480 +DA:28,615 +DA:32,90 +DA:33,90 +DA:34,90 +DA:35,90 +DA:36,90 +DA:37,90 DA:39,0 -DA:41,72 -DA:48,7860 -DA:49,7860 -DA:50,3572 -DA:51,3572 -DA:52,3572 -DA:53,4196 -DA:54,4196 -DA:55,72 -DA:57,4124 -DA:59,4196 -DA:60,3572 -DA:61,3572 -DA:62,3572 -DA:63,3572 -DA:65,1428 -DA:66,1428 -DA:67,1428 -DA:68,3592 -DA:69,1428 -DA:70,1428 -DA:71,1428 -DA:72,72 -DA:73,1356 -DA:75,1428 -DA:77,2860 -DA:79,7860 +DA:41,90 +DA:48,10230 +DA:49,10230 +DA:50,4600 +DA:51,4600 +DA:52,4600 +DA:53,5560 +DA:54,5560 +DA:55,90 +DA:57,5470 +DA:59,5560 +DA:60,4600 +DA:61,4600 +DA:62,4600 +DA:63,4600 +DA:65,1875 +DA:66,1875 +DA:67,1875 +DA:68,4535 +DA:69,1875 +DA:70,1875 +DA:71,1875 +DA:72,90 +DA:73,1785 +DA:75,1875 +DA:77,3755 +DA:79,10230 LF:52 LH:42 end_of_record SF:crates/conjure_core/src/metadata.rs -FN:11,::default -FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FN:5,<::deserialize::__Field as serde::de::Deserialize>::deserialize::> -FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: -FN:11,::default FN:5,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FN:5,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FN:5,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::> -FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FN:17,::new +FN:5,<::deserialize::__Visitor as serde::de::Visitor>::expecting +FN:5,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::> FN:23,::fmt -FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: -FN:17,::new -FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> FN:5,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FN:5,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FN:5,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::> -FN:5,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::> +FN:11,::default +FN:5,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> FN:5,<::deserialize::__Field as serde::de::Deserialize>::deserialize::> +FN:11,::default +FN:11,::default FN:5,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> +FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting FN:5,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> -FN:5,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:17,::new FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FN:23,::fmt -FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FN:11,::default -FN:5,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FN:5,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::> +FN:5,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> FN:5,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FN:5,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: FN:5,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FN:23,::fmt -FN:5,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:5,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> +FN:5,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FN:23,::fmt +FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FN:5,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::> +FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FN:23,::fmt +FN:17,::new +FN:5,<::deserialize::__Field as serde::de::Deserialize>::deserialize::> +FN:5,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::> +FN:5,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::> +FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FN:5,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:17,::new +FN:17,::new +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting +FNDA:1,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::> +FNDA:0,::fmt +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> FNDA:0,::default -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: FNDA:0,::default -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::> +FNDA:0,::default +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FNDA:0,::new -FNDA:0,::fmt -FNDA:1,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: -FNDA:0,::new -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::> -FNDA:1,<::deserialize::__Field as serde::de::Deserialize>::deserialize::> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:1,::new FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FNDA:0,::fmt -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FNDA:0,::default -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FNDA:1,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::> +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FNDA:1,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FNDA:0,::fmt -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> +FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FNDA:0,::fmt +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FNDA:0,::fmt +FNDA:0,::new +FNDA:1,<::deserialize::__Field as serde::de::Deserialize>::deserialize::> +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::> +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:1,::new +FNDA:0,::new FNF:41 FNH:4 BRF:0 BRH:0 -DA:5,2416 +DA:5,3020 DA:11,0 DA:12,0 DA:13,0 @@ -856,682 +871,682 @@ LF:49 LH:7 end_of_record SF:crates/conjure_core/src/ast/expressions.rs -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:15,::uniplate::{closure#9} +FN:15,::uniplate::{closure#7} +FN:15,::uniplate::{closure#25} FN:15,::uniplate::{closure#19} -FN:15,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> -FN:15,::is_eq -FN:15,::is_lt -FN:15,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FN:15,::is_not -FN:15,::uniplate::{closure#21} -FN:15,::is_and -FN:15,::is_constant -FN:15,::uniplate::{closure#22} -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:15,::uniplate::{closure#18} -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:97,::bounds::{closure#0} -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FN:15,::uniplate::{closure#17} -FN:15,::is_eq -FN:15,::uniplate::{closure#4} -FN:15,::uniplate -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FN:15,::is_neq FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:15,::is_constant -FN:15,::uniplate::{closure#23} -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FN:15,::is_reference +FN:15,::uniplate::{closure#21} +FN:15,::is_sum_leq FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:15,::uniplate::{closure#24} FN:15,::is_or -FN:132,conjure_core::ast::expressions::display_expressions -FN:124,::bounds::{closure#3} -FN:15,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> -FN:15,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FN:15,::uniplate::{closure#24} -FN:15,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FN:123,::bounds::{closure#2} +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FN:15,::is_eq +FN:15,<::deserialize::__Visitor as serde::de::Visitor>::expecting FN:15,::is_sum_leq -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:15,::is_sum_geq +FN:15,::uniplate::{closure#12} +FN:15,::uniplate::{closure#26} +FN:95,::bounds FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FN:124,::bounds::{closure#3} FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:15,::uniplate::{closure#9} -FN:15,::is_sum_eq -FN:15,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FN:15,::is_ineq -FN:15,::uniplate::{closure#21} -FN:15,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FN:15,::uniplate::{closure#26} -FN:15,::uniplate::{closure#24} +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:97,::bounds::{closure#0} FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:15,::uniplate::{closure#11} -FN:15,::is_leq -FN:15,::uniplate::{closure#1} -FN:15,::is_not -FN:15,::is_nothing -FN:15,::is_or +FN:15,::uniplate::{closure#8} +FN:15,::uniplate::{closure#10} +FN:15,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FN:15,::uniplate::{closure#13} FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FN:15,::uniplate::{closure#15} +FN:15,::is_geq +FN:15,::is_all_diff +FN:15,::is_constant +FN:15,::uniplate::{closure#0} FN:15,::is_min -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:15,::uniplate::{closure#5} +FN:15,::is_sum +FN:15,::is_leq +FN:15,::is_all_diff +FN:15,::is_sum_geq FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FN:15,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> +FN:97,::bounds::{closure#0} +FN:15,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> +FN:15,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> +FN:15,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FN:15,::is_nothing FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> FN:15,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> -FN:15,::uniplate::{closure#11} -FN:15,::is_sum_eq -FN:15,::uniplate::{closure#22} -FN:15,::is_all_diff -FN:15,::is_gt FN:15,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FN:15,::uniplate::{closure#20} +FN:15,::is_and +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FN:15,::is_nothing +FN:15,::uniplate::{closure#22} +FN:97,::bounds::{closure#0} +FN:15,::is_sum_eq +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:15,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:15,::is_min FN:15,::uniplate::{closure#25} +FN:15,::uniplate::{closure#23} +FN:15,::uniplate::{closure#6} +FN:15,::uniplate::{closure#8} FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:15,::uniplate::{closure#1} -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FN:95,::bounds -FN:15,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: -FN:15,::uniplate::{closure#10} FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:15,::is_eq -FN:124,::bounds::{closure#3} -FN:15,::is_lt +FN:15,::uniplate::{closure#14} +FN:15,::uniplate::{closure#16} +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:15,::is_lt +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FN:15,::uniplate +FN:15,::is_constant +FN:15,::is_gt +FN:15,::is_or +FN:15,::uniplate::{closure#18} FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:15,::is_sum_eq FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:15,::uniplate::{closure#15} +FN:15,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FN:15,::uniplate::{closure#18} FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:15,::is_gt +FN:15,::uniplate::{closure#5} +FN:15,::uniplate::{closure#3} +FN:15,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:15,::is_eq +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:15,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FN:95,::bounds +FN:15,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FN:15,::uniplate FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FN:15,::is_and +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FN:123,::bounds::{closure#2} +FN:132,conjure_core::ast::expressions::display_expressions +FN:15,::uniplate::{closure#24} +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FN:15,::uniplate::{closure#1} +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:15,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FN:15,::uniplate::{closure#14} +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FN:15,::uniplate::{closure#8} FN:15,::uniplate::{closure#15} +FN:15,::uniplate::{closure#17} FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:15,::is_constant -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:123,::bounds::{closure#2} +FN:15,::is_reference FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:15,::is_sum +FN:15,::is_all_diff +FN:15,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:15,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FN:120,::bounds::{closure#1} +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:15,::uniplate::{closure#20} FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FN:15,::uniplate::{closure#26} +FN:15,::is_min +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FN:124,::bounds::{closure#3} +FN:15,::is_not FN:15,::uniplate::{closure#2} +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:15,::is_all_diff -FN:15,::uniplate::{closure#12} -FN:138,conjure_core::ast::expressions::display_expressions::{closure#0} -FN:15,::uniplate::{closure#13} -FN:15,::is_gt +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:15,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:15,::uniplate::{closure#20} FN:152,::fmt -FN:15,::uniplate::{closure#14} -FN:15,::uniplate::{closure#12} +FN:15,::is_not +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:15,::uniplate::{closure#6} +FN:15,::uniplate::{closure#4} FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:152,::fmt +FN:15,::uniplate::{closure#19} +FN:15,::uniplate::{closure#2} +FN:15,::uniplate::{closure#21} +FN:15,::uniplate::{closure#23} +FN:15,::is_reference +FN:15,::uniplate::{closure#13} +FN:15,::uniplate::{closure#23} FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FN:15,::is_ineq FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FN:15,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FN:15,::is_reference +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:15,::is_sum_geq FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:15,::uniplate::{closure#25} -FN:15,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:120,::bounds::{closure#1} FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:15,::uniplate::{closure#14} -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:15,::uniplate::{closure#2} -FN:15,::uniplate::{closure#22} -FN:15,::uniplate::{closure#26} -FN:15,::is_all_diff -FN:15,::uniplate::{closure#16} -FN:15,::uniplate::{closure#18} -FN:15,::uniplate::{closure#7} -FN:15,::uniplate::{closure#21} -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:15,::is_leq -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:15,::uniplate::{closure#14} +FN:15,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FN:15,::uniplate::{closure#10} +FN:138,conjure_core::ast::expressions::display_expressions::{closure#0} FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FN:15,::is_geq -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:15,::uniplate::{closure#3} -FN:15,::uniplate::{closure#16} -FN:15,::uniplate::{closure#5} -FN:15,::uniplate::{closure#3} -FN:124,::bounds::{closure#3} -FN:15,::uniplate::{closure#19} +FN:15,::uniplate::{closure#10} FN:15,::uniplate::{closure#4} -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FN:15,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FN:15,<::deserialize::__Visitor as serde::de::Visitor>::expecting +FN:15,::uniplate::{closure#6} +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FN:15,::is_constant FN:138,conjure_core::ast::expressions::display_expressions::{closure#0} -FN:15,::uniplate::{closure#23} -FN:15,::uniplate::{closure#10} +FN:15,::is_leq +FN:15,::is_lt +FN:15,::uniplate::{closure#16} +FN:15,::is_geq FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:15,::is_sum_geq -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:15,::uniplate::{closure#20} -FN:15,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:15,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:15,::uniplate::{closure#1} -FN:15,::is_gt +FN:15,::is_lt FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FN:15,::is_sum_leq FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:15,::uniplate::{closure#21} FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:15,::uniplate::{closure#11} -FN:15,::uniplate::{closure#15} -FN:15,::uniplate::{closure#17} -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FN:15,::uniplate::{closure#4} -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FN:15,::is_and -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:15,::is_nothing +FN:138,conjure_core::ast::expressions::display_expressions::{closure#0} +FN:15,::is_gt FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:15,::uniplate::{closure#2} -FN:15,::uniplate::{closure#8} FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:15,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> +FN:15,::uniplate::{closure#3} FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:15,::is_leq +FN:15,::uniplate::{closure#24} +FN:15,::uniplate::{closure#26} FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:15,::uniplate::{closure#0} -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FN:15,::uniplate::{closure#24} +FN:15,::uniplate::{closure#26} +FN:15,::is_leq FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:15,::uniplate::{closure#16} -FN:120,::bounds::{closure#1} -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FN:15,::is_sum FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FN:15,::is_min -FN:15,::uniplate::{closure#7} -FN:15,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> -FN:15,::is_sum_leq -FN:15,::is_neq -FN:15,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:15,::uniplate -FN:15,::is_sum -FN:132,conjure_core::ast::expressions::display_expressions -FN:15,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: -FN:15,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FN:15,::uniplate::{closure#13} -FN:15,::uniplate::{closure#25} -FN:15,::uniplate::{closure#17} FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:15,::is_geq +FN:15,<::deserialize::__Visitor as serde::de::Visitor>::expecting FN:15,::uniplate::{closure#12} +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FN:15,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:15,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FN:15,::is_ineq FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:15,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:15,::uniplate::{closure#6} +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:15,::uniplate::{closure#14} -FN:120,::bounds::{closure#1} FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FN:15,::uniplate::{closure#11} FN:15,::uniplate::{closure#9} -FN:15,::is_or -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FN:138,conjure_core::ast::expressions::display_expressions::{closure#0} +FN:152,::fmt FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:152,::fmt -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FN:15,::uniplate::{closure#0} +FN:15,::uniplate::{closure#17} FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FN:15,::uniplate::{closure#15} +FN:15,::uniplate::{closure#4} +FN:15,::uniplate::{closure#11} +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:15,::uniplate::{closure#0} -FN:15,::is_not -FN:15,::uniplate::{closure#7} -FN:15,::uniplate::{closure#19} FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FN:15,::uniplate::{closure#22} +FN:132,conjure_core::ast::expressions::display_expressions +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FN:15,::uniplate::{closure#1} FN:15,::is_neq -FN:15,::is_sum_geq +FN:15,::uniplate::{closure#25} +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:15,::uniplate::{closure#20} -FN:15,::uniplate::{closure#8} -FN:15,::uniplate::{closure#6} -FN:15,::uniplate::{closure#8} +FN:15,::is_sum_eq FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FN:15,::is_geq -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FN:15,::uniplate::{closure#5} -FN:120,::bounds::{closure#1} -FN:15,::is_ineq FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FN:15,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FN:15,::uniplate -FN:15,::is_reference FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FN:15,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:15,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:15,::is_neq -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:15,::uniplate::{closure#10} -FN:15,::is_sum_eq -FN:15,::is_sum_leq -FN:97,::bounds::{closure#0} -FN:95,::bounds -FN:15,::uniplate::{closure#6} FN:15,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FN:123,::bounds::{closure#2} +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:15,::uniplate +FN:15,::is_ineq +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:124,::bounds::{closure#3} +FN:15,::uniplate::{closure#18} +FN:15,::uniplate::{closure#16} FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:15,::is_sum -FN:15,::is_reference +FN:15,::is_and FN:15,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> -FN:97,::bounds::{closure#0} -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FN:15,::uniplate::{closure#18} -FN:15,::is_lt -FN:15,::is_sum_geq +FN:15,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FN:15,::is_nothing -FN:15,::uniplate::{closure#9} +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:120,::bounds::{closure#1} +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:15,::uniplate::{closure#17} +FN:15,::uniplate::{closure#1} +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting FN:15,::uniplate::{closure#3} -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> FN:15,::uniplate::{closure#5} +FN:15,::uniplate::{closure#0} +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:95,::bounds -FN:132,conjure_core::ast::expressions::display_expressions FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:15,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FN:15,::is_geq +FN:15,::is_eq +FN:15,::is_ineq FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FN:15,::uniplate::{closure#0} -FN:15,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FN:123,::bounds::{closure#2} -FN:15,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FN:15,::uniplate::{closure#23} +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FN:15,::is_min +FN:15,::uniplate::{closure#11} +FN:15,::is_sum +FN:95,::bounds +FN:15,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> +FN:152,::fmt +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FN:15,::is_nothing FN:15,::uniplate::{closure#13} -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:15,::is_neq +FN:15,::uniplate::{closure#7} FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:15,::is_and -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:15,::uniplate::{closure#12} FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FN:15,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: +FN:15,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FN:123,::bounds::{closure#2} FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FN:15,::is_or +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FN:15,::uniplate::{closure#2} +FN:15,::is_not +FN:15,::uniplate::{closure#19} +FN:132,conjure_core::ast::expressions::display_expressions +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FN:15,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FN:15,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: +FN:15,::uniplate::{closure#9} +FN:15,::uniplate::{closure#20} +FN:15,::uniplate::{closure#22} +FN:15,::uniplate::{closure#7} FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,::uniplate::{closure#9} +FNDA:0,::uniplate::{closure#7} +FNDA:1,::uniplate::{closure#25} FNDA:1,::uniplate::{closure#19} -FNDA:1,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> -FNDA:0,::is_eq -FNDA:0,::is_lt -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FNDA:0,::is_not -FNDA:0,::uniplate::{closure#21} -FNDA:0,::is_and -FNDA:1,::is_constant -FNDA:1,::uniplate::{closure#22} -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:0,::uniplate::{closure#18} -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:1,::bounds::{closure#0} -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FNDA:1,::uniplate::{closure#17} -FNDA:0,::is_eq -FNDA:0,::uniplate::{closure#4} -FNDA:1,::uniplate -FNDA:1,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FNDA:1,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:0,::is_constant -FNDA:0,::uniplate::{closure#23} +FNDA:0,::is_neq +FNDA:1,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FNDA:0,::is_reference +FNDA:0,::uniplate::{closure#21} +FNDA:0,::is_sum_leq FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:0,::uniplate::{closure#24} FNDA:0,::is_or -FNDA:0,conjure_core::ast::expressions::display_expressions -FNDA:0,::bounds::{closure#3} -FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FNDA:0,::uniplate::{closure#24} -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FNDA:1,::bounds::{closure#2} +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FNDA:0,::is_eq +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting FNDA:0,::is_sum_leq -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,::is_sum_geq +FNDA:0,::uniplate::{closure#12} +FNDA:0,::uniplate::{closure#26} +FNDA:1,::bounds FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FNDA:1,::bounds::{closure#3} FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:0,::uniplate::{closure#9} -FNDA:0,::is_sum_eq -FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FNDA:0,::is_ineq -FNDA:0,::uniplate::{closure#21} -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FNDA:1,::uniplate::{closure#26} -FNDA:1,::uniplate::{closure#24} +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:1,::bounds::{closure#0} FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:0,::uniplate::{closure#11} -FNDA:0,::is_leq -FNDA:0,::uniplate::{closure#1} -FNDA:0,::is_not -FNDA:0,::is_nothing -FNDA:0,::is_or +FNDA:0,::uniplate::{closure#8} +FNDA:0,::uniplate::{closure#10} +FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FNDA:0,::uniplate::{closure#13} FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FNDA:0,::uniplate::{closure#15} +FNDA:0,::is_geq +FNDA:0,::is_all_diff +FNDA:0,::is_constant +FNDA:0,::uniplate::{closure#0} FNDA:0,::is_min -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,::uniplate::{closure#5} +FNDA:0,::is_sum +FNDA:0,::is_leq +FNDA:0,::is_all_diff +FNDA:0,::is_sum_geq FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FNDA:1,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> +FNDA:0,::bounds::{closure#0} +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> +FNDA:1,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FNDA:0,::is_nothing FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:1,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> -FNDA:0,::uniplate::{closure#11} -FNDA:0,::is_sum_eq -FNDA:0,::uniplate::{closure#22} -FNDA:0,::is_all_diff -FNDA:0,::is_gt FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FNDA:1,::uniplate::{closure#20} +FNDA:0,::is_and +FNDA:1,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FNDA:0,::is_nothing +FNDA:0,::uniplate::{closure#22} +FNDA:0,::bounds::{closure#0} +FNDA:0,::is_sum_eq +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:0,::is_min FNDA:0,::uniplate::{closure#25} +FNDA:0,::uniplate::{closure#23} +FNDA:1,::uniplate::{closure#6} +FNDA:1,::uniplate::{closure#8} FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:0,::uniplate::{closure#1} -FNDA:1,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FNDA:0,::bounds -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: -FNDA:0,::uniplate::{closure#10} FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:0,::is_eq -FNDA:1,::bounds::{closure#3} -FNDA:0,::is_lt +FNDA:0,::uniplate::{closure#14} +FNDA:0,::uniplate::{closure#16} +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,::is_lt +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FNDA:0,::uniplate +FNDA:1,::is_constant +FNDA:0,::is_gt +FNDA:0,::is_or +FNDA:0,::uniplate::{closure#18} FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,::is_sum_eq FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:0,::uniplate::{closure#15} +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FNDA:0,::uniplate::{closure#18} FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,::is_gt +FNDA:0,::uniplate::{closure#5} +FNDA:0,::uniplate::{closure#3} +FNDA:1,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,::is_eq +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FNDA:0,::bounds +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FNDA:1,::uniplate FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FNDA:0,::is_and +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FNDA:0,::bounds::{closure#2} +FNDA:0,conjure_core::ast::expressions::display_expressions +FNDA:0,::uniplate::{closure#24} +FNDA:1,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FNDA:0,::uniplate::{closure#1} +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FNDA:0,::uniplate::{closure#14} +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FNDA:0,::uniplate::{closure#8} FNDA:0,::uniplate::{closure#15} +FNDA:0,::uniplate::{closure#17} FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:0,::is_constant -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:1,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FNDA:0,::bounds::{closure#2} +FNDA:0,::is_reference +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:0,::is_sum +FNDA:0,::is_all_diff +FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FNDA:0,::bounds::{closure#1} +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:0,::uniplate::{closure#20} FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FNDA:0,::uniplate::{closure#26} +FNDA:0,::is_min +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FNDA:0,::bounds::{closure#3} +FNDA:0,::is_not FNDA:0,::uniplate::{closure#2} +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:0,::is_all_diff -FNDA:0,::uniplate::{closure#12} -FNDA:0,conjure_core::ast::expressions::display_expressions::{closure#0} -FNDA:0,::uniplate::{closure#13} -FNDA:0,::is_gt +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,::uniplate::{closure#20} FNDA:0,::fmt -FNDA:0,::uniplate::{closure#14} -FNDA:0,::uniplate::{closure#12} +FNDA:0,::is_not +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,::uniplate::{closure#6} +FNDA:0,::uniplate::{closure#4} FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:0,::fmt +FNDA:0,::uniplate::{closure#19} +FNDA:0,::uniplate::{closure#2} +FNDA:0,::uniplate::{closure#21} +FNDA:0,::uniplate::{closure#23} +FNDA:0,::is_reference +FNDA:0,::uniplate::{closure#13} +FNDA:1,::uniplate::{closure#23} FNDA:1,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FNDA:0,::is_ineq FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FNDA:0,::is_reference +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,::is_sum_geq FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:0,::uniplate::{closure#25} -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,::bounds::{closure#1} FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting FNDA:0,::uniplate::{closure#14} +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FNDA:0,::uniplate::{closure#10} +FNDA:0,conjure_core::ast::expressions::display_expressions::{closure#0} FNDA:1,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FNDA:0,::uniplate::{closure#10} +FNDA:0,::uniplate::{closure#4} +FNDA:0,::uniplate::{closure#6} FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:0,::uniplate::{closure#2} -FNDA:0,::uniplate::{closure#22} -FNDA:0,::uniplate::{closure#26} -FNDA:0,::is_all_diff -FNDA:0,::uniplate::{closure#16} -FNDA:0,::uniplate::{closure#18} -FNDA:1,::uniplate::{closure#7} -FNDA:1,::uniplate::{closure#21} FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FNDA:0,::is_constant +FNDA:0,conjure_core::ast::expressions::display_expressions::{closure#0} FNDA:0,::is_leq -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:1,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FNDA:0,::is_lt +FNDA:0,::uniplate::{closure#16} FNDA:0,::is_geq FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:0,::uniplate::{closure#3} -FNDA:0,::uniplate::{closure#16} -FNDA:0,::uniplate::{closure#5} -FNDA:0,::uniplate::{closure#3} -FNDA:0,::bounds::{closure#3} -FNDA:0,::uniplate::{closure#19} -FNDA:0,::uniplate::{closure#4} -FNDA:1,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FNDA:0,conjure_core::ast::expressions::display_expressions::{closure#0} -FNDA:0,::uniplate::{closure#23} -FNDA:0,::uniplate::{closure#10} +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:0,::is_sum_geq FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:1,::uniplate::{closure#20} -FNDA:1,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> +FNDA:0,::is_lt FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:1,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> +FNDA:0,::is_sum_leq FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:0,::uniplate::{closure#1} +FNDA:1,::uniplate::{closure#21} +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,conjure_core::ast::expressions::display_expressions::{closure#0} FNDA:0,::is_gt +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,::uniplate::{closure#3} FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,::uniplate::{closure#24} +FNDA:0,::uniplate::{closure#26} FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:0,::uniplate::{closure#11} -FNDA:0,::uniplate::{closure#15} -FNDA:0,::uniplate::{closure#17} -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FNDA:0,::uniplate::{closure#4} -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FNDA:0,::is_and -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:1,::is_nothing -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:0,::uniplate::{closure#2} -FNDA:1,::uniplate::{closure#8} -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:1,::uniplate::{closure#24} +FNDA:1,::uniplate::{closure#26} FNDA:0,::is_leq -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:0,::uniplate::{closure#0} -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting FNDA:1,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:0,::uniplate::{closure#16} -FNDA:0,::bounds::{closure#1} -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FNDA:0,::is_sum FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting FNDA:1,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FNDA:0,::is_min -FNDA:0,::uniplate::{closure#7} -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> -FNDA:0,::is_sum_leq -FNDA:0,::is_neq -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:0,::uniplate -FNDA:0,::is_sum -FNDA:0,conjure_core::ast::expressions::display_expressions -FNDA:1,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FNDA:0,::uniplate::{closure#13} -FNDA:1,::uniplate::{closure#25} -FNDA:0,::uniplate::{closure#17} FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:0,::is_geq +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting FNDA:0,::uniplate::{closure#12} +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FNDA:0,::is_ineq FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:0,::uniplate::{closure#6} +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:0,::uniplate::{closure#14} -FNDA:0,::bounds::{closure#1} FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FNDA:0,::uniplate::{closure#11} FNDA:0,::uniplate::{closure#9} -FNDA:0,::is_or -FNDA:1,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FNDA:0,conjure_core::ast::expressions::display_expressions::{closure#0} +FNDA:0,::fmt FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:0,::fmt -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FNDA:0,::uniplate::{closure#0} +FNDA:1,::uniplate::{closure#17} FNDA:1,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FNDA:0,::uniplate::{closure#15} +FNDA:0,::uniplate::{closure#4} +FNDA:0,::uniplate::{closure#11} +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:0,::uniplate::{closure#0} -FNDA:0,::is_not -FNDA:0,::uniplate::{closure#7} -FNDA:0,::uniplate::{closure#19} FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FNDA:1,::uniplate::{closure#22} +FNDA:0,conjure_core::ast::expressions::display_expressions +FNDA:1,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FNDA:0,::uniplate::{closure#1} FNDA:0,::is_neq -FNDA:0,::is_sum_geq +FNDA:0,::uniplate::{closure#25} +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:0,::uniplate::{closure#20} -FNDA:0,::uniplate::{closure#8} -FNDA:0,::uniplate::{closure#6} -FNDA:0,::uniplate::{closure#8} +FNDA:0,::is_sum_eq FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FNDA:0,::is_geq -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FNDA:0,::uniplate::{closure#5} -FNDA:1,::bounds::{closure#1} -FNDA:0,::is_ineq FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FNDA:1,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FNDA:0,::uniplate -FNDA:0,::is_reference FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:0,::is_neq -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:0,::uniplate::{closure#10} -FNDA:0,::is_sum_eq -FNDA:0,::is_sum_leq -FNDA:0,::bounds::{closure#0} -FNDA:0,::bounds -FNDA:1,::uniplate::{closure#6} FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FNDA:0,::bounds::{closure#2} -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:0,::is_sum -FNDA:0,::is_reference -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> -FNDA:0,::bounds::{closure#0} -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,::uniplate +FNDA:0,::is_ineq FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,::bounds::{closure#3} FNDA:0,::uniplate::{closure#18} -FNDA:0,::is_lt -FNDA:0,::is_sum_geq -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FNDA:0,::is_nothing -FNDA:0,::uniplate::{closure#9} -FNDA:0,::uniplate::{closure#3} -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FNDA:0,::uniplate::{closure#5} -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:1,::bounds -FNDA:0,conjure_core::ast::expressions::display_expressions +FNDA:0,::uniplate::{closure#16} FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FNDA:0,::is_and +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> FNDA:1,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FNDA:0,::uniplate::{closure#0} -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FNDA:0,::bounds::{closure#2} -FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FNDA:1,::uniplate::{closure#23} -FNDA:0,::uniplate::{closure#13} +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FNDA:1,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:1,::bounds::{closure#1} FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:0,::is_and +FNDA:0,::uniplate::{closure#17} +FNDA:0,::uniplate::{closure#1} FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FNDA:0,::uniplate::{closure#3} +FNDA:0,::uniplate::{closure#5} +FNDA:0,::uniplate::{closure#0} +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FNDA:0,::is_geq +FNDA:0,::is_eq +FNDA:0,::is_ineq +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FNDA:1,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FNDA:0,::is_min +FNDA:0,::uniplate::{closure#11} +FNDA:0,::is_sum +FNDA:0,::bounds +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> +FNDA:0,::fmt +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FNDA:1,::is_nothing +FNDA:0,::uniplate::{closure#13} +FNDA:0,::is_neq +FNDA:0,::uniplate::{closure#7} +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FNDA:0,::uniplate::{closure#12} +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FNDA:1,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FNDA:1,::bounds::{closure#2} FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,::is_or +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FNDA:0,::uniplate::{closure#2} +FNDA:0,::is_not +FNDA:0,::uniplate::{closure#19} +FNDA:0,conjure_core::ast::expressions::display_expressions +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FNDA:1,<<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: +FNDA:0,::uniplate::{closure#9} +FNDA:0,::uniplate::{closure#20} +FNDA:0,::uniplate::{closure#22} +FNDA:1,::uniplate::{closure#7} FNF:338 FNH:38 BRF:0 @@ -2080,87 +2095,87 @@ LF:368 LH:160 end_of_record SF:crates/conjure_core/src/ast/variables.rs -FN:7,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> FN:7,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FN:7,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FN:7,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::> FN:7,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FN:7,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FN:7,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FN:13,::new -FN:13,::new -FN:19,::fmt +FN:7,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FN:7,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FN:7,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::> +FN:7,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> FN:7,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> FN:7,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FN:7,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> +FN:7,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:7,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: +FN:13,::new +FN:7,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> FN:7,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::> +FN:7,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> FN:7,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> FN:7,<::deserialize::__Field as serde::de::Deserialize>::deserialize::> -FN:7,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FN:7,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FN:7,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::> +FN:7,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FN:7,<::deserialize::__Visitor as serde::de::Visitor>::expecting +FN:13,::new +FN:19,::fmt FN:19,::fmt -FN:7,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FN:7,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::> -FN:7,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> FN:7,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:7,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:7,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FN:7,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FN:13,::new FN:7,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FN:7,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: -FN:7,<::deserialize::__Visitor as serde::de::Visitor>::expecting FN:19,::fmt -FN:7,<::deserialize::__Visitor as serde::de::Visitor>::expecting +FN:7,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::> FN:7,<::deserialize::__Field as serde::de::Deserialize>::deserialize::> -FN:7,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FN:7,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FN:7,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> FN:7,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: -FN:13,::new -FN:7,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> -FN:7,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:7,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> FN:7,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:7,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FN:7,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::> +FN:7,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FN:7,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FN:7,<::deserialize::__Visitor as serde::de::Visitor>::expecting FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FNDA:1,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::> FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::> +FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FNDA:0,::new -FNDA:0,::new -FNDA:0,::fmt +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:1,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: +FNDA:1,::new +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FNDA:1,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::> FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> FNDA:1,<::deserialize::__Field as serde::de::Deserialize>::deserialize::> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting +FNDA:0,::new +FNDA:0,::fmt FNDA:0,::fmt -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FNDA:0,::new FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting FNDA:0,::fmt -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::> FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FNDA:1,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: -FNDA:1,::new -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::> FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting FNF:38 FNH:4 BRF:0 BRH:0 -DA:7,328 +DA:7,410 DA:13,75 DA:14,75 DA:15,75 @@ -2290,35 +2305,35 @@ LF:73 LH:73 end_of_record SF:conjure_oxide/src/find_conjure.rs -FN:9,conjure_oxide::find_conjure::conjure_executable -FN:9,conjure_oxide::find_conjure::conjure_executable FN:25,conjure_oxide::find_conjure::conjure_executable::{closure#0} FN:9,conjure_oxide::find_conjure::conjure_executable +FN:9,conjure_oxide::find_conjure::conjure_executable FN:25,conjure_oxide::find_conjure::conjure_executable::{closure#0} FN:25,conjure_oxide::find_conjure::conjure_executable::{closure#0} -FNDA:0,conjure_oxide::find_conjure::conjure_executable -FNDA:1,conjure_oxide::find_conjure::conjure_executable +FN:9,conjure_oxide::find_conjure::conjure_executable FNDA:0,conjure_oxide::find_conjure::conjure_executable::{closure#0} FNDA:0,conjure_oxide::find_conjure::conjure_executable +FNDA:0,conjure_oxide::find_conjure::conjure_executable FNDA:0,conjure_oxide::find_conjure::conjure_executable::{closure#0} FNDA:0,conjure_oxide::find_conjure::conjure_executable::{closure#0} +FNDA:1,conjure_oxide::find_conjure::conjure_executable FNF:6 FNH:1 BRF:0 BRH:0 -DA:9,4 -DA:10,4 -DA:11,4 -DA:12,4 -DA:13,4 -DA:15,4 +DA:9,5 +DA:10,5 +DA:11,5 +DA:12,5 +DA:13,5 +DA:15,5 DA:16,0 -DA:17,4 -DA:18,4 -DA:19,4 -DA:20,4 -DA:21,4 -DA:22,4 +DA:17,5 +DA:18,5 +DA:19,5 +DA:20,5 +DA:21,5 +DA:22,5 DA:23,0 DA:24,0 DA:25,0 @@ -2328,13 +2343,13 @@ DA:28,0 DA:29,0 DA:30,0 DA:32,0 -DA:34,4 -DA:35,4 -DA:36,4 -DA:37,4 -DA:38,4 -DA:40,4 -DA:41,4 +DA:34,5 +DA:35,5 +DA:36,5 +DA:37,5 +DA:38,5 +DA:40,5 +DA:41,5 DA:42,0 DA:44,0 DA:45,0 @@ -2345,15 +2360,15 @@ DA:49,0 DA:50,0 DA:51,0 DA:53,0 -DA:55,4 +DA:55,5 DA:56,0 DA:57,0 DA:58,0 DA:59,0 DA:60,0 -DA:61,4 -DA:62,4 -DA:63,4 +DA:61,5 +DA:62,5 +DA:63,5 LF:48 LH:23 end_of_record @@ -2430,68 +2445,68 @@ LF:7 LH:0 end_of_record SF:crates/conjure_core/src/rule_engine/rule_set.rs -FN:154,::fmt -FN:29,::new -FN:114,::resolve_dependencies -FN:148,::hash::<_> -FN:159,::fmt::{closure#0} -FN:82,::with_dependencies -FN:148,::hash:: -FN:148,::hash:: -FN:114,::resolve_dependencies -FN:89,::resolve_rules FN:159,::fmt::{closure#0} -FN:29,::new +FN:65,::get_dependencies FN:82,::with_dependencies FN:154,::fmt FN:140,::eq -FN:140,::eq -FN:89,::resolve_rules -FN:159,::fmt::{closure#0} -FN:114,::resolve_dependencies +FN:65,::get_dependencies FN:47,::get_rules FN:65,::get_dependencies FN:89,::resolve_rules -FN:65,::get_dependencies -FN:29,::new -FN:65,::get_dependencies +FN:89,::resolve_rules +FN:114,::resolve_dependencies FN:47,::get_rules -FN:82,::with_dependencies +FN:47,::get_rules +FN:29,::new FN:140,::eq +FN:29,::new +FN:29,::new +FN:148,::hash:: +FN:114,::resolve_dependencies FN:154,::fmt -FN:47,::get_rules -FNDA:0,::fmt -FNDA:0,::new -FNDA:0,::resolve_dependencies -FNDA:0,::hash::<_> -FNDA:0,::fmt::{closure#0} -FNDA:0,::with_dependencies -FNDA:0,::hash:: -FNDA:1,::hash:: -FNDA:1,::resolve_dependencies -FNDA:0,::resolve_rules +FN:159,::fmt::{closure#0} +FN:148,::hash:: +FN:82,::with_dependencies +FN:148,::hash::<_> +FN:89,::resolve_rules +FN:82,::with_dependencies +FN:154,::fmt +FN:114,::resolve_dependencies +FN:159,::fmt::{closure#0} +FN:140,::eq FNDA:0,::fmt::{closure#0} -FNDA:0,::new +FNDA:0,::get_dependencies FNDA:0,::with_dependencies FNDA:0,::fmt FNDA:0,::eq -FNDA:1,::eq -FNDA:1,::resolve_rules -FNDA:0,::fmt::{closure#0} -FNDA:0,::resolve_dependencies -FNDA:1,::get_rules FNDA:1,::get_dependencies -FNDA:0,::resolve_rules -FNDA:0,::get_dependencies -FNDA:0,::new +FNDA:0,::get_rules FNDA:0,::get_dependencies +FNDA:0,::resolve_rules +FNDA:1,::resolve_rules +FNDA:1,::resolve_dependencies +FNDA:1,::get_rules FNDA:0,::get_rules -FNDA:1,::with_dependencies +FNDA:0,::new FNDA:0,::eq +FNDA:0,::new +FNDA:0,::new +FNDA:0,::hash:: +FNDA:0,::resolve_dependencies FNDA:0,::fmt -FNDA:0,::get_rules +FNDA:0,::fmt::{closure#0} +FNDA:1,::hash:: +FNDA:0,::with_dependencies +FNDA:0,::hash::<_> +FNDA:0,::resolve_rules +FNDA:1,::with_dependencies +FNDA:0,::fmt +FNDA:0,::resolve_dependencies +FNDA:0,::fmt::{closure#0} +FNDA:0,::eq FNF:30 -FNH:7 +FNH:6 BRF:0 BRH:0 DA:29,0 @@ -2567,9 +2582,9 @@ DA:129,45 DA:130,45 DA:135,135 DA:136,135 -DA:140,15 -DA:141,15 -DA:142,15 +DA:140,0 +DA:141,0 +DA:142,0 DA:148,945 DA:149,945 DA:150,945 @@ -2593,437 +2608,437 @@ DA:170,0 DA:171,0 DA:172,0 LF:98 -LH:61 +LH:58 end_of_record SF:crates/conjure_core/src/rules/base.rs -FN:28,conjure_core::rules::base::remove_nothings::remove_nothings -FN:349,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_AND::__typecheck::{closure#0} -FN:291,conjure_core::rules::base::remove_trivial_or -FN:483,conjure_core::rules::base::CONJURE_GEN_RULE_DISTRIBUTE_OR_OVER_AND::__typecheck::{closure#0} FN:425,conjure_core::rules::base::min_to_var -FN:189,conjure_core::rules::base::unwrap_nested_or -FN:188,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_OR::__typecheck::{closure#0} -FN:221,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck::{closure#0}::{closure#0} +FN:271,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck::{closure#0}::{closure#0} +FN:424,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck::{closure#0} FN:483,conjure_core::rules::base::CONJURE_GEN_RULE_DISTRIBUTE_OR_OVER_AND::__typecheck::{closure#0} -FN:291,conjure_core::rules::base::remove_trivial_or -FN:141,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck::{closure#0}::{closure#0} -FN:424,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck::{closure#0}::{closure#0} -FN:311,conjure_core::rules::base::remove_constants_from_or +FN:255,conjure_core::rules::base::remove_double_negation FN:389,conjure_core::rules::base::evaluate_constant_not +FN:424,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck +FN:255,conjure_core::rules::base::remove_double_negation +FN:142,conjure_core::rules::base::unwrap_sum FN:152,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_152_0 -FN:290,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_OR::__typecheck::{closure#0} -FN:271,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck::{closure#0} -FN:424,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck::{closure#0}::{closure#0} +FN:48,conjure_core::rules::base::remove_nothings::get_lhs_rhs +FN:141,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck::{closure#0} +FN:222,conjure_core::rules::base::unwrap_nested_and +FN:141,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck::{closure#0}::{closure#0} FN:385,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_385_0 -FN:389,conjure_core::rules::base::evaluate_constant_not +FN:271,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck FN:218,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_218_0 -FN:421,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_421_0 -FN:425,conjure_core::rules::base::min_to_var -FN:349,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_AND::__typecheck -FN:221,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck::{closure#0} -FN:86,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck -FN:87,conjure_core::rules::base::empty_to_nothing FN:484,conjure_core::rules::base::distribute_or_over_and -FN:290,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_OR::__typecheck::{closure#0}::{closure#0} -FN:485,conjure_core::rules::base::distribute_or_over_and::find_and +FN:421,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_421_0 FN:155,conjure_core::rules::base::CONJURE_GEN_RULE_FLATTEN_NESTED_SUM::__typecheck -FN:310,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_OR::__typecheck -FN:424,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck::{closure#0} -FN:86,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck::{closure#0} -FN:483,conjure_core::rules::base::CONJURE_GEN_RULE_DISTRIBUTE_OR_OVER_AND::__typecheck -FN:26,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_NOTHINGS::__typecheck -FN:156,conjure_core::rules::base::flatten_nested_sum -FN:109,conjure_core::rules::base::sum_constants -FN:86,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck -FN:310,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_OR::__typecheck::{closure#0}::{closure#0} -FN:108,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck::{closure#0} -FN:483,conjure_core::rules::base::CONJURE_GEN_RULE_DISTRIBUTE_OR_OVER_AND::__typecheck::{closure#0}::{closure#0} -FN:480,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_480_0 -FN:189,conjure_core::rules::base::unwrap_nested_or -FN:254,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck::{closure#0}::{closure#0} +FN:349,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_AND::__typecheck FN:290,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_OR::__typecheck::{closure#0}::{closure#0} -FN:290,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_OR::__typecheck::{closure#0} -FN:155,conjure_core::rules::base::CONJURE_GEN_RULE_FLATTEN_NESTED_SUM::__typecheck::{closure#0} +FN:271,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck::{closure#0} +FN:26,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_NOTHINGS::__typecheck::{closure#0}::{closure#0} FN:483,conjure_core::rules::base::CONJURE_GEN_RULE_DISTRIBUTE_OR_OVER_AND::__typecheck::{closure#0} -FN:108,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck -FN:86,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck::{closure#0} -FN:26,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_NOTHINGS::__typecheck -FN:424,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck::{closure#0}::{closure#0} -FN:389,conjure_core::rules::base::evaluate_constant_not +FN:26,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_NOTHINGS::__typecheck::{closure#0} FN:254,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck::{closure#0} -FN:15,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck -FN:221,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck -FN:310,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_OR::__typecheck::{closure#0} -FN:307,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_307_0 -FN:349,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_AND::__typecheck::{closure#0}::{closure#0} -FN:15,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck::{closure#0} FN:28,conjure_core::rules::base::remove_nothings::remove_nothings -FN:350,conjure_core::rules::base::remove_constants_from_and -FN:15,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck::{closure#0}::{closure#0} -FN:485,conjure_core::rules::base::distribute_or_over_and::find_and -FN:86,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck::{closure#0} -FN:108,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck::{closure#0}::{closure#0} -FN:222,conjure_core::rules::base::unwrap_nested_and -FN:27,conjure_core::rules::base::remove_nothings -FN:484,conjure_core::rules::base::distribute_or_over_and -FN:15,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck -FN:138,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_138_0 -FN:221,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck::{closure#0} -FN:15,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck -FN:388,conjure_core::rules::base::CONJURE_GEN_RULE_EVALUATE_CONSTANT_NOT::__typecheck::{closure#0}::{closure#0} -FN:271,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck -FN:26,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_NOTHINGS::__typecheck -FN:109,conjure_core::rules::base::sum_constants FN:310,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_OR::__typecheck::{closure#0} -FN:141,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck -FN:23,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_23_0 -FN:255,conjure_core::rules::base::remove_double_negation -FN:108,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck -FN:484,conjure_core::rules::base::distribute_or_over_and -FN:290,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_OR::__typecheck FN:222,conjure_core::rules::base::unwrap_nested_and -FN:155,conjure_core::rules::base::CONJURE_GEN_RULE_FLATTEN_NESTED_SUM::__typecheck::{closure#0}::{closure#0} +FN:26,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_NOTHINGS::__typecheck FN:86,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck::{closure#0}::{closure#0} -FN:310,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_OR::__typecheck::{closure#0}::{closure#0} +FN:424,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck::{closure#0}::{closure#0} +FN:480,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_480_0 +FN:141,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck::{closure#0}::{closure#0} +FN:310,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_OR::__typecheck +FN:388,conjure_core::rules::base::CONJURE_GEN_RULE_EVALUATE_CONSTANT_NOT::__typecheck::{closure#0} +FN:290,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_OR::__typecheck FN:221,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck::{closure#0}::{closure#0} -FN:349,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_AND::__typecheck -FN:255,conjure_core::rules::base::remove_double_negation -FN:188,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_OR::__typecheck::{closure#0}::{closure#0} -FN:424,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck::{closure#0} +FN:424,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck FN:310,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_OR::__typecheck::{closure#0}::{closure#0} -FN:271,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck::{closure#0}::{closure#0} -FN:189,conjure_core::rules::base::unwrap_nested_or -FN:26,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_NOTHINGS::__typecheck::{closure#0}::{closure#0} -FN:48,conjure_core::rules::base::remove_nothings::get_lhs_rhs -FN:86,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck::{closure#0}::{closure#0} +FN:188,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_OR::__typecheck +FN:28,conjure_core::rules::base::remove_nothings::remove_nothings +FN:307,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_307_0 +FN:188,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_OR::__typecheck +FN:271,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck::{closure#0} +FN:156,conjure_core::rules::base::flatten_nested_sum +FN:15,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck::{closure#0}::{closure#0} +FN:141,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck::{closure#0} FN:290,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_OR::__typecheck::{closure#0} +FN:108,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck +FN:109,conjure_core::rules::base::sum_constants +FN:349,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_AND::__typecheck::{closure#0} FN:155,conjure_core::rules::base::CONJURE_GEN_RULE_FLATTEN_NESTED_SUM::__typecheck +FN:27,conjure_core::rules::base::remove_nothings +FN:221,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck FN:349,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_AND::__typecheck::{closure#0}::{closure#0} -FN:311,conjure_core::rules::base::remove_constants_from_or -FN:142,conjure_core::rules::base::unwrap_sum -FN:425,conjure_core::rules::base::min_to_var -FN:108,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck::{closure#0} -FN:141,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck::{closure#0}::{closure#0} FN:254,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck::{closure#0} -FN:271,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck::{closure#0}::{closure#0} -FN:105,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_105_0 +FN:15,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck::{closure#0}::{closure#0} +FN:138,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_138_0 +FN:310,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_OR::__typecheck +FN:350,conjure_core::rules::base::remove_constants_from_and FN:388,conjure_core::rules::base::CONJURE_GEN_RULE_EVALUATE_CONSTANT_NOT::__typecheck -FN:346,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_346_0 -FN:349,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_AND::__typecheck -FN:483,conjure_core::rules::base::CONJURE_GEN_RULE_DISTRIBUTE_OR_OVER_AND::__typecheck::{closure#0}::{closure#0} -FN:254,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck::{closure#0}::{closure#0} -FN:271,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck::{closure#0} -FN:109,conjure_core::rules::base::sum_constants -FN:349,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_AND::__typecheck::{closure#0} -FN:271,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck::{closure#0}::{closure#0} -FN:222,conjure_core::rules::base::unwrap_nested_and -FN:86,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck::{closure#0}::{closure#0} -FN:287,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_287_0 +FN:388,conjure_core::rules::base::CONJURE_GEN_RULE_EVALUATE_CONSTANT_NOT::__typecheck::{closure#0}::{closure#0} +FN:424,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck::{closure#0}::{closure#0} +FN:188,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_OR::__typecheck::{closure#0}::{closure#0} +FN:87,conjure_core::rules::base::empty_to_nothing +FN:349,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_AND::__typecheck::{closure#0}::{closure#0} +FN:310,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_OR::__typecheck::{closure#0} +FN:485,conjure_core::rules::base::distribute_or_over_and::find_and +FN:23,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_23_0 +FN:254,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck +FN:155,conjure_core::rules::base::CONJURE_GEN_RULE_FLATTEN_NESTED_SUM::__typecheck::{closure#0} FN:272,conjure_core::rules::base::remove_trivial_and -FN:83,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_83_0 -FN:310,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_OR::__typecheck +FN:424,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck::{closure#0} +FN:485,conjure_core::rules::base::distribute_or_over_and::find_and +FN:15,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck +FN:311,conjure_core::rules::base::remove_constants_from_or +FN:108,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck::{closure#0}::{closure#0} +FN:156,conjure_core::rules::base::flatten_nested_sum FN:188,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_OR::__typecheck::{closure#0}::{closure#0} -FN:424,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck -FN:26,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_NOTHINGS::__typecheck::{closure#0}::{closure#0} -FN:251,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_251_0 -FN:108,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck::{closure#0} -FN:255,conjure_core::rules::base::remove_double_negation +FN:87,conjure_core::rules::base::empty_to_nothing +FN:15,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck::{closure#0} +FN:188,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_OR::__typecheck::{closure#0}::{closure#0} +FN:141,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck FN:141,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck::{closure#0}::{closure#0} -FN:272,conjure_core::rules::base::remove_trivial_and -FN:483,conjure_core::rules::base::CONJURE_GEN_RULE_DISTRIBUTE_OR_OVER_AND::__typecheck -FN:188,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_OR::__typecheck::{closure#0} -FN:27,conjure_core::rules::base::remove_nothings +FN:108,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck::{closure#0}::{closure#0} +FN:109,conjure_core::rules::base::sum_constants +FN:86,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck::{closure#0} +FN:291,conjure_core::rules::base::remove_trivial_or +FN:108,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck::{closure#0} +FN:349,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_AND::__typecheck +FN:424,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck::{closure#0} FN:188,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_OR::__typecheck -FN:86,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck +FN:48,conjure_core::rules::base::remove_nothings::get_lhs_rhs +FN:28,conjure_core::rules::base::remove_nothings::remove_nothings +FN:349,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_AND::__typecheck::{closure#0}::{closure#0} +FN:141,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck +FN:188,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_OR::__typecheck::{closure#0} +FN:221,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck::{closure#0}::{closure#0} +FN:483,conjure_core::rules::base::CONJURE_GEN_RULE_DISTRIBUTE_OR_OVER_AND::__typecheck::{closure#0} +FN:105,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_105_0 +FN:425,conjure_core::rules::base::min_to_var +FN:48,conjure_core::rules::base::remove_nothings::get_lhs_rhs +FN:346,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_346_0 +FN:108,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck::{closure#0} +FN:221,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck +FN:425,conjure_core::rules::base::min_to_var +FN:86,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck::{closure#0}::{closure#0} +FN:15,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck::{closure#0}::{closure#0} FN:290,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_OR::__typecheck +FN:188,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_OR::__typecheck::{closure#0} +FN:424,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck +FN:424,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck::{closure#0}::{closure#0} +FN:86,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck +FN:271,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck +FN:86,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck::{closure#0} +FN:188,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_OR::__typecheck::{closure#0} +FN:483,conjure_core::rules::base::CONJURE_GEN_RULE_DISTRIBUTE_OR_OVER_AND::__typecheck FN:26,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_NOTHINGS::__typecheck::{closure#0} -FN:254,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck::{closure#0}::{closure#0} -FN:290,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_OR::__typecheck::{closure#0}::{closure#0} -FN:141,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck -FN:254,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck::{closure#0} -FN:15,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck::{closure#0} -FN:15,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck::{closure#0} -FN:268,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_268_0 -FN:141,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck::{closure#0} -FN:108,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck +FN:86,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck +FN:272,conjure_core::rules::base::remove_trivial_and +FN:189,conjure_core::rules::base::unwrap_nested_or +FN:108,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck::{closure#0} +FN:483,conjure_core::rules::base::CONJURE_GEN_RULE_DISTRIBUTE_OR_OVER_AND::__typecheck +FN:291,conjure_core::rules::base::remove_trivial_or +FN:349,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_AND::__typecheck +FN:287,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_287_0 +FN:155,conjure_core::rules::base::CONJURE_GEN_RULE_FLATTEN_NESTED_SUM::__typecheck::{closure#0}::{closure#0} +FN:83,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_83_0 +FN:290,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_OR::__typecheck FN:310,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_OR::__typecheck::{closure#0} -FN:424,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck -FN:141,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck::{closure#0} -FN:424,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck -FN:221,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck::{closure#0} -FN:48,conjure_core::rules::base::remove_nothings::get_lhs_rhs -FN:310,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_OR::__typecheck +FN:155,conjure_core::rules::base::CONJURE_GEN_RULE_FLATTEN_NESTED_SUM::__typecheck::{closure#0}::{closure#0} +FN:251,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_251_0 +FN:271,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck::{closure#0}::{closure#0} +FN:26,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_NOTHINGS::__typecheck::{closure#0}::{closure#0} +FN:142,conjure_core::rules::base::unwrap_sum +FN:389,conjure_core::rules::base::evaluate_constant_not FN:311,conjure_core::rules::base::remove_constants_from_or -FN:272,conjure_core::rules::base::remove_trivial_and -FN:185,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_185_0 -FN:254,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck -FN:188,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_OR::__typecheck FN:388,conjure_core::rules::base::CONJURE_GEN_RULE_EVALUATE_CONSTANT_NOT::__typecheck -FN:26,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_NOTHINGS::__typecheck::{closure#0} -FN:388,conjure_core::rules::base::CONJURE_GEN_RULE_EVALUATE_CONSTANT_NOT::__typecheck::{closure#0}::{closure#0} -FN:291,conjure_core::rules::base::remove_trivial_or -FN:349,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_AND::__typecheck::{closure#0}::{closure#0} -FN:221,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck -FN:138,rust_out::main -FN:221,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck::{closure#0}::{closure#0} -FN:155,conjure_core::rules::base::CONJURE_GEN_RULE_FLATTEN_NESTED_SUM::__typecheck -FN:28,conjure_core::rules::base::remove_nothings::remove_nothings -FN:156,conjure_core::rules::base::flatten_nested_sum +FN:389,conjure_core::rules::base::evaluate_constant_not +FN:86,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck +FN:388,conjure_core::rules::base::CONJURE_GEN_RULE_EVALUATE_CONSTANT_NOT::__typecheck +FN:272,conjure_core::rules::base::remove_trivial_and +FN:310,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_OR::__typecheck::{closure#0}::{closure#0} +FN:290,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_OR::__typecheck::{closure#0}::{closure#0} +FN:108,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck +FN:310,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_OR::__typecheck +FN:255,conjure_core::rules::base::remove_double_negation +FN:268,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_268_0 +FN:290,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_OR::__typecheck::{closure#0}::{closure#0} +FN:484,conjure_core::rules::base::distribute_or_over_and +FN:27,conjure_core::rules::base::remove_nothings FN:350,conjure_core::rules::base::remove_constants_from_and -FN:87,conjure_core::rules::base::empty_to_nothing -FN:485,conjure_core::rules::base::distribute_or_over_and::find_and -FN:388,conjure_core::rules::base::CONJURE_GEN_RULE_EVALUATE_CONSTANT_NOT::__typecheck::{closure#0} -FN:155,conjure_core::rules::base::CONJURE_GEN_RULE_FLATTEN_NESTED_SUM::__typecheck::{closure#0} +FN:26,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_NOTHINGS::__typecheck FN:141,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck -FN:27,conjure_core::rules::base::remove_nothings +FN:349,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_AND::__typecheck::{closure#0} +FN:388,conjure_core::rules::base::CONJURE_GEN_RULE_EVALUATE_CONSTANT_NOT::__typecheck::{closure#0} FN:142,conjure_core::rules::base::unwrap_sum -FN:108,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck::{closure#0}::{closure#0} -FN:254,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck -FN:271,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck::{closure#0} +FN:155,conjure_core::rules::base::CONJURE_GEN_RULE_FLATTEN_NESTED_SUM::__typecheck::{closure#0} +FN:185,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_185_0 +FN:15,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck::{closure#0} +FN:483,conjure_core::rules::base::CONJURE_GEN_RULE_DISTRIBUTE_OR_OVER_AND::__typecheck +FN:290,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_OR::__typecheck::{closure#0} +FN:349,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_AND::__typecheck::{closure#0} +FN:350,conjure_core::rules::base::remove_constants_from_and FN:155,conjure_core::rules::base::CONJURE_GEN_RULE_FLATTEN_NESTED_SUM::__typecheck::{closure#0}::{closure#0} -FN:290,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_OR::__typecheck -FN:15,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck::{closure#0}::{closure#0} -FN:424,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck::{closure#0} -FN:388,conjure_core::rules::base::CONJURE_GEN_RULE_EVALUATE_CONSTANT_NOT::__typecheck FN:87,conjure_core::rules::base::empty_to_nothing -FN:108,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck::{closure#0}::{closure#0} -FN:188,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_OR::__typecheck::{closure#0}::{closure#0} -FN:388,conjure_core::rules::base::CONJURE_GEN_RULE_EVALUATE_CONSTANT_NOT::__typecheck::{closure#0} -FN:142,conjure_core::rules::base::unwrap_sum +FN:86,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck::{closure#0} +FN:138,rust_out::main +FN:15,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck::{closure#0} +FN:484,conjure_core::rules::base::distribute_or_over_and +FN:290,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_OR::__typecheck::{closure#0} +FN:27,conjure_core::rules::base::remove_nothings +FN:483,conjure_core::rules::base::CONJURE_GEN_RULE_DISTRIBUTE_OR_OVER_AND::__typecheck::{closure#0}::{closure#0} +FN:221,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck::{closure#0} +FN:222,conjure_core::rules::base::unwrap_nested_and +FN:155,conjure_core::rules::base::CONJURE_GEN_RULE_FLATTEN_NESTED_SUM::__typecheck +FN:254,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck::{closure#0}::{closure#0} +FN:485,conjure_core::rules::base::distribute_or_over_and::find_and FN:26,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_NOTHINGS::__typecheck::{closure#0} -FN:141,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck::{closure#0} +FN:254,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck +FN:221,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck::{closure#0} +FN:86,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck::{closure#0}::{closure#0} FN:156,conjure_core::rules::base::flatten_nested_sum -FN:271,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck -FN:388,conjure_core::rules::base::CONJURE_GEN_RULE_EVALUATE_CONSTANT_NOT::__typecheck::{closure#0} +FN:254,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck::{closure#0}::{closure#0} +FN:15,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck +FN:221,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck::{closure#0}::{closure#0} +FN:271,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck::{closure#0} FN:483,conjure_core::rules::base::CONJURE_GEN_RULE_DISTRIBUTE_OR_OVER_AND::__typecheck::{closure#0}::{closure#0} +FN:388,conjure_core::rules::base::CONJURE_GEN_RULE_EVALUATE_CONSTANT_NOT::__typecheck::{closure#0} +FN:189,conjure_core::rules::base::unwrap_nested_or +FN:108,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck +FN:15,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck +FN:109,conjure_core::rules::base::sum_constants +FN:310,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_OR::__typecheck::{closure#0}::{closure#0} +FN:108,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck::{closure#0}::{closure#0} +FN:26,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_NOTHINGS::__typecheck +FN:221,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck +FN:254,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck +FN:388,conjure_core::rules::base::CONJURE_GEN_RULE_EVALUATE_CONSTANT_NOT::__typecheck::{closure#0}::{closure#0} +FN:291,conjure_core::rules::base::remove_trivial_or FN:26,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_NOTHINGS::__typecheck::{closure#0}::{closure#0} -FN:350,conjure_core::rules::base::remove_constants_from_and -FN:188,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_OR::__typecheck::{closure#0} FN:155,conjure_core::rules::base::CONJURE_GEN_RULE_FLATTEN_NESTED_SUM::__typecheck::{closure#0} +FN:189,conjure_core::rules::base::unwrap_nested_or FN:388,conjure_core::rules::base::CONJURE_GEN_RULE_EVALUATE_CONSTANT_NOT::__typecheck::{closure#0}::{closure#0} -FN:349,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_AND::__typecheck::{closure#0} -FN:254,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck -FN:15,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck::{closure#0}::{closure#0} +FN:254,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck::{closure#0}::{closure#0} +FN:221,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck::{closure#0} +FN:311,conjure_core::rules::base::remove_constants_from_or +FN:271,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck::{closure#0}::{closure#0} +FN:254,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck::{closure#0} FN:271,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck -FN:188,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_OR::__typecheck -FN:155,conjure_core::rules::base::CONJURE_GEN_RULE_FLATTEN_NESTED_SUM::__typecheck::{closure#0}::{closure#0} -FN:221,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck -FN:48,conjure_core::rules::base::remove_nothings::get_lhs_rhs -FN:483,conjure_core::rules::base::CONJURE_GEN_RULE_DISTRIBUTE_OR_OVER_AND::__typecheck -FNDA:0,conjure_core::rules::base::remove_nothings::remove_nothings -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_AND::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::remove_trivial_or -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_DISTRIBUTE_OR_OVER_AND::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::min_to_var -FNDA:0,conjure_core::rules::base::unwrap_nested_or -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_OR::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck::{closure#0}::{closure#0} +FN:483,conjure_core::rules::base::CONJURE_GEN_RULE_DISTRIBUTE_OR_OVER_AND::__typecheck::{closure#0}::{closure#0} +FN:141,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck::{closure#0} +FNDA:1,conjure_core::rules::base::min_to_var +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck::{closure#0} FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_DISTRIBUTE_OR_OVER_AND::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::remove_trivial_or -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::base::remove_constants_from_or +FNDA:1,conjure_core::rules::base::remove_double_negation FNDA:0,conjure_core::rules::base::evaluate_constant_not +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck +FNDA:0,conjure_core::rules::base::remove_double_negation +FNDA:0,conjure_core::rules::base::unwrap_sum FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_152_0 -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_OR::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::remove_nothings::get_lhs_rhs +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::base::unwrap_nested_and +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck::{closure#0}::{closure#0} FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_385_0 -FNDA:0,conjure_core::rules::base::evaluate_constant_not +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_218_0 +FNDA:1,conjure_core::rules::base::distribute_or_over_and FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_421_0 -FNDA:1,conjure_core::rules::base::min_to_var +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_FLATTEN_NESTED_SUM::__typecheck FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_AND::__typecheck -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck -FNDA:1,conjure_core::rules::base::empty_to_nothing -FNDA:0,conjure_core::rules::base::distribute_or_over_and FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_OR::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::base::distribute_or_over_and::find_and -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_FLATTEN_NESTED_SUM::__typecheck -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_OR::__typecheck -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_DISTRIBUTE_OR_OVER_AND::__typecheck +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_NOTHINGS::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_DISTRIBUTE_OR_OVER_AND::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_NOTHINGS::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::base::remove_nothings::remove_nothings +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_OR::__typecheck::{closure#0} +FNDA:1,conjure_core::rules::base::unwrap_nested_and FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_NOTHINGS::__typecheck -FNDA:0,conjure_core::rules::base::flatten_nested_sum -FNDA:0,conjure_core::rules::base::sum_constants -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_OR::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_DISTRIBUTE_OR_OVER_AND::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck::{closure#0}::{closure#0} FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_480_0 -FNDA:0,conjure_core::rules::base::unwrap_nested_or -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_OR::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_OR::__typecheck +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_EVALUATE_CONSTANT_NOT::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_OR::__typecheck +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_OR::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_OR::__typecheck +FNDA:1,conjure_core::rules::base::remove_nothings::remove_nothings +FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_307_0 +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_OR::__typecheck +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::base::flatten_nested_sum +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck::{closure#0} FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_OR::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_FLATTEN_NESTED_SUM::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_DISTRIBUTE_OR_OVER_AND::__typecheck::{closure#0} FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_NOTHINGS::__typecheck -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck::{closure#0}::{closure#0} -FNDA:1,conjure_core::rules::base::evaluate_constant_not -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck +FNDA:0,conjure_core::rules::base::sum_constants +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_AND::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_FLATTEN_NESTED_SUM::__typecheck +FNDA:0,conjure_core::rules::base::remove_nothings FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_OR::__typecheck::{closure#0} -FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_307_0 FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_AND::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck::{closure#0} -FNDA:1,conjure_core::rules::base::remove_nothings::remove_nothings -FNDA:1,conjure_core::rules::base::remove_constants_from_and +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck::{closure#0} FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::base::distribute_or_over_and::find_and -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::base::unwrap_nested_and -FNDA:0,conjure_core::rules::base::remove_nothings -FNDA:1,conjure_core::rules::base::distribute_or_over_and -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_138_0 -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_OR::__typecheck +FNDA:1,conjure_core::rules::base::remove_constants_from_and +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_EVALUATE_CONSTANT_NOT::__typecheck FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_EVALUATE_CONSTANT_NOT::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_NOTHINGS::__typecheck -FNDA:0,conjure_core::rules::base::sum_constants +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_OR::__typecheck::{closure#0}::{closure#0} +FNDA:1,conjure_core::rules::base::empty_to_nothing +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_AND::__typecheck::{closure#0}::{closure#0} FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_OR::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck +FNDA:1,conjure_core::rules::base::distribute_or_over_and::find_and FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_23_0 -FNDA:1,conjure_core::rules::base::remove_double_negation -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck -FNDA:0,conjure_core::rules::base::distribute_or_over_and -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_OR::__typecheck -FNDA:1,conjure_core::rules::base::unwrap_nested_and -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_FLATTEN_NESTED_SUM::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_OR::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_AND::__typecheck -FNDA:0,conjure_core::rules::base::remove_double_negation +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_FLATTEN_NESTED_SUM::__typecheck::{closure#0} +FNDA:1,conjure_core::rules::base::remove_trivial_and +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::base::distribute_or_over_and::find_and +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck +FNDA:0,conjure_core::rules::base::remove_constants_from_or +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck::{closure#0}::{closure#0} +FNDA:1,conjure_core::rules::base::flatten_nested_sum FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_OR::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::empty_to_nothing +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_OR::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::sum_constants +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck::{closure#0} +FNDA:1,conjure_core::rules::base::remove_trivial_or +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_AND::__typecheck FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_OR::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck::{closure#0}::{closure#0} -FNDA:1,conjure_core::rules::base::unwrap_nested_or -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_NOTHINGS::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_OR::__typecheck FNDA:0,conjure_core::rules::base::remove_nothings::get_lhs_rhs -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_OR::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_FLATTEN_NESTED_SUM::__typecheck +FNDA:0,conjure_core::rules::base::remove_nothings::remove_nothings FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_AND::__typecheck::{closure#0}::{closure#0} -FNDA:1,conjure_core::rules::base::remove_constants_from_or -FNDA:0,conjure_core::rules::base::unwrap_sum -FNDA:0,conjure_core::rules::base::min_to_var -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_OR::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_DISTRIBUTE_OR_OVER_AND::__typecheck::{closure#0} FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_105_0 -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_EVALUATE_CONSTANT_NOT::__typecheck +FNDA:0,conjure_core::rules::base::min_to_var +FNDA:0,conjure_core::rules::base::remove_nothings::get_lhs_rhs FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_346_0 -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_AND::__typecheck -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_DISTRIBUTE_OR_OVER_AND::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck::{closure#0} -FNDA:1,conjure_core::rules::base::sum_constants -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_AND::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::base::unwrap_nested_and +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck +FNDA:0,conjure_core::rules::base::min_to_var FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck::{closure#0}::{closure#0} -FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_287_0 -FNDA:0,conjure_core::rules::base::remove_trivial_and -FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_83_0 -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_OR::__typecheck -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_OR::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_OR::__typecheck +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_OR::__typecheck::{closure#0} FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_NOTHINGS::__typecheck::{closure#0}::{closure#0} -FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_251_0 -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::remove_double_negation -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck::{closure#0}::{closure#0} -FNDA:1,conjure_core::rules::base::remove_trivial_and -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_DISTRIBUTE_OR_OVER_AND::__typecheck +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck::{closure#0} FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_OR::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::remove_nothings -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_OR::__typecheck +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_DISTRIBUTE_OR_OVER_AND::__typecheck +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_NOTHINGS::__typecheck::{closure#0} FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck +FNDA:0,conjure_core::rules::base::remove_trivial_and +FNDA:0,conjure_core::rules::base::unwrap_nested_or +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_DISTRIBUTE_OR_OVER_AND::__typecheck +FNDA:0,conjure_core::rules::base::remove_trivial_or +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_AND::__typecheck +FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_287_0 +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_FLATTEN_NESTED_SUM::__typecheck::{closure#0}::{closure#0} +FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_83_0 FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_OR::__typecheck -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_NOTHINGS::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_OR::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck::{closure#0} -FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_268_0 -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_OR::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::remove_nothings::get_lhs_rhs -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_OR::__typecheck +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_FLATTEN_NESTED_SUM::__typecheck::{closure#0}::{closure#0} +FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_251_0 +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_NOTHINGS::__typecheck::{closure#0}::{closure#0} +FNDA:1,conjure_core::rules::base::unwrap_sum +FNDA:1,conjure_core::rules::base::evaluate_constant_not FNDA:0,conjure_core::rules::base::remove_constants_from_or -FNDA:0,conjure_core::rules::base::remove_trivial_and -FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_185_0 -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_OR::__typecheck FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_EVALUATE_CONSTANT_NOT::__typecheck -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_NOTHINGS::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_EVALUATE_CONSTANT_NOT::__typecheck::{closure#0}::{closure#0} -FNDA:1,conjure_core::rules::base::remove_trivial_or -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_AND::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck -FNDA:1,rust_out::main -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_FLATTEN_NESTED_SUM::__typecheck -FNDA:0,conjure_core::rules::base::remove_nothings::remove_nothings -FNDA:0,conjure_core::rules::base::flatten_nested_sum +FNDA:0,conjure_core::rules::base::evaluate_constant_not +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_EVALUATE_CONSTANT_NOT::__typecheck +FNDA:0,conjure_core::rules::base::remove_trivial_and +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_OR::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_OR::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_OR::__typecheck +FNDA:0,conjure_core::rules::base::remove_double_negation +FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_268_0 +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_OR::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::distribute_or_over_and +FNDA:0,conjure_core::rules::base::remove_nothings FNDA:0,conjure_core::rules::base::remove_constants_from_and -FNDA:0,conjure_core::rules::base::empty_to_nothing -FNDA:1,conjure_core::rules::base::distribute_or_over_and::find_and +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_NOTHINGS::__typecheck +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_AND::__typecheck::{closure#0} FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_EVALUATE_CONSTANT_NOT::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::base::unwrap_sum FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_FLATTEN_NESTED_SUM::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck -FNDA:1,conjure_core::rules::base::remove_nothings -FNDA:1,conjure_core::rules::base::unwrap_sum -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck::{closure#0} +FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_base_rs_185_0 +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_DISTRIBUTE_OR_OVER_AND::__typecheck +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_OR::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_AND::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::base::remove_constants_from_and FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_FLATTEN_NESTED_SUM::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_OR::__typecheck -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_MIN_TO_VAR::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_EVALUATE_CONSTANT_NOT::__typecheck FNDA:0,conjure_core::rules::base::empty_to_nothing -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_OR::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_EVALUATE_CONSTANT_NOT::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::unwrap_sum +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck::{closure#0} +FNDA:1,rust_out::main +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::base::distribute_or_over_and +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_OR::__typecheck::{closure#0} +FNDA:1,conjure_core::rules::base::remove_nothings +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_DISTRIBUTE_OR_OVER_AND::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::base::unwrap_nested_and +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_FLATTEN_NESTED_SUM::__typecheck +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::distribute_or_over_and::find_and FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_NOTHINGS::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck::{closure#0} -FNDA:1,conjure_core::rules::base::flatten_nested_sum -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_EVALUATE_CONSTANT_NOT::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_EMPTY_TO_NOTHING::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::flatten_nested_sum +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck::{closure#0} FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_DISTRIBUTE_OR_OVER_AND::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_EVALUATE_CONSTANT_NOT::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::base::unwrap_nested_or +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck +FNDA:1,conjure_core::rules::base::sum_constants +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_OR::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SUM_CONSTANTS::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_NOTHINGS::__typecheck +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_EVALUATE_CONSTANT_NOT::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::remove_trivial_or FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_NOTHINGS::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::base::remove_constants_from_and -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_OR::__typecheck::{closure#0} FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_FLATTEN_NESTED_SUM::__typecheck::{closure#0} +FNDA:1,conjure_core::rules::base::unwrap_nested_or FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_EVALUATE_CONSTANT_NOT::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_CONSTANTS_FROM_AND::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_SET_BASE::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck::{closure#0} +FNDA:1,conjure_core::rules::base::remove_constants_from_or +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_DOUBLE_NEGATION::__typecheck::{closure#0} FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_REMOVE_TRIVIAL_AND::__typecheck -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_OR::__typecheck -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_FLATTEN_NESTED_SUM::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_NESTED_AND::__typecheck -FNDA:0,conjure_core::rules::base::remove_nothings::get_lhs_rhs -FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_DISTRIBUTE_OR_OVER_AND::__typecheck +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_DISTRIBUTE_OR_OVER_AND::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::base::CONJURE_GEN_RULE_UNWRAP_SUM::__typecheck::{closure#0} FNF:214 FNH:33 BRF:0 @@ -3385,366 +3400,417 @@ LF:353 LH:292 end_of_record SF:conjure_oxide/src/utils/testing.rs -FN:18,conjure_oxide::utils::testing::assert_eq_any_order::<_> -FN:51,conjure_oxide::utils::testing::save_model_json -FN:90,conjure_oxide::utils::testing::minion_solutions_from_json -FN:51,conjure_oxide::utils::testing::save_model_json -FN:75,conjure_oxide::utils::testing::read_model_json -FN:90,conjure_oxide::utils::testing::minion_solutions_from_json -FN:18,conjure_oxide::utils::testing::assert_eq_any_order::<_> -FN:128,conjure_oxide::utils::testing::save_minion_solutions_json -FN:39,conjure_oxide::utils::testing::serialise_model -FN:153,conjure_oxide::utils::testing::read_minion_solutions_json -FN:153,conjure_oxide::utils::testing::read_minion_solutions_json -FN:39,conjure_oxide::utils::testing::serialise_model -FN:153,conjure_oxide::utils::testing::read_minion_solutions_json -FN:39,conjure_oxide::utils::testing::serialise_model -FN:51,conjure_oxide::utils::testing::save_model_json -FN:75,conjure_oxide::utils::testing::read_model_json -FN:128,conjure_oxide::utils::testing::save_minion_solutions_json -FN:18,conjure_oxide::utils::testing::assert_eq_any_order::<_> -FN:75,conjure_oxide::utils::testing::read_model_json -FN:128,conjure_oxide::utils::testing::save_minion_solutions_json -FN:90,conjure_oxide::utils::testing::minion_solutions_from_json +FN:173,conjure_oxide::utils::testing::read_minion_solutions_json +FN:53,conjure_oxide::utils::testing::save_model_json +FN:41,conjure_oxide::utils::testing::serialise_model +FN:20,conjure_oxide::utils::testing::assert_eq_any_order::<_> +FN:77,conjure_oxide::utils::testing::save_stats_json +FN:20,conjure_oxide::utils::testing::assert_eq_any_order::<_> +FN:148,conjure_oxide::utils::testing::save_minion_solutions_json +FN:77,conjure_oxide::utils::testing::save_stats_json +FN:41,conjure_oxide::utils::testing::serialise_model +FN:20,conjure_oxide::utils::testing::assert_eq_any_order::<_> +FN:53,conjure_oxide::utils::testing::save_model_json +FN:110,conjure_oxide::utils::testing::minion_solutions_from_json +FN:148,conjure_oxide::utils::testing::save_minion_solutions_json +FN:110,conjure_oxide::utils::testing::minion_solutions_from_json +FN:173,conjure_oxide::utils::testing::read_minion_solutions_json +FN:77,conjure_oxide::utils::testing::save_stats_json +FN:95,conjure_oxide::utils::testing::read_model_json +FN:53,conjure_oxide::utils::testing::save_model_json +FN:95,conjure_oxide::utils::testing::read_model_json +FN:148,conjure_oxide::utils::testing::save_minion_solutions_json +FN:110,conjure_oxide::utils::testing::minion_solutions_from_json +FN:41,conjure_oxide::utils::testing::serialise_model +FN:95,conjure_oxide::utils::testing::read_model_json +FN:173,conjure_oxide::utils::testing::read_minion_solutions_json +FNDA:0,conjure_oxide::utils::testing::read_minion_solutions_json +FNDA:1,conjure_oxide::utils::testing::save_model_json +FNDA:0,conjure_oxide::utils::testing::serialise_model +FNDA:0,conjure_oxide::utils::testing::assert_eq_any_order::<_> +FNDA:0,conjure_oxide::utils::testing::save_stats_json +FNDA:0,conjure_oxide::utils::testing::assert_eq_any_order::<_> +FNDA:1,conjure_oxide::utils::testing::save_minion_solutions_json +FNDA:0,conjure_oxide::utils::testing::save_stats_json +FNDA:1,conjure_oxide::utils::testing::serialise_model FNDA:0,conjure_oxide::utils::testing::assert_eq_any_order::<_> FNDA:0,conjure_oxide::utils::testing::save_model_json FNDA:0,conjure_oxide::utils::testing::minion_solutions_from_json +FNDA:0,conjure_oxide::utils::testing::save_minion_solutions_json +FNDA:0,conjure_oxide::utils::testing::minion_solutions_from_json +FNDA:0,conjure_oxide::utils::testing::read_minion_solutions_json +FNDA:1,conjure_oxide::utils::testing::save_stats_json +FNDA:0,conjure_oxide::utils::testing::read_model_json FNDA:0,conjure_oxide::utils::testing::save_model_json FNDA:0,conjure_oxide::utils::testing::read_model_json -FNDA:0,conjure_oxide::utils::testing::minion_solutions_from_json -FNDA:0,conjure_oxide::utils::testing::assert_eq_any_order::<_> FNDA:0,conjure_oxide::utils::testing::save_minion_solutions_json +FNDA:0,conjure_oxide::utils::testing::minion_solutions_from_json FNDA:0,conjure_oxide::utils::testing::serialise_model -FNDA:0,conjure_oxide::utils::testing::read_minion_solutions_json -FNDA:0,conjure_oxide::utils::testing::read_minion_solutions_json -FNDA:1,conjure_oxide::utils::testing::serialise_model -FNDA:1,conjure_oxide::utils::testing::read_minion_solutions_json -FNDA:0,conjure_oxide::utils::testing::serialise_model -FNDA:1,conjure_oxide::utils::testing::save_model_json FNDA:1,conjure_oxide::utils::testing::read_model_json -FNDA:0,conjure_oxide::utils::testing::save_minion_solutions_json -FNDA:0,conjure_oxide::utils::testing::assert_eq_any_order::<_> -FNDA:0,conjure_oxide::utils::testing::read_model_json -FNDA:1,conjure_oxide::utils::testing::save_minion_solutions_json -FNDA:0,conjure_oxide::utils::testing::minion_solutions_from_json -FNF:21 -FNH:5 +FNDA:1,conjure_oxide::utils::testing::read_minion_solutions_json +FNF:24 +FNH:6 BRF:0 BRH:0 -DA:18,0 -DA:19,0 +DA:20,0 DA:21,0 -DA:22,0 DA:23,0 DA:24,0 DA:25,0 +DA:26,0 DA:27,0 -DA:28,0 DA:29,0 DA:30,0 DA:31,0 +DA:32,0 DA:33,0 -DA:34,0 DA:35,0 +DA:36,0 DA:37,0 -DA:39,72 -DA:43,72 -DA:46,72 -DA:48,72 -DA:49,72 -DA:51,72 -DA:52,72 -DA:53,72 -DA:54,72 -DA:55,72 -DA:56,72 -DA:57,72 -DA:58,72 -DA:60,72 -DA:61,72 -DA:62,72 -DA:63,72 -DA:65,72 -DA:66,0 -DA:67,0 +DA:39,0 +DA:41,90 +DA:45,90 +DA:48,90 +DA:50,90 +DA:51,90 +DA:53,90 +DA:54,90 +DA:55,90 +DA:56,90 +DA:57,90 +DA:58,90 +DA:59,90 +DA:60,90 +DA:62,90 +DA:63,90 +DA:64,90 +DA:65,90 +DA:67,90 DA:68,0 DA:69,0 -DA:70,72 -DA:72,72 -DA:73,72 -DA:75,72 -DA:76,72 -DA:77,72 -DA:78,72 -DA:79,72 -DA:80,72 -DA:81,72 -DA:82,72 -DA:83,72 -DA:85,72 -DA:87,72 -DA:88,72 -DA:90,0 -DA:91,0 -DA:92,0 -DA:93,0 -DA:95,0 -DA:96,0 -DA:97,0 -DA:99,0 -DA:101,0 -DA:102,0 -DA:103,0 -DA:104,0 -DA:105,0 -DA:107,0 -DA:108,0 -DA:109,0 +DA:70,0 +DA:71,0 +DA:72,90 +DA:74,90 +DA:75,90 +DA:77,45 +DA:78,45 +DA:79,45 +DA:80,45 +DA:81,45 +DA:82,45 +DA:83,45 +DA:84,45 +DA:87,45 +DA:89,45 +DA:90,45 +DA:92,45 +DA:93,45 +DA:95,90 +DA:96,90 +DA:97,90 +DA:98,90 +DA:99,90 +DA:100,90 +DA:101,90 +DA:102,90 +DA:103,90 +DA:105,90 +DA:107,90 +DA:108,90 DA:110,0 DA:111,0 DA:112,0 DA:113,0 DA:115,0 DA:116,0 +DA:117,0 DA:119,0 +DA:121,0 DA:122,0 +DA:123,0 +DA:124,0 DA:125,0 -DA:126,0 -DA:128,36 -DA:129,36 -DA:130,36 -DA:131,36 -DA:132,36 -DA:133,36 -DA:134,36 -DA:136,36 -DA:138,36 -DA:139,36 -DA:140,36 -DA:141,36 -DA:143,36 -DA:144,0 +DA:127,0 +DA:128,0 +DA:129,0 +DA:130,0 +DA:131,0 +DA:132,0 +DA:133,0 +DA:135,0 +DA:136,0 +DA:139,0 +DA:142,0 DA:145,0 DA:146,0 -DA:147,0 -DA:148,36 -DA:150,36 -DA:151,36 -DA:153,36 -DA:154,36 -DA:155,36 -DA:156,36 -DA:157,36 -DA:158,36 -DA:159,36 -DA:161,36 -DA:162,36 -DA:164,36 -DA:165,36 -LF:110 -LH:60 +DA:148,45 +DA:149,45 +DA:150,45 +DA:151,45 +DA:152,45 +DA:153,45 +DA:154,45 +DA:156,45 +DA:158,45 +DA:159,45 +DA:160,45 +DA:161,45 +DA:163,45 +DA:164,0 +DA:165,0 +DA:166,0 +DA:167,0 +DA:168,45 +DA:170,45 +DA:171,45 +DA:173,45 +DA:174,45 +DA:175,45 +DA:176,45 +DA:177,45 +DA:178,45 +DA:179,45 +DA:181,45 +DA:182,45 +DA:184,45 +DA:185,45 +LF:123 +LH:73 end_of_record SF:crates/conjure_core/src/solver/mod.rs -FN:235,>::get_family -FN:251,>::solve -FN:113,::fmt -FN:309,>::wall_time_s -FN:113,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> -FN:113,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FN:113,::clone -FN:113,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FN:113,::size_hint -FN:113,::from_str -FN:199,::init_solver +FN:117,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FN:244,>::new +FN:261,>::load_model +FN:117,::size_hint +FN:117,::next +FN:255,>::get_family FN:59,rust_out::main::_doctest_main_crates_conjure_core_src_solver_mod_rs_24_0::{closure#0} -FN:113,::fmt -FN:113,::nth -FN:225,>::new -FN:113,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FN:113,::fmt -FN:113,::next -FN:113,::nth -FN:199,<_ as conjure_core::solver::SolverAdaptor>::init_solver -FN:309,>::wall_time_s -FN:199,<_ as conjure_core::solver::SolverAdaptor>::init_solver -FN:305,>::stats -FN:113,::fmt -FN:113,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FN:113,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> -FN:113,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FN:241,>::load_model -FN:225,>::new -FN:113,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FN:113,::from_str -FN:113,::size_hint -FN:113,>::try_from -FN:277,>::solve_mut -FN:113,::fmt -FN:113,::len -FN:113,::fmt -FN:113,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FN:251,>::solve -FN:113,::next_back -FN:113,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FN:113,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> -FN:309,>::wall_time_s -FN:113,::next -FN:277,>::solve_mut -FN:235,>::get_family -FN:113,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FN:117,<::deserialize::__Visitor as serde::de::Visitor>::expecting +FN:364,::fmt +FN:117,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FN:117,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FN:272,>::solve +FN:117,::get +FN:117,::get +FN:305,>::solve_mut +FN:261,>::load_model +FN:357,>::wall_time_s +FN:340,>::stats +FN:255,>::get_family +FN:117,::fmt +FN:214,::add_adaptor_info_to_stats +FN:117,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FN:244,>::new +FN:117,>::try_from +FN:117,::next +FN:117,>::try_from +FN:117,::nth +FN:214,::add_adaptor_info_to_stats +FN:117,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> +FN:117,::len +FN:203,::init_solver +FN:340,>::stats +FN:203,::init_solver +FN:357,>::wall_time_s +FN:305,>::solve_mut +FN:117,::fmt +FN:261,>::load_model +FN:117,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FN:117,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FN:214,::add_adaptor_info_to_stats +FN:272,>::solve +FN:117,::len +FN:272,>::solve +FN:117,::clone +FN:117,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FN:117,::size_hint +FN:261,>::load_model +FN:117,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FN:117,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FN:117,::next +FN:117,::next_back +FN:117,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FN:117,::clone +FN:117,::fmt +FN:255,>::get_family +FN:214,<_ as conjure_core::solver::SolverAdaptor>::add_adaptor_info_to_stats +FN:117,::fmt +FN:117,::clone +FN:244,>::new +FN:117,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FN:117,::fmt +FN:340,>::stats +FN:209,<_ as conjure_core::solver::SolverAdaptor>::get_name +FN:117,::from_str +FN:244,>::new +FN:357,>::wall_time_s +FN:244,>::new +FN:345,>::save_stats_to_context +FN:117,::nth +FN:214,<_ as conjure_core::solver::SolverAdaptor>::add_adaptor_info_to_stats +FN:340,>::stats +FN:203,<_ as conjure_core::solver::SolverAdaptor>::init_solver +FN:364,::fmt +FN:117,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> +FN:261,>::load_model +FN:209,<_ as conjure_core::solver::SolverAdaptor>::get_name +FN:345,>::save_stats_to_context +FN:117,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FN:272,>::solve +FN:117,::get +FN:209,<_ as conjure_core::solver::SolverAdaptor>::get_name +FN:117,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FN:345,>::save_stats_to_context +FN:203,::init_solver +FN:117,::next_back +FN:117,::size_hint +FN:214,<_ as conjure_core::solver::SolverAdaptor>::add_adaptor_info_to_stats +FN:117,::len +FN:340,>::stats +FN:364,::fmt +FN:203,<_ as conjure_core::solver::SolverAdaptor>::init_solver FN:25,rust_out::main -FN:113,::nth -FN:113,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FN:316,::fmt -FN:316,::fmt -FN:251,>::solve -FN:113,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FN:113,::iter -FN:305,>::stats -FN:199,::init_solver -FN:113,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FN:113,::next -FN:225,>::new -FN:113,::from_str -FN:113,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FN:113,::len -FN:113,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FN:113,::clone -FN:241,>::load_model +FN:244,>::new +FN:117,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> +FN:117,::iter +FN:345,>::save_stats_to_context +FN:117,::from_str +FN:117,::iter +FN:117,<::deserialize::__Visitor as serde::de::Visitor>::expecting FN:25,rust_out::main::_doctest_main_crates_conjure_core_src_solver_mod_rs_24_0 -FN:241,>::load_model -FN:305,>::stats -FN:113,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FN:251,>::solve -FN:113,::clone -FN:113,>::try_from -FN:113,::iter -FN:113,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FN:113,::get -FN:113,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FN:241,>::load_model -FN:113,::len -FN:225,>::new -FN:251,>::solve -FN:251,>::solve -FN:225,>::new -FN:113,::next_back -FN:225,>::new -FN:113,::size_hint -FN:277,>::solve_mut -FN:199,<_ as conjure_core::solver::SolverAdaptor>::init_solver -FN:241,>::load_model -FN:113,::get -FN:113,::next_back -FN:235,>::get_family -FN:113,>::try_from -FN:113,::iter -FN:113,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FN:241,>::load_model -FN:113,::get -FN:316,::fmt -FN:199,::init_solver -FNDA:0,>::get_family -FNDA:1,>::solve -FNDA:0,::fmt -FNDA:0,>::wall_time_s -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FNDA:0,::clone -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FN:117,>::try_from +FN:117,::nth +FN:261,>::load_model +FN:117,::next_back +FN:117,::iter +FN:117,<::deserialize::__Visitor as serde::de::Visitor>::expecting +FN:117,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FN:272,>::solve +FN:345,>::save_stats_to_context +FN:117,::fmt +FN:117,::from_str +FN:203,<_ as conjure_core::solver::SolverAdaptor>::init_solver +FN:117,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FN:305,>::solve_mut +FN:272,>::solve +FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FNDA:0,>::new +FNDA:0,>::load_model FNDA:0,::size_hint -FNDA:0,::from_str -FNDA:1,::init_solver +FNDA:0,::next +FNDA:0,>::get_family FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_solver_mod_rs_24_0::{closure#0} -FNDA:0,::fmt -FNDA:0,::nth -FNDA:1,>::new FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FNDA:0,::fmt -FNDA:0,::next -FNDA:0,::nth -FNDA:0,<_ as conjure_core::solver::SolverAdaptor>::init_solver -FNDA:0,>::wall_time_s -FNDA:0,<_ as conjure_core::solver::SolverAdaptor>::init_solver -FNDA:0,>::stats -FNDA:0,::fmt -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FNDA:0,>::load_model -FNDA:1,>::new +FNDA:0,::fmt +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FNDA:0,::from_str -FNDA:0,::size_hint -FNDA:0,>::try_from -FNDA:0,>::solve_mut -FNDA:0,::fmt -FNDA:0,::len -FNDA:0,::fmt -FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> FNDA:1,>::solve -FNDA:0,::next_back -FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> -FNDA:0,>::wall_time_s -FNDA:0,::next +FNDA:0,::get +FNDA:0,::get FNDA:0,>::solve_mut +FNDA:1,>::load_model +FNDA:0,>::wall_time_s +FNDA:0,>::stats FNDA:0,>::get_family +FNDA:0,::fmt +FNDA:1,::add_adaptor_info_to_stats FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FNDA:1,rust_out::main +FNDA:0,>::new +FNDA:0,>::try_from +FNDA:0,::next +FNDA:0,>::try_from FNDA:0,::nth -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FNDA:0,::fmt -FNDA:0,::fmt -FNDA:0,>::solve -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FNDA:0,::iter -FNDA:0,>::stats +FNDA:0,::add_adaptor_info_to_stats +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> +FNDA:0,::len FNDA:1,::init_solver -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FNDA:0,::next -FNDA:0,>::new -FNDA:0,::from_str +FNDA:0,>::stats +FNDA:1,::init_solver +FNDA:0,>::wall_time_s +FNDA:0,>::solve_mut +FNDA:0,::fmt +FNDA:0,>::load_model FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FNDA:1,::add_adaptor_info_to_stats +FNDA:1,>::solve FNDA:0,::len -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FNDA:0,>::solve FNDA:0,::clone -FNDA:1,>::load_model -FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_solver_mod_rs_24_0 +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FNDA:0,::size_hint FNDA:0,>::load_model -FNDA:0,>::stats FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FNDA:0,>::solve +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FNDA:0,::next +FNDA:0,::next_back +FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> FNDA:0,::clone -FNDA:0,>::try_from -FNDA:0,::iter +FNDA:0,::fmt +FNDA:0,>::get_family +FNDA:0,<_ as conjure_core::solver::SolverAdaptor>::add_adaptor_info_to_stats +FNDA:0,::fmt +FNDA:0,::clone +FNDA:1,>::new FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FNDA:0,::get -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FNDA:0,>::load_model -FNDA:0,::len -FNDA:0,>::new -FNDA:0,>::solve -FNDA:0,>::solve +FNDA:0,::fmt +FNDA:1,>::stats +FNDA:0,<_ as conjure_core::solver::SolverAdaptor>::get_name +FNDA:0,::from_str FNDA:0,>::new -FNDA:0,::next_back -FNDA:0,>::new -FNDA:0,::size_hint -FNDA:0,>::solve_mut +FNDA:0,>::wall_time_s +FNDA:1,>::new +FNDA:0,>::save_stats_to_context +FNDA:0,::nth +FNDA:0,<_ as conjure_core::solver::SolverAdaptor>::add_adaptor_info_to_stats +FNDA:0,>::stats FNDA:0,<_ as conjure_core::solver::SolverAdaptor>::init_solver +FNDA:0,::fmt +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> FNDA:1,>::load_model +FNDA:0,<_ as conjure_core::solver::SolverAdaptor>::get_name +FNDA:1,>::save_stats_to_context +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FNDA:0,>::solve FNDA:0,::get +FNDA:0,<_ as conjure_core::solver::SolverAdaptor>::get_name +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FNDA:0,>::save_stats_to_context +FNDA:0,::init_solver FNDA:0,::next_back -FNDA:0,>::get_family +FNDA:0,::size_hint +FNDA:0,<_ as conjure_core::solver::SolverAdaptor>::add_adaptor_info_to_stats +FNDA:0,::len +FNDA:0,>::stats +FNDA:0,::fmt +FNDA:0,<_ as conjure_core::solver::SolverAdaptor>::init_solver +FNDA:1,rust_out::main +FNDA:0,>::new +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> +FNDA:0,::iter +FNDA:0,>::save_stats_to_context +FNDA:0,::from_str +FNDA:0,::iter +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting +FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_solver_mod_rs_24_0 FNDA:0,>::try_from +FNDA:0,::nth +FNDA:0,>::load_model +FNDA:0,::next_back FNDA:0,::iter +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FNDA:0,>::load_model -FNDA:0,::get -FNDA:0,::fmt -FNDA:0,::init_solver -FNF:99 -FNH:11 +FNDA:0,>::solve +FNDA:0,>::save_stats_to_context +FNDA:0,::fmt +FNDA:0,::from_str +FNDA:0,<_ as conjure_core::solver::SolverAdaptor>::init_solver +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FNDA:0,>::solve_mut +FNDA:0,>::solve +FNF:115 +FNH:15 BRF:0 BRH:0 DA:25,1 @@ -3790,218 +3856,253 @@ DA:64,1 DA:65,1 DA:66,1 DA:67,1 -DA:113,0 -DA:199,45 -DA:225,45 -DA:226,45 -DA:227,45 -DA:228,45 -DA:229,45 -DA:230,45 -DA:231,45 -DA:232,45 -DA:233,45 -DA:235,0 -DA:236,0 -DA:237,0 -DA:241,45 -DA:242,45 -DA:243,45 -DA:244,45 -DA:245,45 -DA:246,45 -DA:247,45 -DA:251,45 -DA:252,45 -DA:253,45 -DA:254,45 -DA:255,45 -DA:256,45 -DA:257,45 -DA:258,45 -DA:259,45 -DA:260,45 -DA:261,45 -DA:262,45 -DA:263,45 -DA:264,45 -DA:265,45 -DA:266,45 -DA:267,45 -DA:268,45 -DA:269,45 -DA:270,45 -DA:271,45 -DA:272,45 -DA:273,0 -DA:275,45 -DA:277,0 -DA:278,0 -DA:279,0 -DA:280,0 -DA:281,0 -DA:282,0 -DA:283,0 -DA:284,0 -DA:285,0 -DA:286,0 -DA:287,0 -DA:288,0 -DA:289,0 -DA:290,0 -DA:291,0 -DA:292,0 -DA:293,0 -DA:294,0 -DA:295,0 -DA:296,0 -DA:297,0 -DA:298,0 -DA:299,0 +DA:117,0 +DA:203,56 +DA:209,0 +DA:210,0 +DA:211,0 +DA:214,56 +DA:215,56 +DA:216,56 +DA:217,56 +DA:218,56 +DA:219,56 +DA:220,56 +DA:244,56 +DA:245,56 +DA:246,56 +DA:247,56 +DA:248,56 +DA:249,56 +DA:250,56 +DA:251,56 +DA:252,56 +DA:253,56 +DA:255,0 +DA:256,0 +DA:257,0 +DA:261,56 +DA:262,56 +DA:263,56 +DA:264,56 +DA:265,56 +DA:266,56 +DA:267,56 +DA:268,56 +DA:272,56 +DA:273,56 +DA:274,56 +DA:275,56 +DA:276,56 +DA:277,56 +DA:278,56 +DA:279,56 +DA:280,56 +DA:281,56 +DA:282,56 +DA:283,56 +DA:284,56 +DA:285,56 +DA:286,56 +DA:287,56 +DA:288,56 +DA:289,56 +DA:290,56 +DA:291,56 +DA:292,56 +DA:293,56 +DA:294,56 +DA:295,56 +DA:296,56 +DA:297,56 +DA:298,56 +DA:299,56 DA:301,0 +DA:303,56 DA:305,0 DA:306,0 DA:307,0 +DA:308,0 DA:309,0 DA:310,0 DA:311,0 +DA:312,0 +DA:313,0 +DA:314,0 +DA:315,0 DA:316,0 -LF:119 -LH:83 +DA:317,0 +DA:318,0 +DA:319,0 +DA:320,0 +DA:321,0 +DA:322,0 +DA:323,0 +DA:324,0 +DA:325,0 +DA:326,0 +DA:327,0 +DA:328,0 +DA:329,0 +DA:330,0 +DA:331,0 +DA:332,0 +DA:334,0 +DA:336,0 +DA:340,45 +DA:341,45 +DA:342,45 +DA:345,45 +DA:346,45 +DA:347,45 +DA:348,45 +DA:349,45 +DA:350,45 +DA:351,45 +DA:352,45 +DA:353,45 +DA:354,45 +DA:355,45 +DA:357,0 +DA:358,0 +DA:359,0 +DA:364,0 +LF:154 +LH:112 end_of_record SF:crates/conjure_core/src/solver/adaptors/sat_common.rs -FN:37,::from_conjure -FN:289,::fmt -FN:74,::get_variables -FN:37,::from_conjure -FN:205,::handle_not FN:141,::as_expression -FN:198,::handle_reference FN:234,::handle_flat_expression -FN:102,::add_variable -FN:29,::new -FN:249,::handle_and -FN:85,::get_index +FN:90,::get_name FN:289,::fmt FN:37,::from_conjure -FN:284,::default -FN:289,::fmt +FN:130,::add_expression +FN:85,::get_index +FN:102,::add_variable +FN:141,::as_expression +FN:117,::add_clause +FN:29,::new FN:74,::get_variables +FN:272,::handle_expression +FN:110,::has_variable:: FN:85,::get_index FN:90,::get_name -FN:154,::clause_to_expression +FN:198,::handle_reference +FN:198,::handle_reference +FN:315,::has_variable +FN:205,::handle_not +FN:218,::handle_or +FN:74,::get_variables +FN:249,::handle_and +FN:110,::has_variable:: +FN:315,::has_variable FN:284,::default -FN:130,::add_expression -FN:141,::as_expression -FN:186,::get_reference_index FN:205,::handle_not FN:154,::clause_to_expression -FN:130,::add_expression -FN:90,::get_name -FN:249,::handle_and +FN:186,::get_reference_index +FN:272,::handle_expression +FN:186,::get_reference_index +FN:37,::from_conjure +FN:186,::get_reference_index FN:117,::add_clause +FN:110,::has_variable::<_> +FN:154,::clause_to_expression +FN:234,::handle_flat_expression FN:321,<&conjure_core::ast::symbol_table::Name as conjure_core::solver::adaptors::sat_common::HasVariable>::has_variable FN:284,::default -FN:102,::add_variable -FN:234,::handle_flat_expression -FN:90,::get_name -FN:102,::add_variable +FN:289,::fmt +FN:130,::add_expression FN:249,::handle_and -FN:272,::handle_expression -FN:315,::has_variable +FN:205,::handle_not FN:218,::handle_or -FN:272,::handle_expression -FN:85,::get_index -FN:154,::clause_to_expression -FN:110,::has_variable:: -FN:186,::get_reference_index -FN:198,::handle_reference FN:29,::new FN:29,::new -FN:110,::has_variable:: -FN:117,::add_clause -FN:186,::get_reference_index FN:321,<&conjure_core::ast::symbol_table::Name as conjure_core::solver::adaptors::sat_common::HasVariable>::has_variable -FN:205,::handle_not -FN:315,::has_variable -FN:198,::handle_reference FN:141,::as_expression +FN:289,::fmt +FN:234,::handle_flat_expression +FN:102,::add_variable +FN:74,::get_variables FN:315,::has_variable +FN:198,::handle_reference +FN:117,::add_clause +FN:85,::get_index +FN:90,::get_name FN:321,<&conjure_core::ast::symbol_table::Name as conjure_core::solver::adaptors::sat_common::HasVariable>::has_variable -FN:218,::handle_or +FN:154,::clause_to_expression FN:272,::handle_expression -FN:234,::handle_flat_expression -FN:130,::add_expression FN:218,::handle_or -FN:74,::get_variables -FN:110,::has_variable::<_> -FN:117,::add_clause -FNDA:0,::from_conjure -FNDA:0,::fmt -FNDA:0,::get_variables -FNDA:0,::from_conjure -FNDA:0,::handle_not +FN:249,::handle_and +FN:130,::add_expression +FN:102,::add_variable +FN:37,::from_conjure +FN:284,::default FNDA:0,::as_expression -FNDA:0,::handle_reference FNDA:0,::handle_flat_expression -FNDA:0,::add_variable -FNDA:0,::new -FNDA:0,::handle_and -FNDA:0,::get_index +FNDA:0,::get_name FNDA:0,::fmt FNDA:0,::from_conjure -FNDA:0,::default -FNDA:0,::fmt +FNDA:0,::add_expression +FNDA:0,::get_index +FNDA:0,::add_variable +FNDA:0,::as_expression +FNDA:0,::add_clause +FNDA:0,::new FNDA:0,::get_variables +FNDA:0,::handle_expression +FNDA:0,::has_variable:: FNDA:0,::get_index FNDA:0,::get_name -FNDA:0,::clause_to_expression +FNDA:0,::handle_reference +FNDA:0,::handle_reference +FNDA:0,::has_variable +FNDA:0,::handle_not +FNDA:0,::handle_or +FNDA:0,::get_variables +FNDA:0,::handle_and +FNDA:0,::has_variable:: +FNDA:0,::has_variable FNDA:0,::default -FNDA:0,::add_expression -FNDA:0,::as_expression -FNDA:0,::get_reference_index FNDA:0,::handle_not FNDA:0,::clause_to_expression -FNDA:0,::add_expression -FNDA:0,::get_name -FNDA:0,::handle_and +FNDA:0,::get_reference_index +FNDA:0,::handle_expression +FNDA:0,::get_reference_index +FNDA:0,::from_conjure +FNDA:0,::get_reference_index FNDA:0,::add_clause +FNDA:0,::has_variable::<_> +FNDA:0,::clause_to_expression +FNDA:0,::handle_flat_expression FNDA:0,<&conjure_core::ast::symbol_table::Name as conjure_core::solver::adaptors::sat_common::HasVariable>::has_variable FNDA:0,::default -FNDA:0,::add_variable -FNDA:0,::handle_flat_expression -FNDA:0,::get_name -FNDA:0,::add_variable +FNDA:0,::fmt +FNDA:0,::add_expression FNDA:0,::handle_and -FNDA:0,::handle_expression -FNDA:0,::has_variable +FNDA:0,::handle_not FNDA:0,::handle_or -FNDA:0,::handle_expression -FNDA:0,::get_index -FNDA:0,::clause_to_expression -FNDA:0,::has_variable:: -FNDA:0,::get_reference_index -FNDA:0,::handle_reference FNDA:0,::new FNDA:0,::new -FNDA:0,::has_variable:: -FNDA:0,::add_clause -FNDA:0,::get_reference_index FNDA:0,<&conjure_core::ast::symbol_table::Name as conjure_core::solver::adaptors::sat_common::HasVariable>::has_variable -FNDA:0,::handle_not -FNDA:0,::has_variable -FNDA:0,::handle_reference FNDA:0,::as_expression +FNDA:0,::fmt +FNDA:0,::handle_flat_expression +FNDA:0,::add_variable +FNDA:0,::get_variables FNDA:0,::has_variable +FNDA:0,::handle_reference +FNDA:0,::add_clause +FNDA:0,::get_index +FNDA:0,::get_name FNDA:0,<&conjure_core::ast::symbol_table::Name as conjure_core::solver::adaptors::sat_common::HasVariable>::has_variable -FNDA:0,::handle_or +FNDA:0,::clause_to_expression FNDA:0,::handle_expression -FNDA:0,::handle_flat_expression -FNDA:0,::add_expression FNDA:0,::handle_or -FNDA:0,::get_variables -FNDA:0,::has_variable::<_> -FNDA:0,::add_clause +FNDA:0,::handle_and +FNDA:0,::add_expression +FNDA:0,::add_variable +FNDA:0,::from_conjure +FNDA:0,::default FNF:66 FNH:0 BRF:0 @@ -4168,191 +4269,193 @@ LF:158 LH:0 end_of_record SF:crates/conjure_core/src/model.rs -FN:12,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FN:47,::add_variable -FN:59,::set_constraints -FN:96,::default -FN:42,::get_domain -FN:96,::default -FN:12,<::serialize::__SerializeWith as serde::ser::Serialize>::serialize:: -FN:12,<<::deserialize::__Visitor as serde::de::Visitor>::visit_map::__DeserializeWith as serde::de::Deserialize>::deserialize::<_> -FN:88,::gensym -FN:42,::get_domain -FN:12,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: -FN:12,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::> -FN:12,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::> -FN:12,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_>::{closure#0} -FN:12,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:69,::set_context -FN:12,<<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::__DeserializeWith as serde::de::Deserialize>::deserialize::<_> -FN:23,::new -FN:12,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FN:12,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FN:12,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FN:69,::set_context -FN:12,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FN:43,::get_domain::{closure#0} -FN:81,::add_constraints -FN:12,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::>::{closure#0} -FN:12,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FN:12,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FN:12,<::deserialize::__Field as serde::de::Deserialize>::deserialize::> -FN:12,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_>::{closure#0} -FN:12,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::> -FN:12,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:12,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FN:12,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> -FN:12,<<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::__DeserializeWith as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> -FN:36,::update_domain -FN:43,::get_domain::{closure#0} -FN:12,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_>::{closure#0} -FN:51,::get_constraints_vec -FN:43,::get_domain::{closure#0} -FN:12,<::serialize::__SerializeWith as serde::ser::Serialize>::serialize:: -FN:12,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FN:12,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FN:88,::gensym -FN:12,<::deserialize::__Field as serde::de::Deserialize>::deserialize::> -FN:12,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::>::{closure#0} -FN:12,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FN:47,::add_variable -FN:51,::get_constraints_vec -FN:12,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FN:12,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FN:12,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FN:12,<<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::__DeserializeWith as serde::de::Deserialize>::deserialize::<_> -FN:12,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> -FN:12,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FN:47,::add_variable -FN:73,::add_constraint -FN:12,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: -FN:73,::add_constraint -FN:96,::default -FN:12,<::serialize::__SerializeWith as serde::ser::Serialize>::serialize::<_> -FN:51,::get_constraints_vec -FN:73,::add_constraint -FN:12,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> -FN:81,::add_constraints -FN:12,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FN:12,<<::deserialize::__Visitor as serde::de::Visitor>::visit_map::__DeserializeWith as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> -FN:12,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FN:88,::gensym -FN:23,::new -FN:69,::set_context -FN:12,<<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::__DeserializeWith as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> -FN:36,::update_domain -FN:36,::update_domain -FN:12,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FN:12,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> -FN:59,::set_constraints -FN:12,<::serialize::__SerializeWith as serde::ser::Serialize>::serialize::<_> -FN:81,::add_constraints -FN:12,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::> -FN:12,<<::deserialize::__Visitor as serde::de::Visitor>::visit_map::__DeserializeWith as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> -FN:59,::set_constraints -FN:12,<<::deserialize::__Visitor as serde::de::Visitor>::visit_map::__DeserializeWith as serde::de::Deserialize>::deserialize::<_> -FN:12,<::serialize::__SerializeWith as serde::ser::Serialize>::serialize::<_> -FN:42,::get_domain -FN:23,::new -FN:12,<<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::__DeserializeWith as serde::de::Deserialize>::deserialize::<_> -FN:12,<<::deserialize::__Visitor as serde::de::Visitor>::visit_map::__DeserializeWith as serde::de::Deserialize>::deserialize::<_> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FNDA:1,::add_variable -FNDA:0,::set_constraints -FNDA:0,::default -FNDA:0,::get_domain -FNDA:0,::default -FNDA:0,<::serialize::__SerializeWith as serde::ser::Serialize>::serialize:: -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_map::__DeserializeWith as serde::de::Deserialize>::deserialize::<_> -FNDA:0,::gensym -FNDA:0,::get_domain -FNDA:1,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: +FN:14,<::serialize::__SerializeWith as serde::ser::Serialize>::serialize::<_> +FN:14,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::> +FN:14,<::deserialize::__Visitor as serde::de::Visitor>::expecting +FN:14,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FN:14,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FN:55,::add_variable +FN:14,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FN:44,::update_domain +FN:14,<<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::__DeserializeWith as serde::de::Deserialize>::deserialize::<_> +FN:14,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::>::{closure#0} +FN:14,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FN:14,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::> +FN:40,::new_empty +FN:14,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:44,::update_domain +FN:14,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FN:14,<<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::__DeserializeWith as serde::de::Deserialize>::deserialize::<_> +FN:14,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: +FN:27,::new +FN:14,<::deserialize::__Field as serde::de::Deserialize>::deserialize::> +FN:50,::get_domain +FN:14,<::serialize::__SerializeWith as serde::ser::Serialize>::serialize::<_> +FN:14,<<::deserialize::__Visitor as serde::de::Visitor>::visit_map::__DeserializeWith as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> +FN:14,<<::deserialize::__Visitor as serde::de::Visitor>::visit_map::__DeserializeWith as serde::de::Deserialize>::deserialize::<_> +FN:14,::eq +FN:67,::set_constraints +FN:14,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FN:14,<<::deserialize::__Visitor as serde::de::Visitor>::visit_map::__DeserializeWith as serde::de::Deserialize>::deserialize::<_> +FN:50,::get_domain +FN:89,::add_constraints +FN:67,::set_constraints +FN:77,::set_context +FN:14,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> +FN:40,::new_empty +FN:81,::add_constraint +FN:51,::get_domain::{closure#0} +FN:14,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FN:14,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_>::{closure#0} +FN:77,::set_context +FN:51,::get_domain::{closure#0} +FN:81,::add_constraint +FN:27,::new +FN:14,<<::deserialize::__Visitor as serde::de::Visitor>::visit_map::__DeserializeWith as serde::de::Deserialize>::deserialize::<_> +FN:14,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_>::{closure#0} +FN:14,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::> +FN:51,::get_domain::{closure#0} +FN:14,<::serialize::__SerializeWith as serde::ser::Serialize>::serialize:: +FN:55,::add_variable +FN:14,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:14,<<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::__DeserializeWith as serde::de::Deserialize>::deserialize::<_> +FN:14,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::>::{closure#0} +FN:50,::get_domain +FN:14,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FN:14,::eq +FN:14,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FN:14,<<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::__DeserializeWith as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> +FN:96,::gensym +FN:14,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> +FN:67,::set_constraints +FN:14,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FN:14,<::deserialize::__Visitor as serde::de::Visitor>::expecting +FN:14,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FN:55,::add_variable +FN:14,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FN:81,::add_constraint +FN:27,::new +FN:96,::gensym +FN:89,::add_constraints +FN:14,<::serialize::__SerializeWith as serde::ser::Serialize>::serialize::<_> +FN:59,::get_constraints_vec +FN:14,<::deserialize::__Field as serde::de::Deserialize>::deserialize::> +FN:14,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FN:14,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::> +FN:14,<::deserialize::__Visitor as serde::de::Visitor>::expecting +FN:14,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> +FN:14,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: +FN:96,::gensym +FN:40,::new_empty +FN:14,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> +FN:14,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FN:14,<<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::__DeserializeWith as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> +FN:59,::get_constraints_vec +FN:44,::update_domain +FN:14,::eq +FN:14,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_>::{closure#0} +FN:14,<::serialize::__SerializeWith as serde::ser::Serialize>::serialize:: +FN:89,::add_constraints +FN:14,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FN:77,::set_context +FN:59,::get_constraints_vec +FN:14,<<::deserialize::__Visitor as serde::de::Visitor>::visit_map::__DeserializeWith as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> +FNDA:0,<::serialize::__SerializeWith as serde::ser::Serialize>::serialize::<_> FNDA:1,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_>::{closure#0} +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FNDA:0,::add_variable +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FNDA:0,::update_domain +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::__DeserializeWith as serde::de::Deserialize>::deserialize::<_> +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::>::{closure#0} +FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::> +FNDA:0,::new_empty FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:0,::set_context +FNDA:0,::update_domain +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::__DeserializeWith as serde::de::Deserialize>::deserialize::<_> +FNDA:1,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: FNDA:0,::new +FNDA:1,<::deserialize::__Field as serde::de::Deserialize>::deserialize::> +FNDA:0,::get_domain +FNDA:0,<::serialize::__SerializeWith as serde::ser::Serialize>::serialize::<_> +FNDA:1,<<::deserialize::__Visitor as serde::de::Visitor>::visit_map::__DeserializeWith as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_map::__DeserializeWith as serde::de::Deserialize>::deserialize::<_> +FNDA:0,::eq +FNDA:0,::set_constraints FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_map::__DeserializeWith as serde::de::Deserialize>::deserialize::<_> +FNDA:0,::get_domain +FNDA:1,::add_constraints +FNDA:0,::set_constraints FNDA:0,::set_context -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> +FNDA:1,::new_empty +FNDA:0,::add_constraint FNDA:0,::get_domain::{closure#0} -FNDA:1,::add_constraints -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::>::{closure#0} -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_>::{closure#0} -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::__DeserializeWith as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> -FNDA:1,::update_domain +FNDA:0,::set_context FNDA:0,::get_domain::{closure#0} +FNDA:0,::add_constraint +FNDA:1,::new +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_map::__DeserializeWith as serde::de::Deserialize>::deserialize::<_> FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_>::{closure#0} -FNDA:1,::get_constraints_vec +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::> FNDA:0,::get_domain::{closure#0} -FNDA:1,<::serialize::__SerializeWith as serde::ser::Serialize>::serialize:: -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FNDA:0,::gensym -FNDA:1,<::deserialize::__Field as serde::de::Deserialize>::deserialize::> +FNDA:0,<::serialize::__SerializeWith as serde::ser::Serialize>::serialize:: +FNDA:0,::add_variable +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::__DeserializeWith as serde::de::Deserialize>::deserialize::<_> FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::>::{closure#0} +FNDA:0,::get_domain +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FNDA:1,::eq FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FNDA:0,::add_variable -FNDA:0,::get_constraints_vec +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::__DeserializeWith as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> +FNDA:0,::gensym +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> +FNDA:1,::set_constraints +FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FNDA:1,::add_variable FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::__DeserializeWith as serde::de::Deserialize>::deserialize::<_> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FNDA:0,::add_variable -FNDA:0,::add_constraint -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: FNDA:0,::add_constraint -FNDA:1,::default +FNDA:0,::new +FNDA:1,::gensym +FNDA:0,::add_constraints FNDA:0,<::serialize::__SerializeWith as serde::ser::Serialize>::serialize::<_> FNDA:0,::get_constraints_vec -FNDA:0,::add_constraint -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> -FNDA:0,::add_constraints -FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_map::__DeserializeWith as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FNDA:1,::gensym -FNDA:0,::new -FNDA:0,::set_context -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::__DeserializeWith as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> -FNDA:0,::update_domain -FNDA:0,::update_domain +FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::> FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: +FNDA:0,::gensym +FNDA:0,::new_empty FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> -FNDA:1,::set_constraints -FNDA:0,<::serialize::__SerializeWith as serde::ser::Serialize>::serialize::<_> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::__DeserializeWith as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> +FNDA:1,::get_constraints_vec +FNDA:1,::update_domain +FNDA:0,::eq +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_>::{closure#0} +FNDA:1,<::serialize::__SerializeWith as serde::ser::Serialize>::serialize:: FNDA:0,::add_constraints -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::> -FNDA:1,<<::deserialize::__Visitor as serde::de::Visitor>::visit_map::__DeserializeWith as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> -FNDA:0,::set_constraints -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_map::__DeserializeWith as serde::de::Deserialize>::deserialize::<_> -FNDA:0,<::serialize::__SerializeWith as serde::ser::Serialize>::serialize::<_> -FNDA:0,::get_domain -FNDA:1,::new -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::__DeserializeWith as serde::de::Deserialize>::deserialize::<_> -FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_map::__DeserializeWith as serde::de::Deserialize>::deserialize::<_> -FNF:88 -FNH:13 +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FNDA:0,::set_context +FNDA:0,::get_constraints_vec +FNDA:0,<<::deserialize::__Visitor as serde::de::Visitor>::visit_map::__DeserializeWith as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> +FNF:91 +FNH:14 BRF:0 BRH:0 -DA:12,360 -DA:23,6900 -DA:24,6900 -DA:25,6900 -DA:26,6900 +DA:14,630 DA:27,6900 DA:28,6900 DA:29,6900 @@ -4361,55 +4464,59 @@ DA:31,6900 DA:32,6900 DA:33,6900 DA:34,6900 -DA:36,15 -DA:37,15 -DA:38,15 -DA:39,15 -DA:40,15 -DA:42,0 -DA:43,0 -DA:44,0 -DA:47,375 -DA:48,375 -DA:49,375 -DA:51,360 -DA:52,360 -DA:53,120 -DA:54,180 -DA:55,60 -DA:57,360 -DA:59,180 -DA:60,180 -DA:61,0 +DA:35,6900 +DA:36,6900 +DA:37,6900 +DA:38,6900 +DA:40,6840 +DA:41,6840 +DA:42,6840 +DA:44,15 +DA:45,15 +DA:46,15 +DA:47,15 +DA:48,15 +DA:50,0 +DA:51,0 +DA:52,0 +DA:55,375 +DA:56,375 +DA:57,375 +DA:59,360 +DA:60,360 +DA:61,120 DA:62,180 -DA:63,150 -DA:64,150 -DA:65,30 -DA:66,30 +DA:63,60 +DA:65,360 DA:67,180 +DA:68,180 DA:69,0 -DA:70,0 -DA:71,0 -DA:73,0 -DA:74,0 -DA:75,0 -DA:76,0 +DA:70,180 +DA:71,150 +DA:72,150 +DA:73,30 +DA:74,30 +DA:75,180 DA:77,0 DA:78,0 DA:79,0 -DA:81,180 -DA:82,180 -DA:83,180 -DA:84,180 -DA:85,180 -DA:88,75 -DA:89,75 -DA:90,75 -DA:91,75 -DA:92,75 -DA:96,6840 -DA:97,6840 -DA:98,6840 +DA:81,0 +DA:82,0 +DA:83,0 +DA:84,0 +DA:85,0 +DA:86,0 +DA:87,0 +DA:89,180 +DA:90,180 +DA:91,180 +DA:92,180 +DA:93,180 +DA:96,75 +DA:97,75 +DA:98,75 +DA:99,75 +DA:100,75 LF:62 LH:48 end_of_record @@ -4534,77 +4641,77 @@ LH:20 end_of_record SF:crates/conjure_core/src/rules/cnf.rs FN:45,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_OR::__typecheck::{closure#0}::{closure#0} -FN:21,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_AND::__typecheck::{closure#0}::{closure#0} -FN:45,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_OR::__typecheck +FN:21,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_AND::__typecheck::{closure#0} FN:42,rust_out::main::_doctest_main_crates_conjure_core_src_rules_cnf_rs_42_0 -FN:12,conjure_core::rules::cnf::CONJURE_GEN_RULE_SET_CNF::__typecheck FN:42,rust_out::main FN:18,rust_out::main::_doctest_main_crates_conjure_core_src_rules_cnf_rs_18_0 -FN:21,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_AND::__typecheck::{closure#0} -FN:12,conjure_core::rules::cnf::CONJURE_GEN_RULE_SET_CNF::__typecheck::{closure#0}::{closure#0} -FN:45,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_OR::__typecheck FN:21,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_AND::__typecheck -FN:21,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_AND::__typecheck::{closure#0} FN:45,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_OR::__typecheck::{closure#0} -FN:21,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_AND::__typecheck -FN:12,conjure_core::rules::cnf::CONJURE_GEN_RULE_SET_CNF::__typecheck::{closure#0} +FN:12,conjure_core::rules::cnf::CONJURE_GEN_RULE_SET_CNF::__typecheck::{closure#0}::{closure#0} FN:12,conjure_core::rules::cnf::CONJURE_GEN_RULE_SET_CNF::__typecheck FN:45,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_OR::__typecheck::{closure#0} -FN:46,conjure_core::rules::cnf::distribute_not_over_or -FN:21,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_AND::__typecheck -FN:45,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_OR::__typecheck -FN:21,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_AND::__typecheck::{closure#0}::{closure#0} -FN:21,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_AND::__typecheck::{closure#0}::{closure#0} +FN:12,conjure_core::rules::cnf::CONJURE_GEN_RULE_SET_CNF::__typecheck::{closure#0}::{closure#0} FN:45,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_OR::__typecheck::{closure#0}::{closure#0} FN:46,conjure_core::rules::cnf::distribute_not_over_or -FN:45,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_OR::__typecheck::{closure#0}::{closure#0} FN:21,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_AND::__typecheck::{closure#0} +FN:45,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_OR::__typecheck FN:22,conjure_core::rules::cnf::distribute_not_over_and -FN:22,conjure_core::rules::cnf::distribute_not_over_and +FN:12,conjure_core::rules::cnf::CONJURE_GEN_RULE_SET_CNF::__typecheck::{closure#0} +FN:45,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_OR::__typecheck +FN:45,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_OR::__typecheck FN:46,conjure_core::rules::cnf::distribute_not_over_or -FN:12,conjure_core::rules::cnf::CONJURE_GEN_RULE_SET_CNF::__typecheck::{closure#0}::{closure#0} +FN:22,conjure_core::rules::cnf::distribute_not_over_and +FN:45,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_OR::__typecheck::{closure#0}::{closure#0} +FN:21,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_AND::__typecheck::{closure#0}::{closure#0} +FN:12,conjure_core::rules::cnf::CONJURE_GEN_RULE_SET_CNF::__typecheck +FN:12,conjure_core::rules::cnf::CONJURE_GEN_RULE_SET_CNF::__typecheck::{closure#0} +FN:21,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_AND::__typecheck +FN:21,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_AND::__typecheck FN:12,conjure_core::rules::cnf::CONJURE_GEN_RULE_SET_CNF::__typecheck::{closure#0}::{closure#0} FN:12,conjure_core::rules::cnf::CONJURE_GEN_RULE_SET_CNF::__typecheck::{closure#0} +FN:21,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_AND::__typecheck::{closure#0} +FN:21,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_AND::__typecheck::{closure#0}::{closure#0} FN:45,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_OR::__typecheck::{closure#0} -FN:12,conjure_core::rules::cnf::CONJURE_GEN_RULE_SET_CNF::__typecheck::{closure#0} -FN:22,conjure_core::rules::cnf::distribute_not_over_and FN:12,conjure_core::rules::cnf::CONJURE_GEN_RULE_SET_CNF::__typecheck +FN:22,conjure_core::rules::cnf::distribute_not_over_and +FN:21,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_AND::__typecheck::{closure#0}::{closure#0} +FN:46,conjure_core::rules::cnf::distribute_not_over_or FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_OR::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_AND::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_OR::__typecheck +FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_AND::__typecheck::{closure#0} FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_cnf_rs_42_0 -FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_SET_CNF::__typecheck FNDA:1,rust_out::main FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_cnf_rs_18_0 -FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_AND::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_SET_CNF::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_OR::__typecheck FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_AND::__typecheck -FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_AND::__typecheck::{closure#0} FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_OR::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_AND::__typecheck -FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_SET_CNF::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_SET_CNF::__typecheck::{closure#0}::{closure#0} FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_SET_CNF::__typecheck FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_OR::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::cnf::distribute_not_over_or -FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_AND::__typecheck -FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_OR::__typecheck -FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_AND::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_AND::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_SET_CNF::__typecheck::{closure#0}::{closure#0} FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_OR::__typecheck::{closure#0}::{closure#0} FNDA:0,conjure_core::rules::cnf::distribute_not_over_or -FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_OR::__typecheck::{closure#0}::{closure#0} FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_AND::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_OR::__typecheck FNDA:0,conjure_core::rules::cnf::distribute_not_over_and -FNDA:1,conjure_core::rules::cnf::distribute_not_over_and +FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_SET_CNF::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_OR::__typecheck +FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_OR::__typecheck FNDA:1,conjure_core::rules::cnf::distribute_not_over_or -FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_SET_CNF::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::cnf::distribute_not_over_and +FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_OR::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_AND::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_SET_CNF::__typecheck +FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_SET_CNF::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_AND::__typecheck +FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_AND::__typecheck FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_SET_CNF::__typecheck::{closure#0}::{closure#0} FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_SET_CNF::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_AND::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_AND::__typecheck::{closure#0}::{closure#0} FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_OR::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_SET_CNF::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::cnf::distribute_not_over_and FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_SET_CNF::__typecheck +FNDA:1,conjure_core::rules::cnf::distribute_not_over_and +FNDA:0,conjure_core::rules::cnf::CONJURE_GEN_RULE_DISTRIBUTE_NOT_OVER_AND::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::cnf::distribute_not_over_or FNF:36 FNH:5 BRF:0 @@ -4646,87 +4753,87 @@ LF:33 LH:30 end_of_record SF:crates/conjure_core/src/ast/constants.rs -FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: -FN:5,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FN:24,>::try_from -FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FN:5,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FN:33,::fmt -FN:5,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FN:5,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> FN:24,>::try_from -FN:5,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FN:24,>::try_from -FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: +FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: +FN:33,::fmt FN:14,>::try_from -FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting FN:5,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> -FN:5,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FN:14,>::try_from +FN:5,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FN:5,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> -FN:5,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FN:5,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> -FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FN:24,>::try_from +FN:5,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FN:5,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> FN:5,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> -FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: +FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting FN:33,::fmt -FN:5,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FN:5,<::deserialize::__Visitor as serde::de::Visitor>::expecting +FN:5,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> FN:5,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> FN:14,>::try_from -FN:5,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> +FN:5,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FN:5,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> +FN:5,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FN:5,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> +FN:5,<::deserialize::__Visitor as serde::de::Visitor>::expecting +FN:24,>::try_from FN:33,::fmt -FN:5,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FNDA:1,>::try_from -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> +FN:14,>::try_from +FN:5,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FN:5,<::deserialize::__Visitor as serde::de::Visitor>::expecting +FN:5,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FNDA:0,::fmt -FNDA:1,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FNDA:1,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> FNDA:0,>::try_from -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FNDA:0,>::try_from -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FNDA:1,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: +FNDA:0,::fmt FNDA:1,>::try_from -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FNDA:0,>::try_from +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> -FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FNDA:0,>::try_from +FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FNDA:1,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting FNDA:0,::fmt -FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting +FNDA:1,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> FNDA:0,>::try_from -FNDA:1,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> +FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> +FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting +FNDA:1,>::try_from FNDA:0,::fmt -FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FNDA:0,>::try_from +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> FNF:38 FNH:5 BRF:0 BRH:0 -DA:5,552 +DA:5,690 DA:14,1110 DA:15,1110 DA:16,1065 @@ -4884,296 +4991,296 @@ LF:84 LH:84 end_of_record SF:crates/conjure_core/src/rules/minion.rs -FN:87,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_LEQ_TO_SUMLEQ::__typecheck::{closure#0} -FN:138,conjure_core::rules::minion::CONJURE_GEN_RULE_SUMEQ_TO_MINION::__typecheck -FN:275,conjure_core::rules::minion::CONJURE_GEN_RULE_EQ_TO_LEQ_GEQ::__typecheck::{closure#0}::{closure#0} -FN:196,rust_out::main::_doctest_main_crates_conjure_core_src_rules_minion_rs_196_0 -FN:179,conjure_core::rules::minion::CONJURE_GEN_RULE_GT_TO_INEQ::__typecheck -FN:219,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck::{closure#0}::{closure#0} -FN:179,conjure_core::rules::minion::CONJURE_GEN_RULE_GT_TO_INEQ::__typecheck::{closure#0} -FN:13,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck::{closure#0}::{closure#0} +FN:264,conjure_core::rules::minion::CONJURE_GEN_RULE_NEQ_TO_ALLDIFF::__typecheck::{closure#0} +FN:264,conjure_core::rules::minion::CONJURE_GEN_RULE_NEQ_TO_ALLDIFF::__typecheck::{closure#0}::{closure#0} FN:275,conjure_core::rules::minion::CONJURE_GEN_RULE_EQ_TO_LEQ_GEQ::__typecheck -FN:88,conjure_core::rules::minion::sum_leq_to_sumleq +FN:159,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck +FN:264,conjure_core::rules::minion::CONJURE_GEN_RULE_NEQ_TO_ALLDIFF::__typecheck FN:13,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck::{closure#0}::{closure#0} -FN:176,rust_out::main::_doctest_main_crates_conjure_core_src_rules_minion_rs_176_0 -FN:13,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck -FN:219,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck::{closure#0}::{closure#0} -FN:179,conjure_core::rules::minion::CONJURE_GEN_RULE_GT_TO_INEQ::__typecheck::{closure#0}::{closure#0} -FN:199,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck::{closure#0} -FN:159,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck::{closure#0} -FN:199,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck FN:276,conjure_core::rules::minion::eq_to_leq_geq -FN:66,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck::{closure#0} -FN:138,conjure_core::rules::minion::CONJURE_GEN_RULE_SUMEQ_TO_MINION::__typecheck::{closure#0} -FN:108,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_EQ_TO_SUMEQ::__typecheck::{closure#0}::{closure#0} -FN:87,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_LEQ_TO_SUMLEQ::__typecheck::{closure#0} -FN:15,conjure_core::rules::minion::is_nested_sum FN:67,conjure_core::rules::minion::flatten_sum_geq -FN:108,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_EQ_TO_SUMEQ::__typecheck::{closure#0} -FN:108,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_EQ_TO_SUMEQ::__typecheck -FN:264,conjure_core::rules::minion::CONJURE_GEN_RULE_NEQ_TO_ALLDIFF::__typecheck::{closure#0} -FN:160,conjure_core::rules::minion::lt_to_ineq -FN:275,conjure_core::rules::minion::CONJURE_GEN_RULE_EQ_TO_LEQ_GEQ::__typecheck -FN:108,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_EQ_TO_SUMEQ::__typecheck -FN:219,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck::{closure#0} +FN:13,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck +FN:196,rust_out::main::_doctest_main_crates_conjure_core_src_rules_minion_rs_196_0 +FN:179,conjure_core::rules::minion::CONJURE_GEN_RULE_GT_TO_INEQ::__typecheck +FN:88,conjure_core::rules::minion::sum_leq_to_sumleq +FN:199,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck::{closure#0} +FN:87,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_LEQ_TO_SUMLEQ::__typecheck::{closure#0}::{closure#0} +FN:139,conjure_core::rules::minion::sumeq_to_minion FN:109,conjure_core::rules::minion::sum_eq_to_sumeq -FN:27,conjure_core::rules::minion::sum_to_vector -FN:13,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck::{closure#0}::{closure#0} -FN:138,conjure_core::rules::minion::CONJURE_GEN_RULE_SUMEQ_TO_MINION::__typecheck::{closure#0}::{closure#0} +FN:176,rust_out::main::_doctest_main_crates_conjure_core_src_rules_minion_rs_176_0 +FN:88,conjure_core::rules::minion::sum_leq_to_sumleq +FN:200,conjure_core::rules::minion::geq_to_ineq +FN:275,conjure_core::rules::minion::CONJURE_GEN_RULE_EQ_TO_LEQ_GEQ::__typecheck +FN:275,conjure_core::rules::minion::CONJURE_GEN_RULE_EQ_TO_LEQ_GEQ::__typecheck::{closure#0} FN:139,conjure_core::rules::minion::sumeq_to_minion +FN:109,conjure_core::rules::minion::sum_eq_to_sumeq +FN:179,conjure_core::rules::minion::CONJURE_GEN_RULE_GT_TO_INEQ::__typecheck +FN:275,conjure_core::rules::minion::CONJURE_GEN_RULE_EQ_TO_LEQ_GEQ::__typecheck::{closure#0}::{closure#0} +FN:159,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck +FN:159,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck FN:275,conjure_core::rules::minion::CONJURE_GEN_RULE_EQ_TO_LEQ_GEQ::__typecheck::{closure#0} +FN:108,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_EQ_TO_SUMEQ::__typecheck +FN:160,conjure_core::rules::minion::lt_to_ineq FN:108,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_EQ_TO_SUMEQ::__typecheck::{closure#0}::{closure#0} -FN:159,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck::{closure#0}::{closure#0} -FN:219,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck -FN:138,conjure_core::rules::minion::CONJURE_GEN_RULE_SUMEQ_TO_MINION::__typecheck::{closure#0}::{closure#0} -FN:199,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck -FN:264,conjure_core::rules::minion::CONJURE_GEN_RULE_NEQ_TO_ALLDIFF::__typecheck -FN:109,conjure_core::rules::minion::sum_eq_to_sumeq +FN:200,conjure_core::rules::minion::geq_to_ineq FN:276,conjure_core::rules::minion::eq_to_leq_geq +FN:179,conjure_core::rules::minion::CONJURE_GEN_RULE_GT_TO_INEQ::__typecheck::{closure#0} +FN:264,conjure_core::rules::minion::CONJURE_GEN_RULE_NEQ_TO_ALLDIFF::__typecheck FN:264,conjure_core::rules::minion::CONJURE_GEN_RULE_NEQ_TO_ALLDIFF::__typecheck::{closure#0} -FN:275,conjure_core::rules::minion::CONJURE_GEN_RULE_EQ_TO_LEQ_GEQ::__typecheck::{closure#0} -FN:180,conjure_core::rules::minion::gt_to_ineq -FN:264,conjure_core::rules::minion::CONJURE_GEN_RULE_NEQ_TO_ALLDIFF::__typecheck::{closure#0}::{closure#0} -FN:108,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_EQ_TO_SUMEQ::__typecheck::{closure#0} -FN:67,conjure_core::rules::minion::flatten_sum_geq -FN:87,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_LEQ_TO_SUMLEQ::__typecheck::{closure#0}::{closure#0} +FN:13,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck::{closure#0}::{closure#0} +FN:138,conjure_core::rules::minion::CONJURE_GEN_RULE_SUMEQ_TO_MINION::__typecheck::{closure#0}::{closure#0} +FN:15,conjure_core::rules::minion::is_nested_sum +FN:138,conjure_core::rules::minion::CONJURE_GEN_RULE_SUMEQ_TO_MINION::__typecheck +FN:159,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck::{closure#0} +FN:200,conjure_core::rules::minion::geq_to_ineq +FN:66,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck::{closure#0} +FN:160,conjure_core::rules::minion::lt_to_ineq +FN:13,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck +FN:219,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck +FN:27,conjure_core::rules::minion::sum_to_vector +FN:87,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_LEQ_TO_SUMLEQ::__typecheck +FN:159,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck::{closure#0}::{closure#0} +FN:275,conjure_core::rules::minion::CONJURE_GEN_RULE_EQ_TO_LEQ_GEQ::__typecheck +FN:199,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck FN:156,rust_out::main::_doctest_main_crates_conjure_core_src_rules_minion_rs_156_0 FN:135,rust_out::main::_doctest_main_crates_conjure_core_src_rules_minion_rs_135_0 -FN:275,conjure_core::rules::minion::CONJURE_GEN_RULE_EQ_TO_LEQ_GEQ::__typecheck::{closure#0}::{closure#0} -FN:87,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_LEQ_TO_SUMLEQ::__typecheck -FN:13,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck -FN:159,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck::{closure#0} -FN:219,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck::{closure#0} -FN:264,conjure_core::rules::minion::CONJURE_GEN_RULE_NEQ_TO_ALLDIFF::__typecheck::{closure#0} FN:66,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck +FN:276,conjure_core::rules::minion::eq_to_leq_geq +FN:138,conjure_core::rules::minion::CONJURE_GEN_RULE_SUMEQ_TO_MINION::__typecheck::{closure#0} +FN:219,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck::{closure#0} +FN:66,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck::{closure#0} +FN:87,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_LEQ_TO_SUMLEQ::__typecheck::{closure#0} +FN:219,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck::{closure#0}::{closure#0} +FN:67,conjure_core::rules::minion::flatten_sum_geq +FN:199,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck::{closure#0} +FN:219,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck FN:87,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_LEQ_TO_SUMLEQ::__typecheck::{closure#0}::{closure#0} -FN:275,conjure_core::rules::minion::CONJURE_GEN_RULE_EQ_TO_LEQ_GEQ::__typecheck::{closure#0} -FN:179,conjure_core::rules::minion::CONJURE_GEN_RULE_GT_TO_INEQ::__typecheck::{closure#0}::{closure#0} -FN:199,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck::{closure#0}::{closure#0} -FN:159,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck -FN:159,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck::{closure#0} -FN:180,conjure_core::rules::minion::gt_to_ineq +FN:220,conjure_core::rules::minion::leq_to_ineq +FN:66,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck::{closure#0} FN:105,rust_out::main::_doctest_main_crates_conjure_core_src_rules_minion_rs_105_0 FN:130,rust_out::main::_doctest_main_crates_conjure_core_src_rules_minion_rs_130_0 +FN:108,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_EQ_TO_SUMEQ::__typecheck::{closure#0} +FN:139,conjure_core::rules::minion::sumeq_to_minion +FN:160,conjure_core::rules::minion::lt_to_ineq +FN:159,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck::{closure#0} +FN:220,conjure_core::rules::minion::leq_to_ineq +FN:87,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_LEQ_TO_SUMLEQ::__typecheck::{closure#0} +FN:199,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck::{closure#0} FN:265,conjure_core::rules::minion::neq_to_alldiff -FN:219,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck -FN:199,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck::{closure#0}::{closure#0} -FN:27,conjure_core::rules::minion::sum_to_vector +FN:219,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck::{closure#0}::{closure#0} +FN:180,conjure_core::rules::minion::gt_to_ineq +FN:275,conjure_core::rules::minion::CONJURE_GEN_RULE_EQ_TO_LEQ_GEQ::__typecheck::{closure#0} +FN:66,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck +FN:109,conjure_core::rules::minion::sum_eq_to_sumeq +FN:66,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck::{closure#0}::{closure#0} +FN:108,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_EQ_TO_SUMEQ::__typecheck::{closure#0} +FN:159,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck::{closure#0} +FN:108,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_EQ_TO_SUMEQ::__typecheck::{closure#0}::{closure#0} FN:138,conjure_core::rules::minion::CONJURE_GEN_RULE_SUMEQ_TO_MINION::__typecheck::{closure#0}::{closure#0} -FN:159,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck -FN:179,conjure_core::rules::minion::CONJURE_GEN_RULE_GT_TO_INEQ::__typecheck::{closure#0} -FN:200,conjure_core::rules::minion::geq_to_ineq +FN:67,conjure_core::rules::minion::flatten_sum_geq +FN:138,conjure_core::rules::minion::CONJURE_GEN_RULE_SUMEQ_TO_MINION::__typecheck +FN:199,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck +FN:88,conjure_core::rules::minion::sum_leq_to_sumleq +FN:66,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck +FN:199,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck::{closure#0}::{closure#0} FN:179,conjure_core::rules::minion::CONJURE_GEN_RULE_GT_TO_INEQ::__typecheck::{closure#0}::{closure#0} -FN:66,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck::{closure#0}::{closure#0} -FN:200,conjure_core::rules::minion::geq_to_ineq -FN:13,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck::{closure#0} -FN:276,conjure_core::rules::minion::eq_to_leq_geq -FN:66,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck::{closure#0}::{closure#0} -FN:159,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck::{closure#0}::{closure#0} -FN:15,conjure_core::rules::minion::is_nested_sum +FN:27,conjure_core::rules::minion::sum_to_vector FN:219,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck::{closure#0} -FN:66,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck -FN:13,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck -FN:219,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck -FN:219,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck::{closure#0}::{closure#0} -FN:13,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck::{closure#0} -FN:160,conjure_core::rules::minion::lt_to_ineq -FN:179,conjure_core::rules::minion::CONJURE_GEN_RULE_GT_TO_INEQ::__typecheck -FN:108,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_EQ_TO_SUMEQ::__typecheck::{closure#0}::{closure#0} FN:264,conjure_core::rules::minion::CONJURE_GEN_RULE_NEQ_TO_ALLDIFF::__typecheck::{closure#0}::{closure#0} -FN:88,conjure_core::rules::minion::sum_leq_to_sumleq -FN:264,conjure_core::rules::minion::CONJURE_GEN_RULE_NEQ_TO_ALLDIFF::__typecheck -FN:220,conjure_core::rules::minion::leq_to_ineq -FN:179,conjure_core::rules::minion::CONJURE_GEN_RULE_GT_TO_INEQ::__typecheck -FN:159,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck -FN:66,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck::{closure#0}::{closure#0} +FN:199,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck::{closure#0}::{closure#0} FN:179,conjure_core::rules::minion::CONJURE_GEN_RULE_GT_TO_INEQ::__typecheck::{closure#0} -FN:180,conjure_core::rules::minion::gt_to_ineq -FN:275,conjure_core::rules::minion::CONJURE_GEN_RULE_EQ_TO_LEQ_GEQ::__typecheck +FN:138,conjure_core::rules::minion::CONJURE_GEN_RULE_SUMEQ_TO_MINION::__typecheck::{closure#0}::{closure#0} +FN:66,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck::{closure#0}::{closure#0} +FN:199,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck +FN:13,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck::{closure#0}::{closure#0} +FN:138,conjure_core::rules::minion::CONJURE_GEN_RULE_SUMEQ_TO_MINION::__typecheck::{closure#0} FN:15,conjure_core::rules::minion::is_nested_sum -FN:265,conjure_core::rules::minion::neq_to_alldiff -FN:199,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck::{closure#0}::{closure#0} -FN:88,conjure_core::rules::minion::sum_leq_to_sumleq -FN:265,conjure_core::rules::minion::neq_to_alldiff -FN:66,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck::{closure#0} +FN:179,conjure_core::rules::minion::CONJURE_GEN_RULE_GT_TO_INEQ::__typecheck::{closure#0} FN:87,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_LEQ_TO_SUMLEQ::__typecheck -FN:220,conjure_core::rules::minion::leq_to_ineq -FN:66,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck::{closure#0} +FN:264,conjure_core::rules::minion::CONJURE_GEN_RULE_NEQ_TO_ALLDIFF::__typecheck::{closure#0}::{closure#0} +FN:138,conjure_core::rules::minion::CONJURE_GEN_RULE_SUMEQ_TO_MINION::__typecheck +FN:219,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck::{closure#0}::{closure#0} FN:196,rust_out::main -FN:264,conjure_core::rules::minion::CONJURE_GEN_RULE_NEQ_TO_ALLDIFF::__typecheck +FN:180,conjure_core::rules::minion::gt_to_ineq +FN:159,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck::{closure#0}::{closure#0} +FN:15,conjure_core::rules::minion::is_nested_sum +FN:27,conjure_core::rules::minion::sum_to_vector FN:87,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_LEQ_TO_SUMLEQ::__typecheck::{closure#0} -FN:87,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_LEQ_TO_SUMLEQ::__typecheck::{closure#0}::{closure#0} -FN:138,conjure_core::rules::minion::CONJURE_GEN_RULE_SUMEQ_TO_MINION::__typecheck::{closure#0} +FN:108,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_EQ_TO_SUMEQ::__typecheck::{closure#0} FN:87,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_LEQ_TO_SUMLEQ::__typecheck -FN:264,conjure_core::rules::minion::CONJURE_GEN_RULE_NEQ_TO_ALLDIFF::__typecheck::{closure#0}::{closure#0} -FN:159,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck::{closure#0}::{closure#0} -FN:199,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck::{closure#0} -FN:138,conjure_core::rules::minion::CONJURE_GEN_RULE_SUMEQ_TO_MINION::__typecheck -FN:160,conjure_core::rules::minion::lt_to_ineq -FN:67,conjure_core::rules::minion::flatten_sum_geq +FN:275,conjure_core::rules::minion::CONJURE_GEN_RULE_EQ_TO_LEQ_GEQ::__typecheck::{closure#0}::{closure#0} +FN:179,conjure_core::rules::minion::CONJURE_GEN_RULE_GT_TO_INEQ::__typecheck::{closure#0}::{closure#0} +FN:87,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_LEQ_TO_SUMLEQ::__typecheck::{closure#0}::{closure#0} FN:138,conjure_core::rules::minion::CONJURE_GEN_RULE_SUMEQ_TO_MINION::__typecheck::{closure#0} FN:63,rust_out::main::_doctest_main_crates_conjure_core_src_rules_minion_rs_63_0 -FN:108,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_EQ_TO_SUMEQ::__typecheck::{closure#0} -FN:13,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck::{closure#0} -FN:275,conjure_core::rules::minion::CONJURE_GEN_RULE_EQ_TO_LEQ_GEQ::__typecheck::{closure#0}::{closure#0} -FN:199,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck -FN:139,conjure_core::rules::minion::sumeq_to_minion -FN:66,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck -FN:200,conjure_core::rules::minion::geq_to_ineq -FN:138,conjure_core::rules::minion::CONJURE_GEN_RULE_SUMEQ_TO_MINION::__typecheck -FN:216,rust_out::main::_doctest_main_crates_conjure_core_src_rules_minion_rs_216_0 +FN:219,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck +FN:159,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck::{closure#0}::{closure#0} +FN:219,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck::{closure#0} +FN:179,conjure_core::rules::minion::CONJURE_GEN_RULE_GT_TO_INEQ::__typecheck +FN:179,conjure_core::rules::minion::CONJURE_GEN_RULE_GT_TO_INEQ::__typecheck::{closure#0}::{closure#0} FN:220,conjure_core::rules::minion::leq_to_ineq -FN:27,conjure_core::rules::minion::sum_to_vector +FN:264,conjure_core::rules::minion::CONJURE_GEN_RULE_NEQ_TO_ALLDIFF::__typecheck::{closure#0} +FN:108,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_EQ_TO_SUMEQ::__typecheck +FN:180,conjure_core::rules::minion::gt_to_ineq +FN:199,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck::{closure#0}::{closure#0} +FN:216,rust_out::main::_doctest_main_crates_conjure_core_src_rules_minion_rs_216_0 +FN:275,conjure_core::rules::minion::CONJURE_GEN_RULE_EQ_TO_LEQ_GEQ::__typecheck::{closure#0}::{closure#0} +FN:264,conjure_core::rules::minion::CONJURE_GEN_RULE_NEQ_TO_ALLDIFF::__typecheck +FN:265,conjure_core::rules::minion::neq_to_alldiff +FN:13,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck::{closure#0} +FN:108,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_EQ_TO_SUMEQ::__typecheck::{closure#0}::{closure#0} +FN:66,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck::{closure#0}::{closure#0} FN:84,rust_out::main::_doctest_main_crates_conjure_core_src_rules_minion_rs_84_0 -FN:109,conjure_core::rules::minion::sum_eq_to_sumeq +FN:13,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck::{closure#0} FN:108,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_EQ_TO_SUMEQ::__typecheck -FN:199,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck::{closure#0} -FN:139,conjure_core::rules::minion::sumeq_to_minion -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_LEQ_TO_SUMLEQ::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUMEQ_TO_MINION::__typecheck -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_EQ_TO_LEQ_GEQ::__typecheck::{closure#0}::{closure#0} -FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_minion_rs_196_0 -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GT_TO_INEQ::__typecheck -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GT_TO_INEQ::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck::{closure#0}::{closure#0} +FN:13,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck::{closure#0} +FN:13,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck +FN:265,conjure_core::rules::minion::neq_to_alldiff +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_NEQ_TO_ALLDIFF::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_NEQ_TO_ALLDIFF::__typecheck::{closure#0}::{closure#0} FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_EQ_TO_LEQ_GEQ::__typecheck -FNDA:1,conjure_core::rules::minion::sum_leq_to_sumleq +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_NEQ_TO_ALLDIFF::__typecheck FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck::{closure#0}::{closure#0} -FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_minion_rs_176_0 -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GT_TO_INEQ::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck FNDA:1,conjure_core::rules::minion::eq_to_leq_geq -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUMEQ_TO_MINION::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_EQ_TO_SUMEQ::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_LEQ_TO_SUMLEQ::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::minion::is_nested_sum FNDA:0,conjure_core::rules::minion::flatten_sum_geq -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_EQ_TO_SUMEQ::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_EQ_TO_SUMEQ::__typecheck -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_NEQ_TO_ALLDIFF::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::minion::lt_to_ineq +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck +FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_minion_rs_196_0 +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GT_TO_INEQ::__typecheck +FNDA:0,conjure_core::rules::minion::sum_leq_to_sumleq +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_LEQ_TO_SUMLEQ::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::minion::sumeq_to_minion +FNDA:0,conjure_core::rules::minion::sum_eq_to_sumeq +FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_minion_rs_176_0 +FNDA:1,conjure_core::rules::minion::sum_leq_to_sumleq +FNDA:0,conjure_core::rules::minion::geq_to_ineq FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_EQ_TO_LEQ_GEQ::__typecheck -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_EQ_TO_SUMEQ::__typecheck -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_EQ_TO_LEQ_GEQ::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::minion::sumeq_to_minion FNDA:1,conjure_core::rules::minion::sum_eq_to_sumeq -FNDA:0,conjure_core::rules::minion::sum_to_vector -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUMEQ_TO_MINION::__typecheck::{closure#0}::{closure#0} -FNDA:1,conjure_core::rules::minion::sumeq_to_minion +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GT_TO_INEQ::__typecheck +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_EQ_TO_LEQ_GEQ::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_EQ_TO_LEQ_GEQ::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_EQ_TO_SUMEQ::__typecheck +FNDA:0,conjure_core::rules::minion::lt_to_ineq FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_EQ_TO_SUMEQ::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUMEQ_TO_MINION::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_NEQ_TO_ALLDIFF::__typecheck -FNDA:0,conjure_core::rules::minion::sum_eq_to_sumeq +FNDA:0,conjure_core::rules::minion::geq_to_ineq FNDA:0,conjure_core::rules::minion::eq_to_leq_geq +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GT_TO_INEQ::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_NEQ_TO_ALLDIFF::__typecheck FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_NEQ_TO_ALLDIFF::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_EQ_TO_LEQ_GEQ::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::minion::gt_to_ineq -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_NEQ_TO_ALLDIFF::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_EQ_TO_SUMEQ::__typecheck::{closure#0} -FNDA:1,conjure_core::rules::minion::flatten_sum_geq -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_LEQ_TO_SUMLEQ::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUMEQ_TO_MINION::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::minion::is_nested_sum +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUMEQ_TO_MINION::__typecheck +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck::{closure#0} +FNDA:1,conjure_core::rules::minion::geq_to_ineq +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck::{closure#0} +FNDA:1,conjure_core::rules::minion::lt_to_ineq +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck +FNDA:0,conjure_core::rules::minion::sum_to_vector +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_LEQ_TO_SUMLEQ::__typecheck +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_EQ_TO_LEQ_GEQ::__typecheck +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_minion_rs_156_0 FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_minion_rs_135_0 -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_EQ_TO_LEQ_GEQ::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_LEQ_TO_SUMLEQ::__typecheck -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_NEQ_TO_ALLDIFF::__typecheck::{closure#0} FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck +FNDA:0,conjure_core::rules::minion::eq_to_leq_geq +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUMEQ_TO_MINION::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_LEQ_TO_SUMLEQ::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::minion::flatten_sum_geq +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_LEQ_TO_SUMLEQ::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_EQ_TO_LEQ_GEQ::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GT_TO_INEQ::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::minion::gt_to_ineq +FNDA:0,conjure_core::rules::minion::leq_to_ineq +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck::{closure#0} FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_minion_rs_105_0 FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_minion_rs_130_0 +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_EQ_TO_SUMEQ::__typecheck::{closure#0} +FNDA:1,conjure_core::rules::minion::sumeq_to_minion +FNDA:0,conjure_core::rules::minion::lt_to_ineq +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::minion::leq_to_ineq +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_LEQ_TO_SUMLEQ::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck::{closure#0} FNDA:1,conjure_core::rules::minion::neq_to_alldiff -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck::{closure#0}::{closure#0} -FNDA:1,conjure_core::rules::minion::sum_to_vector +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::minion::gt_to_ineq +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_EQ_TO_LEQ_GEQ::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck +FNDA:0,conjure_core::rules::minion::sum_eq_to_sumeq +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_EQ_TO_SUMEQ::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_EQ_TO_SUMEQ::__typecheck::{closure#0}::{closure#0} FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUMEQ_TO_MINION::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GT_TO_INEQ::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::minion::geq_to_ineq +FNDA:1,conjure_core::rules::minion::flatten_sum_geq +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUMEQ_TO_MINION::__typecheck +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck +FNDA:0,conjure_core::rules::minion::sum_leq_to_sumleq +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck::{closure#0}::{closure#0} FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GT_TO_INEQ::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck::{closure#0}::{closure#0} -FNDA:1,conjure_core::rules::minion::geq_to_ineq -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::minion::eq_to_leq_geq -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::minion::is_nested_sum +FNDA:0,conjure_core::rules::minion::sum_to_vector FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck::{closure#0} -FNDA:1,conjure_core::rules::minion::lt_to_ineq -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GT_TO_INEQ::__typecheck -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_EQ_TO_SUMEQ::__typecheck::{closure#0}::{closure#0} FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_NEQ_TO_ALLDIFF::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::minion::sum_leq_to_sumleq -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_NEQ_TO_ALLDIFF::__typecheck -FNDA:0,conjure_core::rules::minion::leq_to_ineq -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GT_TO_INEQ::__typecheck -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GT_TO_INEQ::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUMEQ_TO_MINION::__typecheck::{closure#0}::{closure#0} FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUMEQ_TO_MINION::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::minion::is_nested_sum FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GT_TO_INEQ::__typecheck::{closure#0} -FNDA:1,conjure_core::rules::minion::gt_to_ineq -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_EQ_TO_LEQ_GEQ::__typecheck -FNDA:1,conjure_core::rules::minion::is_nested_sum -FNDA:0,conjure_core::rules::minion::neq_to_alldiff -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::minion::sum_leq_to_sumleq -FNDA:0,conjure_core::rules::minion::neq_to_alldiff -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck::{closure#0} FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_LEQ_TO_SUMLEQ::__typecheck -FNDA:0,conjure_core::rules::minion::leq_to_ineq -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_NEQ_TO_ALLDIFF::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUMEQ_TO_MINION::__typecheck +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck::{closure#0}::{closure#0} FNDA:1,rust_out::main -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_NEQ_TO_ALLDIFF::__typecheck +FNDA:1,conjure_core::rules::minion::gt_to_ineq +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck::{closure#0}::{closure#0} +FNDA:1,conjure_core::rules::minion::is_nested_sum +FNDA:1,conjure_core::rules::minion::sum_to_vector FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_LEQ_TO_SUMLEQ::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_LEQ_TO_SUMLEQ::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUMEQ_TO_MINION::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_EQ_TO_SUMEQ::__typecheck::{closure#0} FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_LEQ_TO_SUMLEQ::__typecheck -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_NEQ_TO_ALLDIFF::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUMEQ_TO_MINION::__typecheck -FNDA:0,conjure_core::rules::minion::lt_to_ineq -FNDA:0,conjure_core::rules::minion::flatten_sum_geq +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_EQ_TO_LEQ_GEQ::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GT_TO_INEQ::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_LEQ_TO_SUMLEQ::__typecheck::{closure#0}::{closure#0} FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUMEQ_TO_MINION::__typecheck::{closure#0} FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_minion_rs_63_0 -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_EQ_TO_SUMEQ::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_EQ_TO_LEQ_GEQ::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck -FNDA:0,conjure_core::rules::minion::sumeq_to_minion -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck -FNDA:0,conjure_core::rules::minion::geq_to_ineq -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUMEQ_TO_MINION::__typecheck -FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_minion_rs_216_0 +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LT_TO_INEQ::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_LEQ_TO_INEQ::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GT_TO_INEQ::__typecheck +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GT_TO_INEQ::__typecheck::{closure#0}::{closure#0} FNDA:1,conjure_core::rules::minion::leq_to_ineq -FNDA:0,conjure_core::rules::minion::sum_to_vector +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_NEQ_TO_ALLDIFF::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_EQ_TO_SUMEQ::__typecheck +FNDA:0,conjure_core::rules::minion::gt_to_ineq +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck::{closure#0}::{closure#0} +FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_minion_rs_216_0 +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_EQ_TO_LEQ_GEQ::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_NEQ_TO_ALLDIFF::__typecheck +FNDA:0,conjure_core::rules::minion::neq_to_alldiff +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_EQ_TO_SUMEQ::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_FLATTEN_SUM_GEQ::__typecheck::{closure#0}::{closure#0} FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rules_minion_rs_84_0 -FNDA:0,conjure_core::rules::minion::sum_eq_to_sumeq +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck::{closure#0} FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SUM_EQ_TO_SUMEQ::__typecheck -FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_GEQ_TO_INEQ::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::minion::sumeq_to_minion +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::minion::CONJURE_GEN_RULE_SET_MINION::__typecheck +FNDA:0,conjure_core::rules::minion::neq_to_alldiff FNF:145 FNH:22 BRF:0 @@ -5429,40 +5536,40 @@ end_of_record SF:crates/conjure_core/src/solver/adaptors/kissat.rs FN:39,::solve FN:47,::solve_mut -FN:60,::get_family -FN:55,::load_model FN:39,::solve FN:33,::default -FN:39,::solve +FN:33,::default FN:60,::get_family -FN:55,::load_model FN:60,::get_family FN:47,::solve_mut FN:24,::new -FN:33,::default +FN:55,::load_model +FN:60,::get_family FN:55,::load_model FN:33,::default FN:24,::new -FN:24,::new +FN:55,::load_model FN:47,::solve_mut +FN:24,::new +FN:39,::solve FNDA:0,::solve FNDA:0,::solve_mut -FNDA:0,::get_family -FNDA:0,::load_model FNDA:0,::solve FNDA:0,::default -FNDA:0,::solve +FNDA:0,::default FNDA:0,::get_family -FNDA:0,::load_model FNDA:0,::get_family FNDA:0,::solve_mut FNDA:0,::new -FNDA:0,::default +FNDA:0,::load_model +FNDA:0,::get_family FNDA:0,::load_model FNDA:0,::default FNDA:0,::new -FNDA:0,::new +FNDA:0,::load_model FNDA:0,::solve_mut +FNDA:0,::new +FNDA:0,::solve FNF:18 FNH:0 BRF:0 @@ -6490,112 +6597,112 @@ LF:138 LH:133 end_of_record SF:crates/conjure_core/src/rule_engine/mod.rs -FN:222,conjure_core::rule_engine::get_rule_sets_for_solver_family::{closure#0}::{closure#0} +FN:196,conjure_core::rule_engine::get_rule_set_by_name::{closure#0} FN:193,conjure_core::rule_engine::get_rule_set_by_name FN:160,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_154_0::CONJURE_GEN_RULE_SET_ANOTHERRULESET::__typecheck +FN:193,conjure_core::rule_engine::get_rule_set_by_name FN:146,conjure_core::rule_engine::get_rule_by_name::{closure#0} -FN:117,conjure_core::rule_engine::get_rules -FN:117,conjure_core::rule_engine::get_rules FN:206,rust_out::main -FN:218,conjure_core::rule_engine::get_rule_sets_for_solver_family::{closure#0} +FN:40,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_33_0::CONJURE_GEN_RULE_IDENTITY::__typecheck::{closure#0}::{closure#0} FN:103,rust_out::CONJURE_GEN_RULE_IDENTITY::__typecheck::{closure#0} FN:103,rust_out::CONJURE_GEN_RULE_IDENTITY::__typecheck FN:103,rust_out::CONJURE_GEN_RULE_IDENTITY::__typecheck::{closure#0}::{closure#0} FN:63,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_59_0::CONJURE_GEN_RULE_SET_MYRULESET::__typecheck FN:63,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_59_0::CONJURE_GEN_RULE_SET_MYRULESET::__typecheck::{closure#0}::{closure#0} -FN:40,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_33_0::CONJURE_GEN_RULE_IDENTITY::__typecheck::{closure#0}::{closure#0} FN:34,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_33_0 FN:160,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_154_0::CONJURE_GEN_RULE_SET_ANOTHERRULESET::__typecheck::{closure#0}::{closure#0} FN:159,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_154_0::CONJURE_GEN_RULE_SET_MYRULESET::__typecheck FN:159,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_154_0::CONJURE_GEN_RULE_SET_MYRULESET::__typecheck::{closure#0} -FN:146,conjure_core::rule_engine::get_rule_by_name::{closure#0} +FN:193,conjure_core::rule_engine::get_rule_set_by_name +FN:218,conjure_core::rule_engine::get_rule_sets_for_solver_family::{closure#0} FN:41,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_33_0::identity -FN:196,conjure_core::rule_engine::get_rule_set_by_name::{closure#0} -FN:213,conjure_core::rule_engine::get_rule_sets_for_solver_family +FN:145,conjure_core::rule_engine::get_rule_by_name FN:222,conjure_core::rule_engine::get_rule_sets_for_solver_family::{closure#0}::{closure#0} FN:172,conjure_core::rule_engine::get_rule_sets +FN:222,conjure_core::rule_engine::get_rule_sets_for_solver_family::{closure#0}::{closure#0} +FN:172,conjure_core::rule_engine::get_rule_sets +FN:213,conjure_core::rule_engine::get_rule_sets_for_solver_family +FN:196,conjure_core::rule_engine::get_rule_set_by_name::{closure#0} +FN:117,conjure_core::rule_engine::get_rules FN:40,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_33_0::CONJURE_GEN_RULE_IDENTITY::__typecheck +FN:213,conjure_core::rule_engine::get_rule_sets_for_solver_family +FN:145,conjure_core::rule_engine::get_rule_by_name +FN:218,conjure_core::rule_engine::get_rule_sets_for_solver_family::{closure#0} FN:155,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_154_0 +FN:117,conjure_core::rule_engine::get_rules FN:206,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_205_0 -FN:218,conjure_core::rule_engine::get_rule_sets_for_solver_family::{closure#0} -FN:145,conjure_core::rule_engine::get_rule_by_name +FN:146,conjure_core::rule_engine::get_rule_by_name::{closure#0} +FN:196,conjure_core::rule_engine::get_rule_set_by_name::{closure#0} FN:185,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_180_0::CONJURE_GEN_RULE_SET_MYRULESET::__typecheck +FN:218,conjure_core::rule_engine::get_rule_sets_for_solver_family::{closure#0} FN:181,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_180_0 -FN:146,conjure_core::rule_engine::get_rule_by_name::{closure#0} FN:185,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_180_0::CONJURE_GEN_RULE_SET_MYRULESET::__typecheck::{closure#0} -FN:172,conjure_core::rule_engine::get_rule_sets -FN:213,conjure_core::rule_engine::get_rule_sets_for_solver_family FN:60,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_59_0 -FN:172,conjure_core::rule_engine::get_rule_sets -FN:222,conjure_core::rule_engine::get_rule_sets_for_solver_family::{closure#0}::{closure#0} +FN:117,conjure_core::rule_engine::get_rules FN:213,conjure_core::rule_engine::get_rule_sets_for_solver_family -FN:193,conjure_core::rule_engine::get_rule_set_by_name +FN:172,conjure_core::rule_engine::get_rule_sets FN:160,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_154_0::CONJURE_GEN_RULE_SET_ANOTHERRULESET::__typecheck::{closure#0} FN:63,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_59_0::CONJURE_GEN_RULE_SET_MYRULESET::__typecheck::{closure#0} -FN:117,conjure_core::rule_engine::get_rules FN:185,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_180_0::CONJURE_GEN_RULE_SET_MYRULESET::__typecheck::{closure#0}::{closure#0} -FN:145,conjure_core::rule_engine::get_rule_by_name -FN:193,conjure_core::rule_engine::get_rule_set_by_name -FN:145,conjure_core::rule_engine::get_rule_by_name FN:104,rust_out::identity FN:40,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_33_0::CONJURE_GEN_RULE_IDENTITY::__typecheck::{closure#0} -FN:196,conjure_core::rule_engine::get_rule_set_by_name::{closure#0} +FN:145,conjure_core::rule_engine::get_rule_by_name +FN:146,conjure_core::rule_engine::get_rule_by_name::{closure#0} +FN:222,conjure_core::rule_engine::get_rule_sets_for_solver_family::{closure#0}::{closure#0} FN:159,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_154_0::CONJURE_GEN_RULE_SET_MYRULESET::__typecheck::{closure#0}::{closure#0} -FN:218,conjure_core::rule_engine::get_rule_sets_for_solver_family::{closure#0} -FN:196,conjure_core::rule_engine::get_rule_set_by_name::{closure#0} -FNDA:0,conjure_core::rule_engine::get_rule_sets_for_solver_family::{closure#0}::{closure#0} -FNDA:0,conjure_core::rule_engine::get_rule_set_by_name +FNDA:0,conjure_core::rule_engine::get_rule_set_by_name::{closure#0} +FNDA:1,conjure_core::rule_engine::get_rule_set_by_name FNDA:0,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_154_0::CONJURE_GEN_RULE_SET_ANOTHERRULESET::__typecheck +FNDA:0,conjure_core::rule_engine::get_rule_set_by_name FNDA:0,conjure_core::rule_engine::get_rule_by_name::{closure#0} -FNDA:0,conjure_core::rule_engine::get_rules -FNDA:1,conjure_core::rule_engine::get_rules FNDA:1,rust_out::main -FNDA:1,conjure_core::rule_engine::get_rule_sets_for_solver_family::{closure#0} +FNDA:0,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_33_0::CONJURE_GEN_RULE_IDENTITY::__typecheck::{closure#0}::{closure#0} FNDA:0,rust_out::CONJURE_GEN_RULE_IDENTITY::__typecheck::{closure#0} FNDA:0,rust_out::CONJURE_GEN_RULE_IDENTITY::__typecheck FNDA:0,rust_out::CONJURE_GEN_RULE_IDENTITY::__typecheck::{closure#0}::{closure#0} FNDA:0,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_59_0::CONJURE_GEN_RULE_SET_MYRULESET::__typecheck FNDA:0,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_59_0::CONJURE_GEN_RULE_SET_MYRULESET::__typecheck::{closure#0}::{closure#0} -FNDA:0,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_33_0::CONJURE_GEN_RULE_IDENTITY::__typecheck::{closure#0}::{closure#0} FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_33_0 FNDA:0,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_154_0::CONJURE_GEN_RULE_SET_ANOTHERRULESET::__typecheck::{closure#0}::{closure#0} FNDA:0,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_154_0::CONJURE_GEN_RULE_SET_MYRULESET::__typecheck FNDA:0,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_154_0::CONJURE_GEN_RULE_SET_MYRULESET::__typecheck::{closure#0} -FNDA:0,conjure_core::rule_engine::get_rule_by_name::{closure#0} +FNDA:0,conjure_core::rule_engine::get_rule_set_by_name +FNDA:0,conjure_core::rule_engine::get_rule_sets_for_solver_family::{closure#0} FNDA:0,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_33_0::identity -FNDA:0,conjure_core::rule_engine::get_rule_set_by_name::{closure#0} -FNDA:0,conjure_core::rule_engine::get_rule_sets_for_solver_family -FNDA:1,conjure_core::rule_engine::get_rule_sets_for_solver_family::{closure#0}::{closure#0} +FNDA:0,conjure_core::rule_engine::get_rule_by_name +FNDA:0,conjure_core::rule_engine::get_rule_sets_for_solver_family::{closure#0}::{closure#0} +FNDA:0,conjure_core::rule_engine::get_rule_sets +FNDA:0,conjure_core::rule_engine::get_rule_sets_for_solver_family::{closure#0}::{closure#0} FNDA:0,conjure_core::rule_engine::get_rule_sets +FNDA:1,conjure_core::rule_engine::get_rule_sets_for_solver_family +FNDA:0,conjure_core::rule_engine::get_rule_set_by_name::{closure#0} +FNDA:0,conjure_core::rule_engine::get_rules FNDA:0,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_33_0::CONJURE_GEN_RULE_IDENTITY::__typecheck +FNDA:0,conjure_core::rule_engine::get_rule_sets_for_solver_family +FNDA:0,conjure_core::rule_engine::get_rule_by_name +FNDA:0,conjure_core::rule_engine::get_rule_sets_for_solver_family::{closure#0} FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_154_0 +FNDA:1,conjure_core::rule_engine::get_rules FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_205_0 -FNDA:0,conjure_core::rule_engine::get_rule_sets_for_solver_family::{closure#0} -FNDA:0,conjure_core::rule_engine::get_rule_by_name +FNDA:0,conjure_core::rule_engine::get_rule_by_name::{closure#0} +FNDA:1,conjure_core::rule_engine::get_rule_set_by_name::{closure#0} FNDA:0,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_180_0::CONJURE_GEN_RULE_SET_MYRULESET::__typecheck +FNDA:1,conjure_core::rule_engine::get_rule_sets_for_solver_family::{closure#0} FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_180_0 -FNDA:1,conjure_core::rule_engine::get_rule_by_name::{closure#0} FNDA:0,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_180_0::CONJURE_GEN_RULE_SET_MYRULESET::__typecheck::{closure#0} -FNDA:1,conjure_core::rule_engine::get_rule_sets -FNDA:1,conjure_core::rule_engine::get_rule_sets_for_solver_family FNDA:1,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_59_0 -FNDA:0,conjure_core::rule_engine::get_rule_sets -FNDA:0,conjure_core::rule_engine::get_rule_sets_for_solver_family::{closure#0}::{closure#0} +FNDA:0,conjure_core::rule_engine::get_rules FNDA:0,conjure_core::rule_engine::get_rule_sets_for_solver_family -FNDA:1,conjure_core::rule_engine::get_rule_set_by_name +FNDA:1,conjure_core::rule_engine::get_rule_sets FNDA:0,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_154_0::CONJURE_GEN_RULE_SET_ANOTHERRULESET::__typecheck::{closure#0} FNDA:0,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_59_0::CONJURE_GEN_RULE_SET_MYRULESET::__typecheck::{closure#0} -FNDA:0,conjure_core::rule_engine::get_rules FNDA:0,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_180_0::CONJURE_GEN_RULE_SET_MYRULESET::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rule_engine::get_rule_by_name -FNDA:0,conjure_core::rule_engine::get_rule_set_by_name -FNDA:1,conjure_core::rule_engine::get_rule_by_name FNDA:0,rust_out::identity FNDA:0,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_33_0::CONJURE_GEN_RULE_IDENTITY::__typecheck::{closure#0} -FNDA:1,conjure_core::rule_engine::get_rule_set_by_name::{closure#0} +FNDA:1,conjure_core::rule_engine::get_rule_by_name +FNDA:1,conjure_core::rule_engine::get_rule_by_name::{closure#0} +FNDA:1,conjure_core::rule_engine::get_rule_sets_for_solver_family::{closure#0}::{closure#0} FNDA:0,rust_out::main::_doctest_main_crates_conjure_core_src_rule_engine_mod_rs_154_0::CONJURE_GEN_RULE_SET_MYRULESET::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rule_engine::get_rule_sets_for_solver_family::{closure#0} -FNDA:0,conjure_core::rule_engine::get_rule_set_by_name::{closure#0} FNF:53 FNH:15 BRF:0 @@ -6885,6 +6992,32 @@ DA:190,8 LF:129 LH:125 end_of_record +SF:crates/conjure_core/src/stats/mod.rs +FN:16,::new +FN:16,::new +FN:20,::add_solver_run +FN:20,::add_solver_run +FN:16,::new +FN:20,::add_solver_run +FNDA:0,::new +FNDA:0,::new +FNDA:0,::add_solver_run +FNDA:1,::add_solver_run +FNDA:0,::new +FNDA:0,::add_solver_run +FNF:6 +FNH:1 +BRF:0 +BRH:0 +DA:16,0 +DA:17,0 +DA:18,0 +DA:20,135 +DA:21,135 +DA:22,135 +LF:6 +LH:3 +end_of_record SF:crates/conjure_macros/src/lib.rs FN:151,rust_out::main::_doctest_main_crates_conjure_macros_src_lib_rs_151_0 FN:82,conjure_rules_proc_macro::parse_parenthesized:: @@ -7148,18 +7281,18 @@ LF:35 LH:0 end_of_record SF:crates/conjure_core/src/solver/model_modifier.rs +FN:27,<_ as conjure_core::solver::model_modifier::ModelModifier>::add_variable FN:23,<_ as conjure_core::solver::model_modifier::ModelModifier>::add_constraint FN:27,<_ as conjure_core::solver::model_modifier::ModelModifier>::add_variable FN:23,<_ as conjure_core::solver::model_modifier::ModelModifier>::add_constraint FN:23,<_ as conjure_core::solver::model_modifier::ModelModifier>::add_constraint FN:27,<_ as conjure_core::solver::model_modifier::ModelModifier>::add_variable -FN:27,<_ as conjure_core::solver::model_modifier::ModelModifier>::add_variable +FNDA:0,<_ as conjure_core::solver::model_modifier::ModelModifier>::add_variable FNDA:0,<_ as conjure_core::solver::model_modifier::ModelModifier>::add_constraint FNDA:0,<_ as conjure_core::solver::model_modifier::ModelModifier>::add_variable FNDA:0,<_ as conjure_core::solver::model_modifier::ModelModifier>::add_constraint FNDA:0,<_ as conjure_core::solver::model_modifier::ModelModifier>::add_constraint FNDA:0,<_ as conjure_core::solver::model_modifier::ModelModifier>::add_variable -FNDA:0,<_ as conjure_core::solver::model_modifier::ModelModifier>::add_variable FNF:6 FNH:0 BRF:0 @@ -7174,164 +7307,170 @@ LF:6 LH:0 end_of_record SF:crates/conjure_core/src/solver/adaptors/minion.rs -FN:86,::default -FN:77,::new -FN:41,conjure_core::solver::adaptors::minion::minion_rs_callback -FN:215,conjure_core::solver::adaptors::minion::_parse_booldomain_var -FN:297,conjure_core::solver::adaptors::minion::read_vars -FN:330,conjure_core::solver::adaptors::minion::read_const -FN:151,::get_family -FN:151,::get_family -FN:317,conjure_core::solver::adaptors::minion::_read_ref -FN:151,::get_family -FN:306,conjure_core::solver::adaptors::minion::read_var -FN:86,::default -FN:44,conjure_core::solver::adaptors::minion::minion_rs_callback::{closure#0} -FN:251,conjure_core::solver::adaptors::minion::parse_expr -FN:116,::solve::{closure#1} -FN:330,conjure_core::solver::adaptors::minion::read_const -FN:105,::solve::{closure#0}::{closure#0} -FN:317,conjure_core::solver::adaptors::minion::_read_ref -FN:135,::solve_mut -FN:215,conjure_core::solver::adaptors::minion::_parse_booldomain_var -FN:156,conjure_core::solver::adaptors::minion::parse_vars -FN:156,conjure_core::solver::adaptors::minion::parse_vars -FN:44,conjure_core::solver::adaptors::minion::minion_rs_callback::{closure#0}::{closure#0} -FN:251,conjure_core::solver::adaptors::minion::parse_expr -FN:143,::load_model -FN:330,conjure_core::solver::adaptors::minion::read_const -FN:135,::solve_mut -FN:77,::new -FN:93,::solve +FN:231,conjure_core::solver::adaptors::minion::_try_add_var FN:44,conjure_core::solver::adaptors::minion::minion_rs_callback::{closure#0}::{closure#0} -FN:306,conjure_core::solver::adaptors::minion::read_var +FN:321,conjure_core::solver::adaptors::minion::_read_ref FN:105,::solve::{closure#0} -FN:41,conjure_core::solver::adaptors::minion::minion_rs_callback -FN:181,conjure_core::solver::adaptors::minion::_parse_intdomain_var -FN:227,conjure_core::solver::adaptors::minion::_try_add_var -FN:77,::new -FN:259,conjure_core::solver::adaptors::minion::read_expr -FN:291,conjure_core::solver::adaptors::minion::read_expr::{closure#0} -FN:93,::solve -FN:291,conjure_core::solver::adaptors::minion::read_expr::{closure#0} -FN:227,conjure_core::solver::adaptors::minion::_try_add_var +FN:135,::solve_mut +FN:245,conjure_core::solver::adaptors::minion::parse_exprs FN:143,::load_model -FN:306,conjure_core::solver::adaptors::minion::read_var -FN:93,::solve -FN:317,conjure_core::solver::adaptors::minion::_read_ref -FN:44,conjure_core::solver::adaptors::minion::minion_rs_callback::{closure#0}::{closure#0} -FN:181,conjure_core::solver::adaptors::minion::_parse_intdomain_var -FN:291,conjure_core::solver::adaptors::minion::read_expr::{closure#0} -FN:169,conjure_core::solver::adaptors::minion::parse_var -FN:259,conjure_core::solver::adaptors::minion::read_expr -FN:297,conjure_core::solver::adaptors::minion::read_vars -FN:215,conjure_core::solver::adaptors::minion::_parse_booldomain_var -FN:181,conjure_core::solver::adaptors::minion::_parse_intdomain_var FN:105,::solve::{closure#0}::{closure#0} -FN:86,::default -FN:241,conjure_core::solver::adaptors::minion::parse_exprs +FN:245,conjure_core::solver::adaptors::minion::parse_exprs +FN:105,::solve::{closure#0}::{closure#0} +FN:295,conjure_core::solver::adaptors::minion::read_expr::{closure#0} +FN:185,conjure_core::solver::adaptors::minion::_parse_intdomain_var +FN:255,conjure_core::solver::adaptors::minion::parse_expr +FN:295,conjure_core::solver::adaptors::minion::read_expr::{closure#0} +FN:185,conjure_core::solver::adaptors::minion::_parse_intdomain_var +FN:105,::solve::{closure#0} +FN:219,conjure_core::solver::adaptors::minion::_parse_booldomain_var +FN:155,::get_name +FN:160,conjure_core::solver::adaptors::minion::parse_vars +FN:231,conjure_core::solver::adaptors::minion::_try_add_var +FN:173,conjure_core::solver::adaptors::minion::parse_var +FN:310,conjure_core::solver::adaptors::minion::read_var +FN:105,::solve::{closure#0} +FN:173,conjure_core::solver::adaptors::minion::parse_var +FN:334,conjure_core::solver::adaptors::minion::read_const FN:143,::load_model -FN:44,conjure_core::solver::adaptors::minion::minion_rs_callback::{closure#0} -FN:135,::solve_mut +FN:151,::get_family +FN:255,conjure_core::solver::adaptors::minion::parse_expr FN:116,::solve::{closure#1} -FN:227,conjure_core::solver::adaptors::minion::_try_add_var -FN:340,conjure_core::solver::adaptors::minion::_name_to_string -FN:169,conjure_core::solver::adaptors::minion::parse_var -FN:44,conjure_core::solver::adaptors::minion::minion_rs_callback::{closure#0} -FN:297,conjure_core::solver::adaptors::minion::read_vars +FN:301,conjure_core::solver::adaptors::minion::read_vars FN:116,::solve::{closure#1} -FN:340,conjure_core::solver::adaptors::minion::_name_to_string -FN:340,conjure_core::solver::adaptors::minion::_name_to_string +FN:301,conjure_core::solver::adaptors::minion::read_vars +FN:301,conjure_core::solver::adaptors::minion::read_vars +FN:93,::solve +FN:93,::solve +FN:219,conjure_core::solver::adaptors::minion::_parse_booldomain_var +FN:151,::get_family FN:41,conjure_core::solver::adaptors::minion::minion_rs_callback -FN:241,conjure_core::solver::adaptors::minion::parse_exprs -FN:105,::solve::{closure#0} -FN:156,conjure_core::solver::adaptors::minion::parse_vars -FN:251,conjure_core::solver::adaptors::minion::parse_expr -FN:105,::solve::{closure#0} -FN:241,conjure_core::solver::adaptors::minion::parse_exprs -FN:105,::solve::{closure#0}::{closure#0} -FN:259,conjure_core::solver::adaptors::minion::read_expr -FN:169,conjure_core::solver::adaptors::minion::parse_var -FNDA:0,::default -FNDA:0,::new -FNDA:0,conjure_core::solver::adaptors::minion::minion_rs_callback -FNDA:1,conjure_core::solver::adaptors::minion::_parse_booldomain_var -FNDA:1,conjure_core::solver::adaptors::minion::read_vars -FNDA:1,conjure_core::solver::adaptors::minion::read_const -FNDA:0,::get_family -FNDA:0,::get_family +FN:344,conjure_core::solver::adaptors::minion::_name_to_string +FN:116,::solve::{closure#1} +FN:219,conjure_core::solver::adaptors::minion::_parse_booldomain_var +FN:155,::get_name +FN:263,conjure_core::solver::adaptors::minion::read_expr +FN:44,conjure_core::solver::adaptors::minion::minion_rs_callback::{closure#0}::{closure#0} +FN:334,conjure_core::solver::adaptors::minion::read_const +FN:41,conjure_core::solver::adaptors::minion::minion_rs_callback +FN:344,conjure_core::solver::adaptors::minion::_name_to_string +FN:255,conjure_core::solver::adaptors::minion::parse_expr +FN:155,::get_name +FN:245,conjure_core::solver::adaptors::minion::parse_exprs +FN:263,conjure_core::solver::adaptors::minion::read_expr +FN:86,::default +FN:310,conjure_core::solver::adaptors::minion::read_var +FN:44,conjure_core::solver::adaptors::minion::minion_rs_callback::{closure#0}::{closure#0} +FN:173,conjure_core::solver::adaptors::minion::parse_var +FN:86,::default +FN:77,::new +FN:86,::default +FN:77,::new +FN:151,::get_family +FN:160,conjure_core::solver::adaptors::minion::parse_vars +FN:310,conjure_core::solver::adaptors::minion::read_var +FN:93,::solve +FN:105,::solve::{closure#0}::{closure#0} +FN:160,conjure_core::solver::adaptors::minion::parse_vars +FN:321,conjure_core::solver::adaptors::minion::_read_ref +FN:295,conjure_core::solver::adaptors::minion::read_expr::{closure#0} +FN:44,conjure_core::solver::adaptors::minion::minion_rs_callback::{closure#0} +FN:185,conjure_core::solver::adaptors::minion::_parse_intdomain_var +FN:135,::solve_mut +FN:321,conjure_core::solver::adaptors::minion::_read_ref +FN:143,::load_model +FN:334,conjure_core::solver::adaptors::minion::read_const +FN:44,conjure_core::solver::adaptors::minion::minion_rs_callback::{closure#0} +FN:41,conjure_core::solver::adaptors::minion::minion_rs_callback +FN:44,conjure_core::solver::adaptors::minion::minion_rs_callback::{closure#0} +FN:344,conjure_core::solver::adaptors::minion::_name_to_string +FN:263,conjure_core::solver::adaptors::minion::read_expr +FN:135,::solve_mut +FN:77,::new +FN:231,conjure_core::solver::adaptors::minion::_try_add_var +FNDA:0,conjure_core::solver::adaptors::minion::_try_add_var +FNDA:0,conjure_core::solver::adaptors::minion::minion_rs_callback::{closure#0}::{closure#0} FNDA:1,conjure_core::solver::adaptors::minion::_read_ref -FNDA:0,::get_family -FNDA:0,conjure_core::solver::adaptors::minion::read_var -FNDA:0,::default -FNDA:0,conjure_core::solver::adaptors::minion::minion_rs_callback::{closure#0} -FNDA:0,conjure_core::solver::adaptors::minion::parse_expr -FNDA:0,::solve::{closure#1} -FNDA:0,conjure_core::solver::adaptors::minion::read_const -FNDA:0,::solve::{closure#0}::{closure#0} -FNDA:0,conjure_core::solver::adaptors::minion::_read_ref +FNDA:1,::solve::{closure#0} FNDA:0,::solve_mut -FNDA:0,conjure_core::solver::adaptors::minion::_parse_booldomain_var -FNDA:1,conjure_core::solver::adaptors::minion::parse_vars +FNDA:0,conjure_core::solver::adaptors::minion::parse_exprs +FNDA:1,::load_model +FNDA:0,::solve::{closure#0}::{closure#0} +FNDA:0,conjure_core::solver::adaptors::minion::parse_exprs +FNDA:0,::solve::{closure#0}::{closure#0} +FNDA:0,conjure_core::solver::adaptors::minion::read_expr::{closure#0} +FNDA:1,conjure_core::solver::adaptors::minion::_parse_intdomain_var +FNDA:0,conjure_core::solver::adaptors::minion::parse_expr +FNDA:0,conjure_core::solver::adaptors::minion::read_expr::{closure#0} +FNDA:0,conjure_core::solver::adaptors::minion::_parse_intdomain_var +FNDA:0,::solve::{closure#0} +FNDA:1,conjure_core::solver::adaptors::minion::_parse_booldomain_var +FNDA:0,::get_name FNDA:0,conjure_core::solver::adaptors::minion::parse_vars -FNDA:0,conjure_core::solver::adaptors::minion::minion_rs_callback::{closure#0}::{closure#0} -FNDA:1,conjure_core::solver::adaptors::minion::parse_expr -FNDA:0,::load_model +FNDA:1,conjure_core::solver::adaptors::minion::_try_add_var +FNDA:0,conjure_core::solver::adaptors::minion::parse_var +FNDA:0,conjure_core::solver::adaptors::minion::read_var +FNDA:0,::solve::{closure#0} +FNDA:1,conjure_core::solver::adaptors::minion::parse_var FNDA:0,conjure_core::solver::adaptors::minion::read_const -FNDA:0,::solve_mut -FNDA:0,::new +FNDA:0,::load_model +FNDA:1,::get_family +FNDA:1,conjure_core::solver::adaptors::minion::parse_expr +FNDA:0,::solve::{closure#1} +FNDA:0,conjure_core::solver::adaptors::minion::read_vars +FNDA:0,::solve::{closure#1} +FNDA:1,conjure_core::solver::adaptors::minion::read_vars +FNDA:0,conjure_core::solver::adaptors::minion::read_vars +FNDA:1,::solve FNDA:0,::solve +FNDA:0,conjure_core::solver::adaptors::minion::_parse_booldomain_var +FNDA:0,::get_family +FNDA:0,conjure_core::solver::adaptors::minion::minion_rs_callback +FNDA:0,conjure_core::solver::adaptors::minion::_name_to_string +FNDA:0,::solve::{closure#1} +FNDA:0,conjure_core::solver::adaptors::minion::_parse_booldomain_var +FNDA:0,::get_name +FNDA:0,conjure_core::solver::adaptors::minion::read_expr FNDA:0,conjure_core::solver::adaptors::minion::minion_rs_callback::{closure#0}::{closure#0} -FNDA:0,conjure_core::solver::adaptors::minion::read_var -FNDA:0,::solve::{closure#0} +FNDA:1,conjure_core::solver::adaptors::minion::read_const FNDA:1,conjure_core::solver::adaptors::minion::minion_rs_callback -FNDA:0,conjure_core::solver::adaptors::minion::_parse_intdomain_var -FNDA:0,conjure_core::solver::adaptors::minion::_try_add_var -FNDA:1,::new +FNDA:0,conjure_core::solver::adaptors::minion::_name_to_string +FNDA:0,conjure_core::solver::adaptors::minion::parse_expr +FNDA:1,::get_name +FNDA:1,conjure_core::solver::adaptors::minion::parse_exprs FNDA:1,conjure_core::solver::adaptors::minion::read_expr -FNDA:0,conjure_core::solver::adaptors::minion::read_expr::{closure#0} -FNDA:1,::solve -FNDA:0,conjure_core::solver::adaptors::minion::read_expr::{closure#0} -FNDA:1,conjure_core::solver::adaptors::minion::_try_add_var -FNDA:0,::load_model +FNDA:0,::default +FNDA:0,conjure_core::solver::adaptors::minion::read_var +FNDA:0,conjure_core::solver::adaptors::minion::minion_rs_callback::{closure#0}::{closure#0} +FNDA:0,conjure_core::solver::adaptors::minion::parse_var +FNDA:0,::default +FNDA:0,::new +FNDA:0,::default +FNDA:1,::new +FNDA:0,::get_family +FNDA:1,conjure_core::solver::adaptors::minion::parse_vars FNDA:1,conjure_core::solver::adaptors::minion::read_var FNDA:0,::solve +FNDA:0,::solve::{closure#0}::{closure#0} +FNDA:0,conjure_core::solver::adaptors::minion::parse_vars FNDA:0,conjure_core::solver::adaptors::minion::_read_ref -FNDA:0,conjure_core::solver::adaptors::minion::minion_rs_callback::{closure#0}::{closure#0} -FNDA:0,conjure_core::solver::adaptors::minion::_parse_intdomain_var FNDA:1,conjure_core::solver::adaptors::minion::read_expr::{closure#0} -FNDA:0,conjure_core::solver::adaptors::minion::parse_var -FNDA:0,conjure_core::solver::adaptors::minion::read_expr -FNDA:0,conjure_core::solver::adaptors::minion::read_vars -FNDA:0,conjure_core::solver::adaptors::minion::_parse_booldomain_var -FNDA:1,conjure_core::solver::adaptors::minion::_parse_intdomain_var -FNDA:0,::solve::{closure#0}::{closure#0} -FNDA:0,::default -FNDA:1,conjure_core::solver::adaptors::minion::parse_exprs -FNDA:1,::load_model FNDA:0,conjure_core::solver::adaptors::minion::minion_rs_callback::{closure#0} +FNDA:0,conjure_core::solver::adaptors::minion::_parse_intdomain_var FNDA:0,::solve_mut -FNDA:0,::solve::{closure#1} -FNDA:0,conjure_core::solver::adaptors::minion::_try_add_var -FNDA:0,conjure_core::solver::adaptors::minion::_name_to_string -FNDA:0,conjure_core::solver::adaptors::minion::parse_var +FNDA:0,conjure_core::solver::adaptors::minion::_read_ref +FNDA:0,::load_model +FNDA:0,conjure_core::solver::adaptors::minion::read_const FNDA:0,conjure_core::solver::adaptors::minion::minion_rs_callback::{closure#0} -FNDA:0,conjure_core::solver::adaptors::minion::read_vars -FNDA:0,::solve::{closure#1} -FNDA:0,conjure_core::solver::adaptors::minion::_name_to_string -FNDA:1,conjure_core::solver::adaptors::minion::_name_to_string FNDA:0,conjure_core::solver::adaptors::minion::minion_rs_callback -FNDA:0,conjure_core::solver::adaptors::minion::parse_exprs -FNDA:1,::solve::{closure#0} -FNDA:0,conjure_core::solver::adaptors::minion::parse_vars -FNDA:0,conjure_core::solver::adaptors::minion::parse_expr -FNDA:0,::solve::{closure#0} -FNDA:0,conjure_core::solver::adaptors::minion::parse_exprs -FNDA:0,::solve::{closure#0}::{closure#0} +FNDA:0,conjure_core::solver::adaptors::minion::minion_rs_callback::{closure#0} +FNDA:1,conjure_core::solver::adaptors::minion::_name_to_string FNDA:0,conjure_core::solver::adaptors::minion::read_expr -FNDA:1,conjure_core::solver::adaptors::minion::parse_var -FNF:78 -FNH:19 +FNDA:0,::solve_mut +FNDA:0,::new +FNDA:0,conjure_core::solver::adaptors::minion::_try_add_var +FNF:81 +FNH:21 BRF:0 BRH:0 DA:41,585 @@ -7421,60 +7560,59 @@ DA:146,180 DA:147,180 DA:148,180 DA:149,180 -DA:151,0 -DA:152,0 -DA:153,0 +DA:151,180 +DA:152,180 +DA:153,180 +DA:155,180 DA:156,180 DA:157,180 -DA:158,180 -DA:159,180 -DA:163,465 -DA:164,465 -DA:166,180 -DA:167,180 -DA:169,465 -DA:170,465 -DA:171,465 -DA:172,465 +DA:160,180 +DA:161,180 +DA:162,180 +DA:163,180 +DA:167,465 +DA:168,465 +DA:170,180 +DA:171,180 DA:173,465 DA:174,465 -DA:175,360 -DA:176,105 -DA:177,0 -DA:179,465 -DA:181,360 -DA:182,360 -DA:183,360 -DA:184,360 +DA:175,465 +DA:176,465 +DA:177,465 +DA:178,465 +DA:179,360 +DA:180,105 +DA:181,0 +DA:183,465 DA:185,360 DA:186,360 DA:187,360 DA:188,360 -DA:189,0 -DA:190,0 -DA:191,0 -DA:192,0 +DA:189,360 +DA:190,360 +DA:191,360 +DA:192,360 DA:193,0 -DA:194,360 -DA:196,360 -DA:197,360 +DA:194,0 +DA:195,0 +DA:196,0 +DA:197,0 DA:198,360 -DA:199,360 +DA:200,360 DA:201,360 DA:202,360 -DA:203,0 -DA:205,0 -DA:206,0 -DA:208,360 -DA:209,360 -DA:210,360 -DA:211,360 +DA:203,360 +DA:205,360 +DA:206,360 +DA:207,0 +DA:209,0 +DA:210,0 DA:212,360 DA:213,360 -DA:215,105 -DA:216,105 -DA:217,105 -DA:218,105 +DA:214,360 +DA:215,360 +DA:216,360 +DA:217,360 DA:219,105 DA:220,105 DA:221,105 @@ -7482,10 +7620,10 @@ DA:222,105 DA:223,105 DA:224,105 DA:225,105 -DA:227,465 -DA:228,465 -DA:229,465 -DA:230,465 +DA:226,105 +DA:227,105 +DA:228,105 +DA:229,105 DA:231,465 DA:232,465 DA:233,465 @@ -7495,154 +7633,178 @@ DA:236,465 DA:237,465 DA:238,465 DA:239,465 -DA:241,180 -DA:242,180 -DA:243,180 -DA:244,180 -DA:245,675 -DA:246,675 +DA:240,465 +DA:241,465 +DA:242,465 +DA:243,465 +DA:245,180 +DA:246,180 +DA:247,180 DA:248,180 -DA:249,180 -DA:251,675 -DA:252,675 -DA:253,675 -DA:254,675 +DA:249,675 +DA:250,675 +DA:252,180 +DA:253,180 DA:255,675 DA:256,675 DA:257,675 -DA:259,1275 -DA:260,1275 -DA:261,45 -DA:262,45 -DA:263,45 -DA:265,30 -DA:266,30 -DA:267,30 -DA:269,870 -DA:270,870 -DA:271,870 -DA:272,870 -DA:274,0 -DA:275,0 -DA:276,0 -DA:285,30 -DA:286,30 -DA:288,300 -DA:289,300 -DA:290,300 -DA:291,600 +DA:258,675 +DA:259,675 +DA:260,675 +DA:261,675 +DA:263,1275 +DA:264,1275 +DA:265,45 +DA:266,45 +DA:267,45 +DA:269,30 +DA:270,30 +DA:271,30 +DA:273,870 +DA:274,870 +DA:275,870 +DA:276,870 +DA:278,0 +DA:279,0 +DA:280,0 +DA:289,30 +DA:290,30 DA:292,300 -DA:294,0 -DA:296,1275 -DA:297,105 -DA:298,105 -DA:299,390 -DA:300,285 -DA:301,285 -DA:303,105 -DA:304,105 -DA:306,2100 -DA:307,2100 -DA:308,2100 -DA:309,1950 -DA:310,150 -DA:311,150 -DA:312,0 -DA:315,2100 -DA:317,2100 -DA:318,2100 -DA:319,1950 -DA:320,150 -DA:321,150 -DA:322,150 -DA:323,150 +DA:293,300 +DA:294,300 +DA:295,600 +DA:296,300 +DA:298,0 +DA:300,1275 +DA:301,105 +DA:302,105 +DA:303,390 +DA:304,285 +DA:305,285 +DA:307,105 +DA:308,105 +DA:310,2100 +DA:311,2100 +DA:312,2100 +DA:313,1950 +DA:314,150 +DA:315,150 +DA:316,0 +DA:319,2100 +DA:321,2100 +DA:322,2100 +DA:323,1950 DA:324,150 -DA:326,1950 -DA:327,1950 -DA:328,2100 -DA:330,1020 -DA:331,1020 -DA:332,1020 -DA:333,0 -DA:334,0 -DA:335,0 -DA:336,0 -DA:338,1020 -DA:340,2415 -DA:341,2415 -DA:342,1515 -DA:343,900 +DA:325,150 +DA:326,150 +DA:327,150 +DA:328,150 +DA:330,1950 +DA:331,1950 +DA:332,2100 +DA:334,1020 +DA:335,1020 +DA:336,1020 +DA:337,0 +DA:338,0 +DA:339,0 +DA:340,0 +DA:342,1020 +DA:344,2415 DA:345,2415 -LF:239 -LH:200 +DA:346,1515 +DA:347,900 +DA:349,2415 +LF:242 +LH:206 +end_of_record +SF:crates/conjure_core/src/stats/solver_stats.rs +FN:31,::with_timings +FN:31,::with_timings +FN:31,::with_timings +FNDA:0,::with_timings +FNDA:0,::with_timings +FNDA:1,::with_timings +FNF:3 +FNH:1 +BRF:0 +BRH:0 +DA:31,180 +DA:32,180 +DA:33,180 +DA:34,180 +DA:35,180 +DA:36,180 +LF:6 +LH:6 end_of_record SF:crates/conjure_core/src/rule_engine/rule.rs +FN:139,::hash:: FN:62,::with_top -FN:71,::apply -FN:53,::with_symbols -FN:131,::eq -FN:10,::fmt -FN:53,::with_symbols FN:119,::apply +FN:35,::new FN:44,::pure FN:10,::fmt -FN:131,::eq -FN:107,::new -FN:10,::fmt -FN:119,::apply -FN:44,::pure -FN:139,::hash:: -FN:131,::eq -FN:71,::apply -FN:139,::hash:: +FN:53,::with_symbols +FN:62,::with_top FN:107,::new -FN:139,::hash::<_> -FN:35,::new FN:35,::new FN:125,::fmt -FN:35,::new +FN:44,::pure +FN:71,::apply FN:71,::apply +FN:119,::apply +FN:35,::new FN:125,::fmt FN:53,::with_symbols +FN:10,::fmt +FN:131,::eq +FN:10,::fmt +FN:107,::new +FN:107,::new +FN:139,::hash:: FN:62,::with_top -FN:62,::with_top -FN:125,::fmt FN:119,::apply -FN:107,::new +FN:139,::hash::<_> FN:44,::pure +FN:131,::eq +FN:53,::with_symbols +FN:125,::fmt +FN:131,::eq +FN:71,::apply +FNDA:1,::hash:: FNDA:0,::with_top -FNDA:1,::apply -FNDA:0,::with_symbols -FNDA:1,::eq -FNDA:0,::fmt -FNDA:0,::with_symbols FNDA:0,::apply -FNDA:1,::pure +FNDA:0,::new +FNDA:0,::pure FNDA:0,::fmt -FNDA:0,::eq +FNDA:0,::with_symbols +FNDA:0,::with_top FNDA:0,::new -FNDA:0,::fmt -FNDA:1,::apply +FNDA:1,::new +FNDA:0,::fmt FNDA:0,::pure -FNDA:0,::hash:: -FNDA:0,::eq FNDA:0,::apply -FNDA:1,::hash:: -FNDA:0,::new -FNDA:0,::hash::<_> -FNDA:0,::new +FNDA:1,::apply +FNDA:0,::apply FNDA:0,::new FNDA:0,::fmt -FNDA:1,::new -FNDA:0,::apply -FNDA:0,::fmt FNDA:0,::with_symbols +FNDA:0,::fmt +FNDA:1,::eq +FNDA:0,::fmt +FNDA:0,::new +FNDA:0,::new +FNDA:0,::hash:: FNDA:0,::with_top -FNDA:0,::with_top +FNDA:1,::apply +FNDA:0,::hash::<_> +FNDA:1,::pure +FNDA:0,::eq +FNDA:0,::with_symbols FNDA:0,::fmt -FNDA:0,::apply -FNDA:0,::new -FNDA:0,::pure +FNDA:0,::eq +FNDA:0,::apply FNF:33 FNH:6 BRF:0 @@ -7708,12 +7870,12 @@ DA:121,770670 DA:125,0 DA:126,0 DA:127,0 -DA:131,39870 -DA:132,39870 -DA:133,39870 -DA:139,61935 -DA:140,61935 -DA:141,61935 +DA:131,39420 +DA:132,39420 +DA:133,39420 +DA:139,61035 +DA:140,61035 +DA:141,61035 LF:67 LH:34 end_of_record @@ -8014,53 +8176,53 @@ DA:35,785 DA:36,785 DA:37,785 DA:38,785 -DA:39,29582 -DA:40,29582 -DA:41,13242 -DA:42,13298 -DA:43,13298 -DA:44,13298 -DA:45,13298 +DA:39,31395 +DA:40,31395 +DA:41,14110 +DA:42,14113 +DA:43,14113 +DA:44,14113 +DA:45,14113 DA:46,785 -DA:47,28797 +DA:47,30610 DA:48,785 -DA:49,29582 +DA:49,31395 DA:50,785 DA:51,785 DA:52,785 -DA:53,9954 -DA:54,9944 -DA:55,9944 -DA:56,9944 -DA:57,9944 -DA:58,9944 -DA:59,4517 -DA:60,4455 -DA:61,4445 -DA:62,4445 +DA:53,9087 +DA:54,9077 +DA:55,9077 +DA:56,9077 +DA:57,9077 +DA:58,9077 +DA:59,4069 +DA:60,4066 +DA:61,4056 +DA:62,4056 DA:63,785 -DA:64,1002 -DA:65,9686 -DA:66,9686 -DA:67,9686 -DA:68,9686 -DA:69,9686 -DA:70,9686 -DA:71,992 +DA:64,972 +DA:65,8819 +DA:66,8819 +DA:67,8819 +DA:68,8819 +DA:69,8819 +DA:70,8819 +DA:71,962 DA:72,785 DA:73,785 -DA:74,9954 +DA:74,9087 DA:75,785 DA:76,785 DA:77,785 DA:78,785 DA:79,785 -DA:82,9793 -DA:83,9793 -DA:84,4361 -DA:85,4418 -DA:86,9535 -DA:88,9793 +DA:82,11133 +DA:83,11133 +DA:84,5019 +DA:85,5020 +DA:86,10875 +DA:88,11133 DA:93,2 DA:94,2 DA:95,2 @@ -8073,7 +8235,7 @@ DA:101,2 DA:102,5160 DA:103,2 DA:104,2 -DA:123,4418 +DA:123,5020 DA:133,1 DA:134,1 DA:135,1 @@ -8091,42 +8253,42 @@ LF:80 LH:77 end_of_record SF:crates/conjure_core/src/rule_engine/rewrite.rs -FN:36,>::from -FN:117,conjure_core::rule_engine::rewrite::choose_rewrite -FN:117,conjure_core::rule_engine::rewrite::choose_rewrite -FN:36,>::from -FN:47,conjure_core::rule_engine::rewrite::rewrite_model FN:47,conjure_core::rule_engine::rewrite::rewrite_model +FN:64,conjure_core::rule_engine::rewrite::rewrite_iteration +FN:28,::fmt FN:90,conjure_core::rule_engine::rewrite::apply_all_rules +FN:47,conjure_core::rule_engine::rewrite::rewrite_model +FN:36,>::from +FN:28,::fmt +FN:64,conjure_core::rule_engine::rewrite::rewrite_iteration FN:117,conjure_core::rule_engine::rewrite::choose_rewrite FN:90,conjure_core::rule_engine::rewrite::apply_all_rules -FN:90,conjure_core::rule_engine::rewrite::apply_all_rules -FN:28,::fmt -FN:28,::fmt FN:47,conjure_core::rule_engine::rewrite::rewrite_model -FN:64,conjure_core::rule_engine::rewrite::rewrite_iteration FN:36,>::from -FN:64,conjure_core::rule_engine::rewrite::rewrite_iteration -FN:64,conjure_core::rule_engine::rewrite::rewrite_iteration +FN:117,conjure_core::rule_engine::rewrite::choose_rewrite +FN:36,>::from +FN:90,conjure_core::rule_engine::rewrite::apply_all_rules FN:28,::fmt +FN:117,conjure_core::rule_engine::rewrite::choose_rewrite +FN:64,conjure_core::rule_engine::rewrite::rewrite_iteration +FNDA:0,conjure_core::rule_engine::rewrite::rewrite_model +FNDA:0,conjure_core::rule_engine::rewrite::rewrite_iteration +FNDA:0,::fmt +FNDA:1,conjure_core::rule_engine::rewrite::apply_all_rules +FNDA:0,conjure_core::rule_engine::rewrite::rewrite_model FNDA:0,>::from +FNDA:0,::fmt +FNDA:1,conjure_core::rule_engine::rewrite::rewrite_iteration FNDA:0,conjure_core::rule_engine::rewrite::choose_rewrite -FNDA:0,conjure_core::rule_engine::rewrite::choose_rewrite -FNDA:0,>::from -FNDA:0,conjure_core::rule_engine::rewrite::rewrite_model -FNDA:1,conjure_core::rule_engine::rewrite::rewrite_model FNDA:0,conjure_core::rule_engine::rewrite::apply_all_rules +FNDA:1,conjure_core::rule_engine::rewrite::rewrite_model +FNDA:0,>::from FNDA:1,conjure_core::rule_engine::rewrite::choose_rewrite +FNDA:0,>::from FNDA:0,conjure_core::rule_engine::rewrite::apply_all_rules -FNDA:1,conjure_core::rule_engine::rewrite::apply_all_rules FNDA:0,::fmt -FNDA:0,::fmt -FNDA:0,conjure_core::rule_engine::rewrite::rewrite_model -FNDA:1,conjure_core::rule_engine::rewrite::rewrite_iteration -FNDA:0,>::from -FNDA:0,conjure_core::rule_engine::rewrite::rewrite_iteration +FNDA:0,conjure_core::rule_engine::rewrite::choose_rewrite FNDA:0,conjure_core::rule_engine::rewrite::rewrite_iteration -FNDA:0,::fmt FNF:18 FNH:4 BRF:0 @@ -8198,228 +8360,228 @@ LF:63 LH:54 end_of_record SF:crates/conjure_core/src/rules/constant.rs -FN:10,conjure_core::rules::constant::CONJURE_GEN_RULE_APPLY_EVAL_CONSTANT::__typecheck -FN:24,conjure_core::rules::constant::eval_constant -FN:113,conjure_core::rules::constant::flat_op:: -FN:97,conjure_core::rules::constant::vec_op:: FN:34,conjure_core::rules::constant::eval_constant::{closure#5} -FN:28,conjure_core::rules::constant::eval_constant::{closure#0} +FN:78,conjure_core::rules::constant::bin_op:: FN:8,conjure_core::rules::constant::CONJURE_GEN_RULE_SET_CONSTANT::__typecheck::{closure#0}::{closure#0} -FN:122,conjure_core::rules::constant::unwrap_expr:: -FN:113,conjure_core::rules::constant::flat_op:: -FN:35,conjure_core::rules::constant::eval_constant::{closure#6} FN:11,conjure_core::rules::constant::apply_eval_constant +FN:70,conjure_core::rules::constant::un_op:: +FN:43,conjure_core::rules::constant::eval_constant::{closure#9} +FN:43,conjure_core::rules::constant::eval_constant::{closure#9}::{closure#0} +FN:43,conjure_core::rules::constant::eval_constant::{closure#9}::{closure#0} +FN:122,conjure_core::rules::constant::unwrap_expr:: +FN:56,conjure_core::rules::constant::eval_constant::{closure#13} +FN:35,conjure_core::rules::constant::eval_constant::{closure#6} +FN:78,conjure_core::rules::constant::bin_op:: +FN:87,conjure_core::rules::constant::tern_op:: +FN:78,conjure_core::rules::constant::bin_op:: +FN:97,conjure_core::rules::constant::vec_op:: +FN:28,conjure_core::rules::constant::eval_constant::{closure#0} +FN:35,conjure_core::rules::constant::eval_constant::{closure#6} +FN:97,conjure_core::rules::constant::vec_op:: +FN:97,conjure_core::rules::constant::vec_op:: +FN:122,conjure_core::rules::constant::unwrap_expr:: +FN:16,conjure_core::rules::constant::apply_eval_constant::{closure#0} +FN:46,conjure_core::rules::constant::eval_constant::{closure#10} +FN:8,conjure_core::rules::constant::CONJURE_GEN_RULE_SET_CONSTANT::__typecheck::{closure#0} +FN:29,conjure_core::rules::constant::eval_constant::{closure#1} +FN:122,conjure_core::rules::constant::unwrap_expr:: FN:29,conjure_core::rules::constant::eval_constant::{closure#1}::{closure#0} -FN:61,conjure_core::rules::constant::eval_constant::{closure#14} FN:78,conjure_core::rules::constant::bin_op:: +FN:56,conjure_core::rules::constant::eval_constant::{closure#13} FN:16,conjure_core::rules::constant::apply_eval_constant::{closure#0} +FN:43,conjure_core::rules::constant::eval_constant::{closure#9} +FN:53,conjure_core::rules::constant::eval_constant::{closure#12} +FN:53,conjure_core::rules::constant::eval_constant::{closure#12} +FN:33,conjure_core::rules::constant::eval_constant::{closure#4} +FN:122,conjure_core::rules::constant::unwrap_expr:: +FN:87,conjure_core::rules::constant::tern_op:: +FN:49,conjure_core::rules::constant::eval_constant::{closure#11} +FN:32,conjure_core::rules::constant::eval_constant::{closure#3} +FN:113,conjure_core::rules::constant::flat_op:: +FN:34,conjure_core::rules::constant::eval_constant::{closure#5} FN:31,conjure_core::rules::constant::eval_constant::{closure#2} FN:40,conjure_core::rules::constant::eval_constant::{closure#8} -FN:24,conjure_core::rules::constant::eval_constant FN:122,conjure_core::rules::constant::unwrap_expr:: +FN:49,conjure_core::rules::constant::eval_constant::{closure#11} +FN:8,conjure_core::rules::constant::CONJURE_GEN_RULE_SET_CONSTANT::__typecheck FN:37,conjure_core::rules::constant::eval_constant::{closure#7} -FN:8,conjure_core::rules::constant::CONJURE_GEN_RULE_SET_CONSTANT::__typecheck::{closure#0}::{closure#0} -FN:43,conjure_core::rules::constant::eval_constant::{closure#9}::{closure#0} -FN:35,conjure_core::rules::constant::eval_constant::{closure#6} FN:10,conjure_core::rules::constant::CONJURE_GEN_RULE_APPLY_EVAL_CONSTANT::__typecheck::{closure#0}::{closure#0} -FN:34,conjure_core::rules::constant::eval_constant::{closure#5} -FN:32,conjure_core::rules::constant::eval_constant::{closure#3} -FN:33,conjure_core::rules::constant::eval_constant::{closure#4} +FN:24,conjure_core::rules::constant::eval_constant +FN:29,conjure_core::rules::constant::eval_constant::{closure#1} +FN:46,conjure_core::rules::constant::eval_constant::{closure#10} +FN:40,conjure_core::rules::constant::eval_constant::{closure#8}::{closure#0} +FN:43,conjure_core::rules::constant::eval_constant::{closure#9} +FN:10,conjure_core::rules::constant::CONJURE_GEN_RULE_APPLY_EVAL_CONSTANT::__typecheck +FN:10,conjure_core::rules::constant::CONJURE_GEN_RULE_APPLY_EVAL_CONSTANT::__typecheck::{closure#0}::{closure#0} +FN:8,conjure_core::rules::constant::CONJURE_GEN_RULE_SET_CONSTANT::__typecheck::{closure#0} +FN:122,conjure_core::rules::constant::unwrap_expr:: +FN:87,conjure_core::rules::constant::tern_op:: +FN:43,conjure_core::rules::constant::eval_constant::{closure#9}::{closure#0} FN:16,conjure_core::rules::constant::apply_eval_constant::{closure#0} FN:10,conjure_core::rules::constant::CONJURE_GEN_RULE_APPLY_EVAL_CONSTANT::__typecheck::{closure#0} -FN:56,conjure_core::rules::constant::eval_constant::{closure#13} FN:97,conjure_core::rules::constant::vec_op:: -FN:32,conjure_core::rules::constant::eval_constant::{closure#3} -FN:70,conjure_core::rules::constant::un_op:: -FN:105,conjure_core::rules::constant::opt_vec_op:: -FN:122,conjure_core::rules::constant::unwrap_expr:: -FN:40,conjure_core::rules::constant::eval_constant::{closure#8} -FN:122,conjure_core::rules::constant::unwrap_expr:: -FN:43,conjure_core::rules::constant::eval_constant::{closure#9} +FN:113,conjure_core::rules::constant::flat_op:: FN:8,conjure_core::rules::constant::CONJURE_GEN_RULE_SET_CONSTANT::__typecheck -FN:10,conjure_core::rules::constant::CONJURE_GEN_RULE_APPLY_EVAL_CONSTANT::__typecheck::{closure#0} -FN:34,conjure_core::rules::constant::eval_constant::{closure#5} -FN:43,conjure_core::rules::constant::eval_constant::{closure#9}::{closure#0} -FN:46,conjure_core::rules::constant::eval_constant::{closure#10} -FN:40,conjure_core::rules::constant::eval_constant::{closure#8}::{closure#0} -FN:97,conjure_core::rules::constant::vec_op:: FN:33,conjure_core::rules::constant::eval_constant::{closure#4} -FN:37,conjure_core::rules::constant::eval_constant::{closure#7} -FN:87,conjure_core::rules::constant::tern_op:: -FN:8,conjure_core::rules::constant::CONJURE_GEN_RULE_SET_CONSTANT::__typecheck -FN:78,conjure_core::rules::constant::bin_op:: -FN:49,conjure_core::rules::constant::eval_constant::{closure#11} -FN:24,conjure_core::rules::constant::eval_constant -FN:43,conjure_core::rules::constant::eval_constant::{closure#9}::{closure#0} -FN:56,conjure_core::rules::constant::eval_constant::{closure#13} FN:78,conjure_core::rules::constant::bin_op:: -FN:46,conjure_core::rules::constant::eval_constant::{closure#10} -FN:8,conjure_core::rules::constant::CONJURE_GEN_RULE_SET_CONSTANT::__typecheck -FN:29,conjure_core::rules::constant::eval_constant::{closure#1}::{closure#0} -FN:122,conjure_core::rules::constant::unwrap_expr:: -FN:46,conjure_core::rules::constant::eval_constant::{closure#10} -FN:105,conjure_core::rules::constant::opt_vec_op:: +FN:97,conjure_core::rules::constant::vec_op:: FN:113,conjure_core::rules::constant::flat_op:: +FN:29,conjure_core::rules::constant::eval_constant::{closure#1} +FN:29,conjure_core::rules::constant::eval_constant::{closure#1}::{closure#0} +FN:8,conjure_core::rules::constant::CONJURE_GEN_RULE_SET_CONSTANT::__typecheck::{closure#0}::{closure#0} FN:8,conjure_core::rules::constant::CONJURE_GEN_RULE_SET_CONSTANT::__typecheck::{closure#0} +FN:8,conjure_core::rules::constant::CONJURE_GEN_RULE_SET_CONSTANT::__typecheck::{closure#0}::{closure#0} FN:10,conjure_core::rules::constant::CONJURE_GEN_RULE_APPLY_EVAL_CONSTANT::__typecheck::{closure#0}::{closure#0} -FN:10,conjure_core::rules::constant::CONJURE_GEN_RULE_APPLY_EVAL_CONSTANT::__typecheck -FN:53,conjure_core::rules::constant::eval_constant::{closure#12} -FN:29,conjure_core::rules::constant::eval_constant::{closure#1} -FN:11,conjure_core::rules::constant::apply_eval_constant -FN:122,conjure_core::rules::constant::unwrap_expr:: -FN:97,conjure_core::rules::constant::vec_op:: -FN:49,conjure_core::rules::constant::eval_constant::{closure#11} -FN:29,conjure_core::rules::constant::eval_constant::{closure#1} -FN:97,conjure_core::rules::constant::vec_op:: -FN:43,conjure_core::rules::constant::eval_constant::{closure#9} -FN:87,conjure_core::rules::constant::tern_op:: +FN:8,conjure_core::rules::constant::CONJURE_GEN_RULE_SET_CONSTANT::__typecheck +FN:32,conjure_core::rules::constant::eval_constant::{closure#3} +FN:28,conjure_core::rules::constant::eval_constant::{closure#0} +FN:70,conjure_core::rules::constant::un_op:: FN:40,conjure_core::rules::constant::eval_constant::{closure#8} +FN:61,conjure_core::rules::constant::eval_constant::{closure#14} FN:78,conjure_core::rules::constant::bin_op:: -FN:56,conjure_core::rules::constant::eval_constant::{closure#13} -FN:8,conjure_core::rules::constant::CONJURE_GEN_RULE_SET_CONSTANT::__typecheck::{closure#0}::{closure#0} -FN:35,conjure_core::rules::constant::eval_constant::{closure#6} -FN:43,conjure_core::rules::constant::eval_constant::{closure#9} -FN:70,conjure_core::rules::constant::un_op:: +FN:61,conjure_core::rules::constant::eval_constant::{closure#14} +FN:10,conjure_core::rules::constant::CONJURE_GEN_RULE_APPLY_EVAL_CONSTANT::__typecheck FN:105,conjure_core::rules::constant::opt_vec_op:: -FN:33,conjure_core::rules::constant::eval_constant::{closure#4} -FN:29,conjure_core::rules::constant::eval_constant::{closure#1}::{closure#0} -FN:8,conjure_core::rules::constant::CONJURE_GEN_RULE_SET_CONSTANT::__typecheck::{closure#0} +FN:10,conjure_core::rules::constant::CONJURE_GEN_RULE_APPLY_EVAL_CONSTANT::__typecheck::{closure#0} +FN:97,conjure_core::rules::constant::vec_op:: FN:37,conjure_core::rules::constant::eval_constant::{closure#7} -FN:40,conjure_core::rules::constant::eval_constant::{closure#8}::{closure#0} -FN:53,conjure_core::rules::constant::eval_constant::{closure#12} -FN:87,conjure_core::rules::constant::tern_op:: -FN:78,conjure_core::rules::constant::bin_op:: -FN:28,conjure_core::rules::constant::eval_constant::{closure#0} FN:31,conjure_core::rules::constant::eval_constant::{closure#2} -FN:8,conjure_core::rules::constant::CONJURE_GEN_RULE_SET_CONSTANT::__typecheck::{closure#0} -FN:49,conjure_core::rules::constant::eval_constant::{closure#11} -FN:61,conjure_core::rules::constant::eval_constant::{closure#14} -FN:29,conjure_core::rules::constant::eval_constant::{closure#1} -FN:10,conjure_core::rules::constant::CONJURE_GEN_RULE_APPLY_EVAL_CONSTANT::__typecheck::{closure#0} -FN:11,conjure_core::rules::constant::apply_eval_constant +FN:105,conjure_core::rules::constant::opt_vec_op:: +FN:24,conjure_core::rules::constant::eval_constant +FN:33,conjure_core::rules::constant::eval_constant::{closure#4} +FN:40,conjure_core::rules::constant::eval_constant::{closure#8} +FN:24,conjure_core::rules::constant::eval_constant FN:32,conjure_core::rules::constant::eval_constant::{closure#3} -FN:31,conjure_core::rules::constant::eval_constant::{closure#2} -FN:16,conjure_core::rules::constant::apply_eval_constant::{closure#0} +FN:49,conjure_core::rules::constant::eval_constant::{closure#11} +FN:28,conjure_core::rules::constant::eval_constant::{closure#0} FN:70,conjure_core::rules::constant::un_op:: -FN:10,conjure_core::rules::constant::CONJURE_GEN_RULE_APPLY_EVAL_CONSTANT::__typecheck::{closure#0}::{closure#0} -FN:97,conjure_core::rules::constant::vec_op:: FN:10,conjure_core::rules::constant::CONJURE_GEN_RULE_APPLY_EVAL_CONSTANT::__typecheck -FN:78,conjure_core::rules::constant::bin_op:: -FN:28,conjure_core::rules::constant::eval_constant::{closure#0} -FN:40,conjure_core::rules::constant::eval_constant::{closure#8}::{closure#0} FN:61,conjure_core::rules::constant::eval_constant::{closure#14} +FN:29,conjure_core::rules::constant::eval_constant::{closure#1}::{closure#0} +FN:40,conjure_core::rules::constant::eval_constant::{closure#8}::{closure#0} +FN:11,conjure_core::rules::constant::apply_eval_constant +FN:56,conjure_core::rules::constant::eval_constant::{closure#13} FN:53,conjure_core::rules::constant::eval_constant::{closure#12} -FNDA:0,conjure_core::rules::constant::CONJURE_GEN_RULE_APPLY_EVAL_CONSTANT::__typecheck -FNDA:0,conjure_core::rules::constant::eval_constant -FNDA:1,conjure_core::rules::constant::flat_op:: -FNDA:1,conjure_core::rules::constant::vec_op:: +FN:40,conjure_core::rules::constant::eval_constant::{closure#8}::{closure#0} +FN:34,conjure_core::rules::constant::eval_constant::{closure#5} +FN:105,conjure_core::rules::constant::opt_vec_op:: +FN:46,conjure_core::rules::constant::eval_constant::{closure#10} +FN:31,conjure_core::rules::constant::eval_constant::{closure#2} +FN:11,conjure_core::rules::constant::apply_eval_constant +FN:37,conjure_core::rules::constant::eval_constant::{closure#7} +FN:35,conjure_core::rules::constant::eval_constant::{closure#6} +FN:10,conjure_core::rules::constant::CONJURE_GEN_RULE_APPLY_EVAL_CONSTANT::__typecheck::{closure#0} FNDA:0,conjure_core::rules::constant::eval_constant::{closure#5} -FNDA:1,conjure_core::rules::constant::eval_constant::{closure#0} +FNDA:0,conjure_core::rules::constant::bin_op:: FNDA:0,conjure_core::rules::constant::CONJURE_GEN_RULE_SET_CONSTANT::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::constant::unwrap_expr:: -FNDA:0,conjure_core::rules::constant::flat_op:: +FNDA:1,conjure_core::rules::constant::apply_eval_constant +FNDA:0,conjure_core::rules::constant::un_op:: +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#9} +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#9}::{closure#0} +FNDA:1,conjure_core::rules::constant::eval_constant::{closure#9}::{closure#0} +FNDA:0,conjure_core::rules::constant::unwrap_expr:: +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#13} FNDA:0,conjure_core::rules::constant::eval_constant::{closure#6} -FNDA:0,conjure_core::rules::constant::apply_eval_constant +FNDA:0,conjure_core::rules::constant::bin_op:: +FNDA:0,conjure_core::rules::constant::tern_op:: +FNDA:1,conjure_core::rules::constant::bin_op:: +FNDA:0,conjure_core::rules::constant::vec_op:: +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#0} +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#6} +FNDA:0,conjure_core::rules::constant::vec_op:: +FNDA:1,conjure_core::rules::constant::vec_op:: +FNDA:1,conjure_core::rules::constant::unwrap_expr:: +FNDA:0,conjure_core::rules::constant::apply_eval_constant::{closure#0} +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#10} +FNDA:0,conjure_core::rules::constant::CONJURE_GEN_RULE_SET_CONSTANT::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#1} +FNDA:0,conjure_core::rules::constant::unwrap_expr:: FNDA:0,conjure_core::rules::constant::eval_constant::{closure#1}::{closure#0} -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#14} FNDA:0,conjure_core::rules::constant::bin_op:: +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#13} FNDA:0,conjure_core::rules::constant::apply_eval_constant::{closure#0} +FNDA:1,conjure_core::rules::constant::eval_constant::{closure#9} +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#12} +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#12} +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#4} +FNDA:0,conjure_core::rules::constant::unwrap_expr:: +FNDA:1,conjure_core::rules::constant::tern_op:: +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#11} +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#3} +FNDA:1,conjure_core::rules::constant::flat_op:: +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#5} FNDA:0,conjure_core::rules::constant::eval_constant::{closure#2} -FNDA:1,conjure_core::rules::constant::eval_constant::{closure#8} -FNDA:1,conjure_core::rules::constant::eval_constant +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#8} FNDA:1,conjure_core::rules::constant::unwrap_expr:: +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#11} +FNDA:0,conjure_core::rules::constant::CONJURE_GEN_RULE_SET_CONSTANT::__typecheck FNDA:0,conjure_core::rules::constant::eval_constant::{closure#7} -FNDA:0,conjure_core::rules::constant::CONJURE_GEN_RULE_SET_CONSTANT::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#9}::{closure#0} -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#6} FNDA:0,conjure_core::rules::constant::CONJURE_GEN_RULE_APPLY_EVAL_CONSTANT::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#5} -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#3} -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#4} +FNDA:1,conjure_core::rules::constant::eval_constant +FNDA:1,conjure_core::rules::constant::eval_constant::{closure#1} +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#10} +FNDA:1,conjure_core::rules::constant::eval_constant::{closure#8}::{closure#0} +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#9} +FNDA:0,conjure_core::rules::constant::CONJURE_GEN_RULE_APPLY_EVAL_CONSTANT::__typecheck +FNDA:0,conjure_core::rules::constant::CONJURE_GEN_RULE_APPLY_EVAL_CONSTANT::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::constant::CONJURE_GEN_RULE_SET_CONSTANT::__typecheck::{closure#0} +FNDA:0,conjure_core::rules::constant::unwrap_expr:: +FNDA:0,conjure_core::rules::constant::tern_op:: +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#9}::{closure#0} FNDA:0,conjure_core::rules::constant::apply_eval_constant::{closure#0} FNDA:0,conjure_core::rules::constant::CONJURE_GEN_RULE_APPLY_EVAL_CONSTANT::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#13} FNDA:0,conjure_core::rules::constant::vec_op:: -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#3} -FNDA:0,conjure_core::rules::constant::un_op:: -FNDA:0,conjure_core::rules::constant::opt_vec_op:: -FNDA:0,conjure_core::rules::constant::unwrap_expr:: -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#8} -FNDA:0,conjure_core::rules::constant::unwrap_expr:: -FNDA:1,conjure_core::rules::constant::eval_constant::{closure#9} +FNDA:0,conjure_core::rules::constant::flat_op:: FNDA:0,conjure_core::rules::constant::CONJURE_GEN_RULE_SET_CONSTANT::__typecheck -FNDA:0,conjure_core::rules::constant::CONJURE_GEN_RULE_APPLY_EVAL_CONSTANT::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#5} -FNDA:1,conjure_core::rules::constant::eval_constant::{closure#9}::{closure#0} -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#10} -FNDA:1,conjure_core::rules::constant::eval_constant::{closure#8}::{closure#0} -FNDA:0,conjure_core::rules::constant::vec_op:: FNDA:0,conjure_core::rules::constant::eval_constant::{closure#4} -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#7} -FNDA:1,conjure_core::rules::constant::tern_op:: -FNDA:0,conjure_core::rules::constant::CONJURE_GEN_RULE_SET_CONSTANT::__typecheck -FNDA:1,conjure_core::rules::constant::bin_op:: -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#11} -FNDA:0,conjure_core::rules::constant::eval_constant -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#9}::{closure#0} -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#13} FNDA:0,conjure_core::rules::constant::bin_op:: -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#10} -FNDA:0,conjure_core::rules::constant::CONJURE_GEN_RULE_SET_CONSTANT::__typecheck -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#1}::{closure#0} -FNDA:0,conjure_core::rules::constant::unwrap_expr:: -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#10} -FNDA:1,conjure_core::rules::constant::opt_vec_op:: +FNDA:0,conjure_core::rules::constant::vec_op:: FNDA:0,conjure_core::rules::constant::flat_op:: -FNDA:0,conjure_core::rules::constant::CONJURE_GEN_RULE_SET_CONSTANT::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::constant::CONJURE_GEN_RULE_APPLY_EVAL_CONSTANT::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::constant::CONJURE_GEN_RULE_APPLY_EVAL_CONSTANT::__typecheck -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#12} FNDA:0,conjure_core::rules::constant::eval_constant::{closure#1} -FNDA:1,conjure_core::rules::constant::apply_eval_constant -FNDA:1,conjure_core::rules::constant::unwrap_expr:: -FNDA:0,conjure_core::rules::constant::vec_op:: -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#11} -FNDA:1,conjure_core::rules::constant::eval_constant::{closure#1} -FNDA:1,conjure_core::rules::constant::vec_op:: -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#9} -FNDA:0,conjure_core::rules::constant::tern_op:: -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#8} -FNDA:1,conjure_core::rules::constant::bin_op:: -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#13} -FNDA:0,conjure_core::rules::constant::CONJURE_GEN_RULE_SET_CONSTANT::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#6} -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#9} -FNDA:0,conjure_core::rules::constant::un_op:: -FNDA:0,conjure_core::rules::constant::opt_vec_op:: -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#4} FNDA:1,conjure_core::rules::constant::eval_constant::{closure#1}::{closure#0} +FNDA:0,conjure_core::rules::constant::CONJURE_GEN_RULE_SET_CONSTANT::__typecheck::{closure#0}::{closure#0} FNDA:0,conjure_core::rules::constant::CONJURE_GEN_RULE_SET_CONSTANT::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#7} -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#8}::{closure#0} -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#12} -FNDA:0,conjure_core::rules::constant::tern_op:: -FNDA:0,conjure_core::rules::constant::bin_op:: +FNDA:0,conjure_core::rules::constant::CONJURE_GEN_RULE_SET_CONSTANT::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::constant::CONJURE_GEN_RULE_APPLY_EVAL_CONSTANT::__typecheck::{closure#0}::{closure#0} +FNDA:0,conjure_core::rules::constant::CONJURE_GEN_RULE_SET_CONSTANT::__typecheck +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#3} FNDA:0,conjure_core::rules::constant::eval_constant::{closure#0} -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#2} -FNDA:0,conjure_core::rules::constant::CONJURE_GEN_RULE_SET_CONSTANT::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#11} +FNDA:0,conjure_core::rules::constant::un_op:: +FNDA:1,conjure_core::rules::constant::eval_constant::{closure#8} FNDA:0,conjure_core::rules::constant::eval_constant::{closure#14} -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#1} +FNDA:1,conjure_core::rules::constant::bin_op:: +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#14} +FNDA:0,conjure_core::rules::constant::CONJURE_GEN_RULE_APPLY_EVAL_CONSTANT::__typecheck +FNDA:0,conjure_core::rules::constant::opt_vec_op:: FNDA:0,conjure_core::rules::constant::CONJURE_GEN_RULE_APPLY_EVAL_CONSTANT::__typecheck::{closure#0} -FNDA:0,conjure_core::rules::constant::apply_eval_constant -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#3} +FNDA:1,conjure_core::rules::constant::vec_op:: +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#7} FNDA:0,conjure_core::rules::constant::eval_constant::{closure#2} -FNDA:0,conjure_core::rules::constant::apply_eval_constant::{closure#0} +FNDA:0,conjure_core::rules::constant::opt_vec_op:: +FNDA:0,conjure_core::rules::constant::eval_constant +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#4} +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#8} +FNDA:0,conjure_core::rules::constant::eval_constant +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#3} +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#11} +FNDA:1,conjure_core::rules::constant::eval_constant::{closure#0} FNDA:0,conjure_core::rules::constant::un_op:: -FNDA:0,conjure_core::rules::constant::CONJURE_GEN_RULE_APPLY_EVAL_CONSTANT::__typecheck::{closure#0}::{closure#0} -FNDA:0,conjure_core::rules::constant::vec_op:: FNDA:0,conjure_core::rules::constant::CONJURE_GEN_RULE_APPLY_EVAL_CONSTANT::__typecheck -FNDA:0,conjure_core::rules::constant::bin_op:: -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#0} -FNDA:0,conjure_core::rules::constant::eval_constant::{closure#8}::{closure#0} FNDA:0,conjure_core::rules::constant::eval_constant::{closure#14} +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#1}::{closure#0} +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#8}::{closure#0} +FNDA:0,conjure_core::rules::constant::apply_eval_constant +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#13} FNDA:0,conjure_core::rules::constant::eval_constant::{closure#12} +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#8}::{closure#0} +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#5} +FNDA:1,conjure_core::rules::constant::opt_vec_op:: +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#10} +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#2} +FNDA:0,conjure_core::rules::constant::apply_eval_constant +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#7} +FNDA:0,conjure_core::rules::constant::eval_constant::{closure#6} +FNDA:0,conjure_core::rules::constant::CONJURE_GEN_RULE_APPLY_EVAL_CONSTANT::__typecheck::{closure#0} FNF:111 FNH:18 BRF:0 @@ -8517,166 +8679,166 @@ LF:89 LH:73 end_of_record SF:crates/conjure_core/src/ast/domains.rs -FN:3,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FN:3,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FN:9,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FN:9,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FN:9,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> -FN:9,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FN:17,::min_i32 -FN:17,::min_i32 +FN:3,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FN:9,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> FN:57,::min_max_i32 +FN:9,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FN:9,<::deserialize::__Visitor as serde::de::Visitor>::expecting +FN:3,< as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> +FN:3,< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::expecting +FN:3,< as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> FN:3,< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::<_> +FN:3,< as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FN:3,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FN:9,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> FN:3,< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::<_> -FN:3,< as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> FN:9,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> -FN:3,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FN:3,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> FN:9,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FN:57,::min_max_i32 +FN:3,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FN:3,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FN:17,::min_i32 FN:3,< as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> FN:9,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FN:3,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor<_> as serde::de::Visitor>::visit_seq::<_> +FN:9,<::deserialize::__Visitor as serde::de::Visitor>::expecting +FN:57,::min_max_i32 FN:3,< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::expecting +FN:3,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FN:3,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FN:9,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> FN:3,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor<_> as serde::de::Visitor>::expecting -FN:3,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> FN:9,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> +FN:3,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor<_> as serde::de::Visitor>::expecting +FN:3,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FN:3,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: +FN:9,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> +FN:3,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FN:3,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FN:37,::max_i32 FN:3,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FN:3,< as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> -FN:3,< as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> +FN:3,< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::<_> +FN:9,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> FN:9,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: -FN:3,< as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> FN:3,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FN:3,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FN:3,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor<_> as serde::de::Visitor>::visit_seq::<_> +FN:9,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: +FN:3,< as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> FN:3,< as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FN:9,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> -FN:9,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FN:9,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> -FN:9,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> -FN:9,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FN:3,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FN:37,::max_i32 FN:9,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FN:9,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FN:57,::min_max_i32 -FN:9,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FN:9,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FN:3,< as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> FN:3,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FN:9,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FN:3,< as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> +FN:3,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor<_> as serde::de::Visitor>::visit_seq::<_> +FN:9,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FN:9,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> FN:37,::max_i32 -FN:3,< as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FN:3,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> FN:17,::min_i32 -FN:3,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FN:9,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: +FN:9,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FN:9,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> +FN:3,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FN:3,< as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> +FN:9,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> FN:3,< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::expecting +FN:17,::min_i32 +FN:9,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> +FN:3,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor<_> as serde::de::Visitor>::visit_seq::<_> FN:9,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FN:3,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor<_> as serde::de::Visitor>::expecting -FN:3,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:9,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> -FN:3,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FN:3,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: -FN:3,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FN:9,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> -FN:57,::min_max_i32 -FN:9,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FN:3,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor<_> as serde::de::Visitor>::expecting -FN:3,< as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FN:9,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FN:9,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> FN:3,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor<_> as serde::de::Visitor>::visit_seq::<_> FN:3,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: -FN:37,::max_i32 +FN:3,< as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> +FN:3,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor<_> as serde::de::Visitor>::expecting +FN:9,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> FN:9,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FN:3,< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::<_> -FN:9,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> +FN:37,::max_i32 +FN:9,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> +FN:3,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> FN:9,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FN:9,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> FN:3,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FN:9,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FN:9,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FN:3,< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::expecting -FNDA:0,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FNDA:0,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FN:3,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FNDA:0,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FNDA:0,::min_max_i32 FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FNDA:0,::min_i32 -FNDA:0,::min_i32 -FNDA:1,::min_max_i32 +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting +FNDA:0,< as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> +FNDA:0,< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::expecting +FNDA:1,< as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> FNDA:0,< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::<_> +FNDA:0,< as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FNDA:0,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> FNDA:0,< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::<_> -FNDA:0,< as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> FNDA:1,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> -FNDA:0,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FNDA:0,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FNDA:1,::min_max_i32 +FNDA:0,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FNDA:0,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FNDA:0,::min_i32 FNDA:0,< as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FNDA:0,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor<_> as serde::de::Visitor>::visit_seq::<_> +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting +FNDA:0,::min_max_i32 FNDA:0,< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::expecting +FNDA:0,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> +FNDA:0,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> FNDA:0,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor<_> as serde::de::Visitor>::expecting -FNDA:0,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> FNDA:1,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> -FNDA:0,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FNDA:1,< as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> -FNDA:0,< as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: -FNDA:1,< as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> -FNDA:0,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FNDA:0,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FNDA:0,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor<_> as serde::de::Visitor>::visit_seq::<_> -FNDA:0,< as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> +FNDA:0,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor<_> as serde::de::Visitor>::expecting +FNDA:0,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FNDA:0,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting FNDA:0,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FNDA:0,::max_i32 -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FNDA:0,::min_max_i32 -FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FNDA:0,< as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> FNDA:0,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> FNDA:0,::max_i32 +FNDA:0,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FNDA:0,< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::<_> +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> +FNDA:1,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: +FNDA:0,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: FNDA:0,< as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FNDA:0,< as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting FNDA:0,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FNDA:0,< as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> +FNDA:0,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor<_> as serde::de::Visitor>::visit_seq::<_> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FNDA:0,::max_i32 FNDA:0,::min_i32 -FNDA:0,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FNDA:1,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> +FNDA:0,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FNDA:0,< as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> FNDA:0,< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::expecting +FNDA:0,::min_i32 +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> +FNDA:0,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor<_> as serde::de::Visitor>::visit_seq::<_> FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FNDA:0,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor<_> as serde::de::Visitor>::expecting -FNDA:0,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting -FNDA:1,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> -FNDA:0,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> +FNDA:0,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor<_> as serde::de::Visitor>::visit_seq::<_> FNDA:1,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: -FNDA:0,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> -FNDA:0,::min_max_i32 -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting +FNDA:1,< as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> FNDA:0,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor<_> as serde::de::Visitor>::expecting -FNDA:0,< as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FNDA:0,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor<_> as serde::de::Visitor>::visit_seq::<_> -FNDA:0,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: -FNDA:0,::max_i32 +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FNDA:0,< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::<_> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> +FNDA:0,::max_i32 +FNDA:1,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> +FNDA:0,< as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> FNDA:1,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq::> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FNDA:0,< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::expecting +FNDA:0,<< as serde::de::Deserialize>::deserialize::__Visitor<_> as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::expecting FNF:77 FNH:9 BRF:0 BRH:0 -DA:3,372 -DA:9,328 +DA:3,465 +DA:9,410 DA:17,0 DA:18,0 DA:19,0 @@ -8730,61 +8892,47 @@ LF:51 LH:17 end_of_record SF:crates/conjure_core/src/context.rs -FN:17,::new -FN:36,::fmt::{closure#0} -FN:42,::fmt::{closure#1} -FN:59,::default -FN:71,::eq -FN:33,::fmt -FN:71,::eq -FN:36,::fmt::{closure#0} -FN:33,::fmt -FN:71,::eq -FN:36,::fmt::{closure#0} -FN:17,::new -FN:59,::default -FN:42,::fmt::{closure#1} -FN:42,::fmt::{closure#1} -FN:33,::fmt -FN:59,::default -FN:17,::new -FNDA:0,::new -FNDA:0,::fmt::{closure#0} -FNDA:0,::fmt::{closure#1} -FNDA:1,::default +FN:13,::eq +FN:35,::new +FN:69,::fmt +FN:35,::new +FN:72,::fmt::{closure#0} +FN:13,::eq +FN:53,::new_ptr +FN:72,::fmt::{closure#0} +FN:35,::new +FN:73,::fmt::{closure#1} +FN:72,::fmt::{closure#0} +FN:53,::new_ptr +FN:69,::fmt +FN:73,::fmt::{closure#1} +FN:73,::fmt::{closure#1} +FN:53,::new_ptr +FN:69,::fmt +FN:13,::eq FNDA:0,::eq +FNDA:0,::new FNDA:0,::fmt -FNDA:0,::eq +FNDA:0,::new FNDA:0,::fmt::{closure#0} -FNDA:0,::fmt -FNDA:1,::eq +FNDA:0,::eq +FNDA:0,::new_ptr FNDA:0,::fmt::{closure#0} FNDA:0,::new -FNDA:0,::default +FNDA:0,::fmt::{closure#1} +FNDA:0,::fmt::{closure#0} +FNDA:0,::new_ptr +FNDA:0,::fmt FNDA:0,::fmt::{closure#1} FNDA:0,::fmt::{closure#1} +FNDA:0,::new_ptr FNDA:0,::fmt -FNDA:0,::default -FNDA:0,::new +FNDA:0,::eq FNF:18 -FNH:2 +FNH:0 BRF:0 BRH:0 -DA:17,0 -DA:18,0 -DA:19,0 -DA:20,0 -DA:21,0 -DA:22,0 -DA:23,0 -DA:24,0 -DA:25,0 -DA:26,0 -DA:27,0 -DA:28,0 -DA:29,0 -DA:33,0 -DA:34,0 +DA:13,0 DA:35,0 DA:36,0 DA:37,0 @@ -8800,110 +8948,109 @@ DA:46,0 DA:47,0 DA:48,0 DA:49,0 -DA:50,0 -DA:51,0 -DA:52,0 DA:53,0 DA:54,0 DA:55,0 -DA:59,7170 -DA:60,7170 -DA:61,7170 -DA:62,7170 -DA:63,7170 -DA:64,7170 -DA:65,7170 -DA:66,7170 -DA:71,270 -DA:72,270 -DA:73,270 -DA:74,270 -DA:75,270 -DA:76,270 -DA:77,270 -DA:78,270 -DA:79,270 -DA:80,270 -DA:81,270 -DA:82,270 -DA:83,270 -DA:84,270 -DA:85,270 -DA:86,270 -DA:87,270 -LF:61 -LH:25 +DA:56,0 +DA:57,0 +DA:58,0 +DA:59,0 +DA:60,0 +DA:61,0 +DA:62,0 +DA:63,0 +DA:64,0 +DA:65,0 +DA:69,0 +DA:70,0 +DA:71,0 +DA:72,0 +DA:73,0 +DA:74,0 +DA:75,0 +DA:76,0 +DA:77,0 +DA:78,0 +DA:79,0 +DA:80,0 +DA:81,0 +DA:82,0 +DA:83,0 +DA:84,0 +DA:85,0 +LF:46 +LH:0 end_of_record SF:crates/conjure_core/src/ast/symbol_table.rs +FN:8,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FN:8,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> FN:8,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> -FN:8,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> -FN:8,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FN:8,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> -FN:8,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FN:8,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: FN:8,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FN:8,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FN:8,<::deserialize::__Visitor as serde::de::Visitor>::expecting FN:8,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> FN:8,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FN:8,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FN:15,::fmt -FN:8,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: +FN:8,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> FN:8,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> -FN:8,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FN:8,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FN:8,<::deserialize::__Visitor as serde::de::Visitor>::expecting FN:8,<::deserialize::__Visitor as serde::de::Visitor>::expecting FN:8,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FN:8,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> -FN:8,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> +FN:8,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: FN:8,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FN:8,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FN:8,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> FN:15,::fmt -FN:8,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FN:8,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> +FN:8,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FN:8,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FN:8,<::deserialize::__Visitor as serde::de::Visitor>::expecting FN:8,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> FN:8,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> -FN:8,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FN:8,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FN:8,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> FN:8,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FN:15,::fmt FN:8,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FN:8,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: +FN:8,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FN:8,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FN:8,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> FN:15,::fmt +FN:8,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> +FN:8,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> FNDA:1,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> -FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FNDA:1,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> -FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting -FNDA:0,::fmt -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting +FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> +FNDA:1,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> -FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> FNDA:0,::fmt -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> -FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> -FNDA:1,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> -FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::expecting +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_> +FNDA:0,<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> +FNDA:0,::fmt FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> -FNDA:1,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> FNDA:1,::fmt +FNDA:0,<::deserialize::__Visitor as serde::de::Visitor>::visit_enum::> +FNDA:0,<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting FNF:32 FNH:4 BRF:0 BRH:0 -DA:8,1384 +DA:8,1730 DA:15,1425 DA:16,1425 DA:17,1050 @@ -8913,30 +9060,30 @@ LF:6 LH:6 end_of_record SF:crates/conjure_core/src/error.rs -FN:8,::source +FN:8,>::from +FN:8,>::from +FN:8,>::from FN:8,::fmt FN:8,>::from FN:8,::source FN:8,::source FN:8,::fmt +FN:8,::fmt FN:8,>::from -FN:8,>::from -FN:8,>::from FN:8,>::from -FN:8,>::from -FN:8,::fmt -FNDA:0,::source +FN:8,::source +FNDA:0,>::from +FNDA:0,>::from +FNDA:0,>::from FNDA:0,::fmt FNDA:0,>::from FNDA:0,::source FNDA:0,::source FNDA:0,::fmt +FNDA:0,::fmt FNDA:0,>::from -FNDA:0,>::from -FNDA:0,>::from FNDA:0,>::from -FNDA:0,>::from -FNDA:0,::fmt +FNDA:0,::source FNF:12 FNH:0 BRF:0 @@ -9210,94 +9357,94 @@ DA:241,1 DA:242,1 DA:243,1 DA:244,1 -LF:188 -LH:188 -end_of_record -SF:conjure_oxide/tests/rewrite_tests.rs -FN:167,rewrite_tests::rule_sum_mixed -FN:587,rewrite_tests::remove_constants_from_and_not_changed -FN:604,rewrite_tests::rule_distribute_not_over_and -FN:648,rewrite_tests::rule_distribute_not_over_or -FN:1058,rewrite_tests::eval_const_eq_bool +LF:188 +LH:188 +end_of_record +SF:conjure_oxide/tests/rewrite_tests.rs +FN:109,rewrite_tests::simplify_expression +FN:926,rewrite_tests::is_simple FN:238,rewrite_tests::reduce_solve_xyz -FN:383,rewrite_tests::rule_unwrap_nested_or +FN:360,rewrite_tests::rule_remove_double_negation +FN:546,rewrite_tests::rule_remove_constants_from_and +FN:648,rewrite_tests::rule_distribute_not_over_or FN:692,rewrite_tests::rule_distribute_not_over_and_not_changed -FN:1021,rewrite_tests::eval_const_ref -FN:356,rewrite_tests::reduce_solve_xyz::{closure#0} -FN:18,rewrite_tests::rules_present -FN:962,rewrite_tests::apply_all_rules +FN:138,rewrite_tests::rule_sum_constants FN:709,rewrite_tests::rule_distribute_not_over_or_not_changed -FN:938,rewrite_tests::is_simple_iteration -FN:24,rewrite_tests::sum_of_constants -FN:197,rewrite_tests::rule_sum_geq -FN:522,rewrite_tests::rule_remove_constants_from_or -FN:827,rewrite_tests::rewrite_solve_xyz FN:1028,rewrite_tests::eval_const_nested_ref -FN:546,rewrite_tests::rule_remove_constants_from_and -FN:109,rewrite_tests::simplify_expression -FN:138,rewrite_tests::rule_sum_constants -FN:489,rewrite_tests::remove_trivial_and_or -FN:360,rewrite_tests::rule_remove_double_negation -FN:914,rewrite_tests::rewrite_solve_xyz::{closure#0} +FN:71,rewrite_tests::recursive_sum_of_constants FN:1047,rewrite_tests::eval_const_eq_int FN:1127,rewrite_tests::eval_const_or -FN:570,rewrite_tests::remove_constants_from_or_not_changed +FN:24,rewrite_tests::sum_of_constants +FN:489,rewrite_tests::remove_trivial_and_or FN:1008,rewrite_tests::eval_const_and -FN:726,rewrite_tests::rule_distribute_or_over_and -FN:926,rewrite_tests::is_simple -FN:71,rewrite_tests::recursive_sum_of_constants +FN:570,rewrite_tests::remove_constants_from_or_not_changed +FN:1021,rewrite_tests::eval_const_ref +FN:984,rewrite_tests::choose_rewrite +FN:938,rewrite_tests::is_simple_iteration +FN:419,rewrite_tests::rule_unwrap_nested_and +FN:18,rewrite_tests::rules_present +FN:1069,rewrite_tests::eval_const_eq_mixed +FN:962,rewrite_tests::apply_all_rules +FN:1058,rewrite_tests::eval_const_eq_bool +FN:994,rewrite_tests::eval_const_int +FN:827,rewrite_tests::rewrite_solve_xyz FN:472,rewrite_tests::unwrap_nested_and_not_changed +FN:383,rewrite_tests::rule_unwrap_nested_or +FN:1080,rewrite_tests::eval_const_sum_mixed FN:1093,rewrite_tests::eval_const_sum_xyz -FN:455,rewrite_tests::unwrap_nested_or_not_changed FN:52,rewrite_tests::evaluate_sum_of_constants -FN:984,rewrite_tests::choose_rewrite -FN:1069,rewrite_tests::eval_const_eq_mixed +FN:197,rewrite_tests::rule_sum_geq +FN:726,rewrite_tests::rule_distribute_or_over_and +FN:455,rewrite_tests::unwrap_nested_or_not_changed +FN:522,rewrite_tests::rule_remove_constants_from_or +FN:604,rewrite_tests::rule_distribute_not_over_and +FN:167,rewrite_tests::rule_sum_mixed +FN:587,rewrite_tests::remove_constants_from_and_not_changed +FN:914,rewrite_tests::rewrite_solve_xyz::{closure#0} FN:1001,rewrite_tests::eval_const_bool -FN:1080,rewrite_tests::eval_const_sum_mixed -FN:994,rewrite_tests::eval_const_int -FN:419,rewrite_tests::rule_unwrap_nested_and -FNDA:1,rewrite_tests::rule_sum_mixed -FNDA:1,rewrite_tests::remove_constants_from_and_not_changed -FNDA:1,rewrite_tests::rule_distribute_not_over_and -FNDA:1,rewrite_tests::rule_distribute_not_over_or -FNDA:1,rewrite_tests::eval_const_eq_bool +FN:356,rewrite_tests::reduce_solve_xyz::{closure#0} +FNDA:1,rewrite_tests::simplify_expression +FNDA:1,rewrite_tests::is_simple FNDA:1,rewrite_tests::reduce_solve_xyz -FNDA:1,rewrite_tests::rule_unwrap_nested_or +FNDA:1,rewrite_tests::rule_remove_double_negation +FNDA:1,rewrite_tests::rule_remove_constants_from_and +FNDA:1,rewrite_tests::rule_distribute_not_over_or FNDA:1,rewrite_tests::rule_distribute_not_over_and_not_changed -FNDA:1,rewrite_tests::eval_const_ref -FNDA:1,rewrite_tests::reduce_solve_xyz::{closure#0} -FNDA:1,rewrite_tests::rules_present -FNDA:1,rewrite_tests::apply_all_rules +FNDA:1,rewrite_tests::rule_sum_constants FNDA:1,rewrite_tests::rule_distribute_not_over_or_not_changed -FNDA:1,rewrite_tests::is_simple_iteration -FNDA:1,rewrite_tests::sum_of_constants -FNDA:1,rewrite_tests::rule_sum_geq -FNDA:1,rewrite_tests::rule_remove_constants_from_or -FNDA:1,rewrite_tests::rewrite_solve_xyz FNDA:1,rewrite_tests::eval_const_nested_ref -FNDA:1,rewrite_tests::rule_remove_constants_from_and -FNDA:1,rewrite_tests::simplify_expression -FNDA:1,rewrite_tests::rule_sum_constants -FNDA:1,rewrite_tests::remove_trivial_and_or -FNDA:1,rewrite_tests::rule_remove_double_negation -FNDA:1,rewrite_tests::rewrite_solve_xyz::{closure#0} +FNDA:1,rewrite_tests::recursive_sum_of_constants FNDA:1,rewrite_tests::eval_const_eq_int FNDA:1,rewrite_tests::eval_const_or -FNDA:1,rewrite_tests::remove_constants_from_or_not_changed +FNDA:1,rewrite_tests::sum_of_constants +FNDA:1,rewrite_tests::remove_trivial_and_or FNDA:1,rewrite_tests::eval_const_and -FNDA:1,rewrite_tests::rule_distribute_or_over_and -FNDA:1,rewrite_tests::is_simple -FNDA:1,rewrite_tests::recursive_sum_of_constants +FNDA:1,rewrite_tests::remove_constants_from_or_not_changed +FNDA:1,rewrite_tests::eval_const_ref +FNDA:1,rewrite_tests::choose_rewrite +FNDA:1,rewrite_tests::is_simple_iteration +FNDA:1,rewrite_tests::rule_unwrap_nested_and +FNDA:1,rewrite_tests::rules_present +FNDA:1,rewrite_tests::eval_const_eq_mixed +FNDA:1,rewrite_tests::apply_all_rules +FNDA:1,rewrite_tests::eval_const_eq_bool +FNDA:1,rewrite_tests::eval_const_int +FNDA:1,rewrite_tests::rewrite_solve_xyz FNDA:1,rewrite_tests::unwrap_nested_and_not_changed +FNDA:1,rewrite_tests::rule_unwrap_nested_or +FNDA:1,rewrite_tests::eval_const_sum_mixed FNDA:1,rewrite_tests::eval_const_sum_xyz -FNDA:1,rewrite_tests::unwrap_nested_or_not_changed FNDA:1,rewrite_tests::evaluate_sum_of_constants -FNDA:1,rewrite_tests::choose_rewrite -FNDA:1,rewrite_tests::eval_const_eq_mixed +FNDA:1,rewrite_tests::rule_sum_geq +FNDA:1,rewrite_tests::rule_distribute_or_over_and +FNDA:1,rewrite_tests::unwrap_nested_or_not_changed +FNDA:1,rewrite_tests::rule_remove_constants_from_or +FNDA:1,rewrite_tests::rule_distribute_not_over_and +FNDA:1,rewrite_tests::rule_sum_mixed +FNDA:1,rewrite_tests::remove_constants_from_and_not_changed +FNDA:1,rewrite_tests::rewrite_solve_xyz::{closure#0} FNDA:1,rewrite_tests::eval_const_bool -FNDA:1,rewrite_tests::eval_const_sum_mixed -FNDA:1,rewrite_tests::eval_const_int -FNDA:1,rewrite_tests::rule_unwrap_nested_and +FNDA:1,rewrite_tests::reduce_solve_xyz::{closure#0} FNF:42 FNH:42 BRF:0 @@ -10246,14 +10393,11 @@ SF:crates/uniplate/src/uniplate.rs FN:140,<_ as uniplate::uniplate::Uniplate>::one_holed_context::{closure#0} FN:48,<_ as uniplate::uniplate::Uniplate>::with_children FN:54,::transform -FN:48,::with_children -FN:31,<_ as uniplate::uniplate::Uniplate>::universe FN:40,::children -FN:68,<_ as uniplate::uniplate::Uniplate>::rewrite +FN:31,<_ as uniplate::uniplate::Uniplate>::universe FN:40,::children -FN:40,::children +FN:68,<_ as uniplate::uniplate::Uniplate>::rewrite FN:103,<_ as uniplate::uniplate::Uniplate>::fold::<_> -FN:48,::with_children FN:40,<_ as uniplate::uniplate::Uniplate>::children FN:106,<_ as uniplate::uniplate::Uniplate>::fold::<_>::{closure#0} FN:40,::children @@ -10261,26 +10405,29 @@ FN:54,<_ as uniplate::uniplate::Uniplate>::transform FN:3,::fmt FN:132,<_ as uniplate::uniplate::Uniplate>::one_holed_context FN:40,::children +FN:48,::with_children +FN:48,::with_children FN:83,<_ as uniplate::uniplate::Uniplate>::descend +FN:40,::children FNDA:0,<_ as uniplate::uniplate::Uniplate>::one_holed_context::{closure#0} FNDA:0,<_ as uniplate::uniplate::Uniplate>::with_children FNDA:1,::transform -FNDA:1,::with_children +FNDA:1,::children FNDA:0,<_ as uniplate::uniplate::Uniplate>::universe -FNDA:0,::children -FNDA:0,<_ as uniplate::uniplate::Uniplate>::rewrite FNDA:1,::children -FNDA:0,::children +FNDA:0,<_ as uniplate::uniplate::Uniplate>::rewrite FNDA:0,<_ as uniplate::uniplate::Uniplate>::fold::<_> -FNDA:0,::with_children FNDA:0,<_ as uniplate::uniplate::Uniplate>::children FNDA:0,<_ as uniplate::uniplate::Uniplate>::fold::<_>::{closure#0} -FNDA:1,::children +FNDA:0,::children FNDA:0,<_ as uniplate::uniplate::Uniplate>::transform FNDA:0,::fmt FNDA:0,<_ as uniplate::uniplate::Uniplate>::one_holed_context FNDA:1,::children +FNDA:1,::with_children +FNDA:0,::with_children FNDA:0,<_ as uniplate::uniplate::Uniplate>::descend +FNDA:0,::children FNF:19 FNH:5 BRF:0 @@ -10425,115 +10572,113 @@ LF:47 LH:44 end_of_record SF:crates/conjure_core/src/parse/parse_model.rs -FN:82,conjure_core::parse::parse_model::parse_int_domain -FN:113,conjure_core::parse::parse_model::parse_int_domain::{closure#0} -FN:82,conjure_core::parse::parse_model::parse_int_domain -FN:113,conjure_core::parse::parse_model::parse_int_domain::{closure#0} -FN:145,conjure_core::parse::parse_model::parse_expression -FN:218,conjure_core::parse::parse_model::parse_expression::{closure#3} -FN:113,conjure_core::parse::parse_model::parse_int_domain::{closure#0} -FN:212,conjure_core::parse::parse_model::parse_expression::{closure#0} -FN:127,conjure_core::parse::parse_model::parse_int_domain::{closure#1} -FN:294,conjure_core::parse::parse_model::parse_constant -FN:52,conjure_core::parse::parse_model::parse_variable -FN:145,conjure_core::parse::parse_model::parse_expression -FN:272,conjure_core::parse::parse_model::parse_vec_op -FN:224,conjure_core::parse::parse_model::parse_expression::{closure#5} -FN:241,conjure_core::parse::parse_model::parse_bin_op -FN:241,conjure_core::parse::parse_model::parse_bin_op -FN:212,conjure_core::parse::parse_model::parse_expression::{closure#0} -FN:52,conjure_core::parse::parse_model::parse_variable -FN:224,conjure_core::parse::parse_model::parse_expression::{closure#5} -FN:272,conjure_core::parse::parse_model::parse_vec_op -FN:127,conjure_core::parse::parse_model::parse_int_domain::{closure#1} -FN:214,conjure_core::parse::parse_model::parse_expression::{closure#2} -FN:52,conjure_core::parse::parse_model::parse_variable -FN:261,conjure_core::parse::parse_model::parse_unary_op -FN:218,conjure_core::parse::parse_model::parse_expression::{closure#3} -FN:145,conjure_core::parse::parse_model::parse_expression -FN:213,conjure_core::parse::parse_model::parse_expression::{closure#1} -FN:221,conjure_core::parse::parse_model::parse_expression::{closure#4} -FN:272,conjure_core::parse::parse_model::parse_vec_op -FN:11,conjure_core::parse::parse_model::model_from_json -FN:261,conjure_core::parse::parse_model::parse_unary_op -FN:224,conjure_core::parse::parse_model::parse_expression::{closure#5} -FN:294,conjure_core::parse::parse_model::parse_constant -FN:11,conjure_core::parse::parse_model::model_from_json -FN:294,conjure_core::parse::parse_model::parse_constant -FN:261,conjure_core::parse::parse_model::parse_unary_op -FN:218,conjure_core::parse::parse_model::parse_expression::{closure#3} -FN:221,conjure_core::parse::parse_model::parse_expression::{closure#4} -FN:11,conjure_core::parse::parse_model::model_from_json -FN:214,conjure_core::parse::parse_model::parse_expression::{closure#2} -FN:241,conjure_core::parse::parse_model::parse_bin_op -FN:213,conjure_core::parse::parse_model::parse_expression::{closure#1} -FN:213,conjure_core::parse::parse_model::parse_expression::{closure#1} -FN:221,conjure_core::parse::parse_model::parse_expression::{closure#4} -FN:214,conjure_core::parse::parse_model::parse_expression::{closure#2} -FN:212,conjure_core::parse::parse_model::parse_expression::{closure#0} -FN:127,conjure_core::parse::parse_model::parse_int_domain::{closure#1} -FN:82,conjure_core::parse::parse_model::parse_int_domain -FNDA:0,conjure_core::parse::parse_model::parse_int_domain +FN:274,conjure_core::parse::parse_model::parse_vec_op +FN:243,conjure_core::parse::parse_model::parse_bin_op +FN:220,conjure_core::parse::parse_model::parse_expression::{closure#3} +FN:115,conjure_core::parse::parse_model::parse_int_domain::{closure#0} +FN:216,conjure_core::parse::parse_model::parse_expression::{closure#2} +FN:215,conjure_core::parse::parse_model::parse_expression::{closure#1} +FN:215,conjure_core::parse::parse_model::parse_expression::{closure#1} +FN:13,conjure_core::parse::parse_model::model_from_json +FN:296,conjure_core::parse::parse_model::parse_constant +FN:215,conjure_core::parse::parse_model::parse_expression::{closure#1} +FN:214,conjure_core::parse::parse_model::parse_expression::{closure#0} +FN:13,conjure_core::parse::parse_model::model_from_json +FN:84,conjure_core::parse::parse_model::parse_int_domain +FN:129,conjure_core::parse::parse_model::parse_int_domain::{closure#1} +FN:147,conjure_core::parse::parse_model::parse_expression +FN:129,conjure_core::parse::parse_model::parse_int_domain::{closure#1} +FN:220,conjure_core::parse::parse_model::parse_expression::{closure#3} +FN:147,conjure_core::parse::parse_model::parse_expression +FN:223,conjure_core::parse::parse_model::parse_expression::{closure#4} +FN:263,conjure_core::parse::parse_model::parse_unary_op +FN:84,conjure_core::parse::parse_model::parse_int_domain +FN:243,conjure_core::parse::parse_model::parse_bin_op +FN:223,conjure_core::parse::parse_model::parse_expression::{closure#4} +FN:84,conjure_core::parse::parse_model::parse_int_domain +FN:226,conjure_core::parse::parse_model::parse_expression::{closure#5} +FN:226,conjure_core::parse::parse_model::parse_expression::{closure#5} +FN:214,conjure_core::parse::parse_model::parse_expression::{closure#0} +FN:115,conjure_core::parse::parse_model::parse_int_domain::{closure#0} +FN:243,conjure_core::parse::parse_model::parse_bin_op +FN:274,conjure_core::parse::parse_model::parse_vec_op +FN:216,conjure_core::parse::parse_model::parse_expression::{closure#2} +FN:263,conjure_core::parse::parse_model::parse_unary_op +FN:54,conjure_core::parse::parse_model::parse_variable +FN:274,conjure_core::parse::parse_model::parse_vec_op +FN:115,conjure_core::parse::parse_model::parse_int_domain::{closure#0} +FN:223,conjure_core::parse::parse_model::parse_expression::{closure#4} +FN:263,conjure_core::parse::parse_model::parse_unary_op +FN:296,conjure_core::parse::parse_model::parse_constant +FN:226,conjure_core::parse::parse_model::parse_expression::{closure#5} +FN:129,conjure_core::parse::parse_model::parse_int_domain::{closure#1} +FN:13,conjure_core::parse::parse_model::model_from_json +FN:220,conjure_core::parse::parse_model::parse_expression::{closure#3} +FN:54,conjure_core::parse::parse_model::parse_variable +FN:216,conjure_core::parse::parse_model::parse_expression::{closure#2} +FN:147,conjure_core::parse::parse_model::parse_expression +FN:214,conjure_core::parse::parse_model::parse_expression::{closure#0} +FN:296,conjure_core::parse::parse_model::parse_constant +FN:54,conjure_core::parse::parse_model::parse_variable +FNDA:1,conjure_core::parse::parse_model::parse_vec_op +FNDA:0,conjure_core::parse::parse_model::parse_bin_op +FNDA:1,conjure_core::parse::parse_model::parse_expression::{closure#3} FNDA:0,conjure_core::parse::parse_model::parse_int_domain::{closure#0} +FNDA:0,conjure_core::parse::parse_model::parse_expression::{closure#2} +FNDA:1,conjure_core::parse::parse_model::parse_expression::{closure#1} +FNDA:0,conjure_core::parse::parse_model::parse_expression::{closure#1} +FNDA:0,conjure_core::parse::parse_model::model_from_json +FNDA:0,conjure_core::parse::parse_model::parse_constant +FNDA:0,conjure_core::parse::parse_model::parse_expression::{closure#1} +FNDA:0,conjure_core::parse::parse_model::parse_expression::{closure#0} +FNDA:0,conjure_core::parse::parse_model::model_from_json FNDA:0,conjure_core::parse::parse_model::parse_int_domain -FNDA:0,conjure_core::parse::parse_model::parse_int_domain::{closure#0} +FNDA:0,conjure_core::parse::parse_model::parse_int_domain::{closure#1} FNDA:1,conjure_core::parse::parse_model::parse_expression -FNDA:0,conjure_core::parse::parse_model::parse_expression::{closure#3} -FNDA:0,conjure_core::parse::parse_model::parse_int_domain::{closure#0} -FNDA:0,conjure_core::parse::parse_model::parse_expression::{closure#0} FNDA:0,conjure_core::parse::parse_model::parse_int_domain::{closure#1} -FNDA:1,conjure_core::parse::parse_model::parse_constant -FNDA:1,conjure_core::parse::parse_model::parse_variable +FNDA:0,conjure_core::parse::parse_model::parse_expression::{closure#3} FNDA:0,conjure_core::parse::parse_model::parse_expression -FNDA:0,conjure_core::parse::parse_model::parse_vec_op -FNDA:0,conjure_core::parse::parse_model::parse_expression::{closure#5} +FNDA:1,conjure_core::parse::parse_model::parse_expression::{closure#4} +FNDA:0,conjure_core::parse::parse_model::parse_unary_op +FNDA:1,conjure_core::parse::parse_model::parse_int_domain FNDA:0,conjure_core::parse::parse_model::parse_bin_op -FNDA:1,conjure_core::parse::parse_model::parse_bin_op -FNDA:1,conjure_core::parse::parse_model::parse_expression::{closure#0} -FNDA:0,conjure_core::parse::parse_model::parse_variable +FNDA:0,conjure_core::parse::parse_model::parse_expression::{closure#4} +FNDA:0,conjure_core::parse::parse_model::parse_int_domain +FNDA:1,conjure_core::parse::parse_model::parse_expression::{closure#5} FNDA:0,conjure_core::parse::parse_model::parse_expression::{closure#5} +FNDA:1,conjure_core::parse::parse_model::parse_expression::{closure#0} +FNDA:0,conjure_core::parse::parse_model::parse_int_domain::{closure#0} +FNDA:1,conjure_core::parse::parse_model::parse_bin_op FNDA:0,conjure_core::parse::parse_model::parse_vec_op -FNDA:0,conjure_core::parse::parse_model::parse_int_domain::{closure#1} FNDA:0,conjure_core::parse::parse_model::parse_expression::{closure#2} +FNDA:0,conjure_core::parse::parse_model::parse_unary_op FNDA:0,conjure_core::parse::parse_model::parse_variable +FNDA:0,conjure_core::parse::parse_model::parse_vec_op +FNDA:0,conjure_core::parse::parse_model::parse_int_domain::{closure#0} +FNDA:0,conjure_core::parse::parse_model::parse_expression::{closure#4} FNDA:0,conjure_core::parse::parse_model::parse_unary_op -FNDA:1,conjure_core::parse::parse_model::parse_expression::{closure#3} -FNDA:0,conjure_core::parse::parse_model::parse_expression -FNDA:0,conjure_core::parse::parse_model::parse_expression::{closure#1} -FNDA:1,conjure_core::parse::parse_model::parse_expression::{closure#4} -FNDA:1,conjure_core::parse::parse_model::parse_vec_op +FNDA:1,conjure_core::parse::parse_model::parse_constant +FNDA:0,conjure_core::parse::parse_model::parse_expression::{closure#5} +FNDA:0,conjure_core::parse::parse_model::parse_int_domain::{closure#1} FNDA:1,conjure_core::parse::parse_model::model_from_json -FNDA:0,conjure_core::parse::parse_model::parse_unary_op -FNDA:1,conjure_core::parse::parse_model::parse_expression::{closure#5} -FNDA:0,conjure_core::parse::parse_model::parse_constant -FNDA:0,conjure_core::parse::parse_model::model_from_json -FNDA:0,conjure_core::parse::parse_model::parse_constant -FNDA:0,conjure_core::parse::parse_model::parse_unary_op FNDA:0,conjure_core::parse::parse_model::parse_expression::{closure#3} -FNDA:0,conjure_core::parse::parse_model::parse_expression::{closure#4} -FNDA:0,conjure_core::parse::parse_model::model_from_json +FNDA:0,conjure_core::parse::parse_model::parse_variable FNDA:1,conjure_core::parse::parse_model::parse_expression::{closure#2} -FNDA:0,conjure_core::parse::parse_model::parse_bin_op -FNDA:0,conjure_core::parse::parse_model::parse_expression::{closure#1} -FNDA:1,conjure_core::parse::parse_model::parse_expression::{closure#1} -FNDA:0,conjure_core::parse::parse_model::parse_expression::{closure#4} -FNDA:0,conjure_core::parse::parse_model::parse_expression::{closure#2} +FNDA:0,conjure_core::parse::parse_model::parse_expression FNDA:0,conjure_core::parse::parse_model::parse_expression::{closure#0} -FNDA:0,conjure_core::parse::parse_model::parse_int_domain::{closure#1} -FNDA:1,conjure_core::parse::parse_model::parse_int_domain +FNDA:0,conjure_core::parse::parse_model::parse_constant +FNDA:1,conjure_core::parse::parse_model::parse_variable FNF:48 FNH:13 BRF:0 BRH:0 -DA:11,180 -DA:12,180 DA:13,180 DA:14,180 DA:15,180 DA:16,180 -DA:18,735 -DA:19,555 -DA:20,555 +DA:17,180 +DA:18,180 +DA:20,735 DA:21,555 DA:22,555 DA:23,555 @@ -10542,20 +10687,20 @@ DA:25,555 DA:26,555 DA:27,555 DA:28,555 -DA:29,375 -DA:30,375 -DA:32,180 -DA:33,180 +DA:29,555 +DA:30,555 +DA:31,375 +DA:32,375 DA:34,180 -DA:36,0 -DA:40,180 -DA:41,180 +DA:35,180 +DA:36,180 +DA:38,0 DA:42,180 -DA:45,0 -DA:49,180 -DA:50,180 -DA:52,375 -DA:53,375 +DA:43,180 +DA:44,180 +DA:47,0 +DA:51,180 +DA:52,180 DA:54,375 DA:55,375 DA:56,375 @@ -10576,23 +10721,23 @@ DA:70,375 DA:71,375 DA:72,375 DA:73,375 -DA:74,105 -DA:75,0 -DA:76,0 +DA:74,375 +DA:75,375 +DA:76,105 DA:77,0 DA:78,0 -DA:79,375 -DA:80,375 -DA:82,270 -DA:83,270 +DA:79,0 +DA:80,0 +DA:81,375 +DA:82,375 DA:84,270 DA:85,270 DA:86,270 DA:87,270 DA:88,270 -DA:89,540 +DA:89,270 DA:90,270 -DA:91,270 +DA:91,540 DA:92,270 DA:93,270 DA:94,270 @@ -10608,19 +10753,19 @@ DA:103,270 DA:104,270 DA:105,270 DA:106,270 -DA:107,540 -DA:108,540 +DA:107,270 +DA:108,270 DA:109,540 DA:110,540 DA:111,540 DA:112,540 DA:113,540 -DA:114,0 +DA:114,540 DA:115,540 -DA:116,540 -DA:118,270 -DA:120,0 -DA:121,0 +DA:116,0 +DA:117,540 +DA:118,540 +DA:120,270 DA:122,0 DA:123,0 DA:124,0 @@ -10628,13 +10773,13 @@ DA:125,0 DA:126,0 DA:127,0 DA:128,0 -DA:131,0 -DA:132,0 +DA:129,0 +DA:130,0 DA:133,0 -DA:137,270 -DA:138,270 -DA:145,840 -DA:146,840 +DA:134,0 +DA:135,0 +DA:139,270 +DA:140,270 DA:147,840 DA:148,840 DA:149,840 @@ -10700,57 +10845,57 @@ DA:208,840 DA:209,840 DA:210,840 DA:211,840 -DA:212,1455 +DA:212,840 DA:213,840 -DA:214,840 -DA:216,120 -DA:217,840 -DA:218,1455 -DA:219,180 -DA:221,150 -DA:222,0 -DA:224,375 -DA:225,150 -DA:227,0 -DA:229,510 -DA:230,390 -DA:231,390 +DA:214,1515 +DA:215,840 +DA:216,840 +DA:218,120 +DA:219,840 +DA:220,1515 +DA:221,180 +DA:223,150 +DA:224,0 +DA:226,420 +DA:227,150 +DA:229,0 +DA:231,510 DA:232,390 DA:233,390 DA:234,390 -DA:236,120 -DA:237,0 -DA:239,840 -DA:241,180 -DA:242,180 +DA:235,390 +DA:236,390 +DA:238,120 +DA:239,0 +DA:241,840 DA:243,180 DA:244,180 -DA:247,180 +DA:245,180 +DA:246,180 DA:249,180 DA:251,180 -DA:252,180 DA:253,180 DA:254,180 DA:255,180 -DA:257,0 -DA:259,180 -DA:261,0 -DA:262,0 +DA:256,180 +DA:257,180 +DA:259,0 +DA:261,180 DA:263,0 DA:264,0 DA:265,0 DA:266,0 +DA:267,0 DA:268,0 -DA:269,0 DA:270,0 -DA:272,150 -DA:273,150 +DA:271,0 +DA:272,0 DA:274,150 DA:275,150 DA:276,150 DA:277,150 +DA:278,150 DA:279,150 -DA:280,150 DA:281,150 DA:282,150 DA:283,150 @@ -10758,22 +10903,24 @@ DA:284,150 DA:285,150 DA:286,150 DA:287,150 -DA:288,0 -DA:290,150 +DA:288,150 +DA:289,150 +DA:290,0 DA:292,150 -DA:294,120 -DA:295,120 +DA:294,150 DA:296,120 DA:297,120 DA:298,120 -DA:300,0 -DA:301,0 +DA:299,120 +DA:300,120 DA:302,0 DA:303,0 DA:304,0 -DA:308,120 -DA:310,0 -DA:312,120 +DA:305,0 +DA:306,0 +DA:310,120 +DA:312,0 +DA:314,120 LF:249 LH:210 end_of_record