[INFO] fetching crate zenrust-validate-derive 0.0.3...
[INFO] testing zenrust-validate-derive-0.0.3 against 1.99.0-beta.8 for beta-1.100-2
[INFO] extracting crate zenrust-validate-derive 0.0.3 into /workspace/builds/worker-5-tc1/source
[INFO] started tweaking crates.io crate zenrust-validate-derive 0.0.3
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate zenrust-validate-derive 0.0.3
[INFO] tweaked toml for crates.io crate zenrust-validate-derive 0.0.3 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate zenrust-validate-derive 0.0.3 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate zenrust-validate-derive 0.0.3 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded trybuild v1.0.120
[INFO] [stderr]   Downloaded target-triple v1.0.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] ab118e2e8d18d4c86fecac6aa016895c79351013789999b7e2eb616674eddd56
[INFO] running `Command { std: "docker" "start" "ab118e2e8d18d4c86fecac6aa016895c79351013789999b7e2eb616674eddd56", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ab118e2e8d18d4c86fecac6aa016895c79351013789999b7e2eb616674eddd56", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "ab118e2e8d18d4c86fecac6aa016895c79351013789999b7e2eb616674eddd56" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ab118e2e8d18d4c86fecac6aa016895c79351013789999b7e2eb616674eddd56", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "ab118e2e8d18d4c86fecac6aa016895c79351013789999b7e2eb616674eddd56" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling aho-corasick v1.1.5
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling zenrust-validate-derive v0.0.3 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 9.06s
[INFO] running `Command { std: "docker" "inspect" "ab118e2e8d18d4c86fecac6aa016895c79351013789999b7e2eb616674eddd56", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "ab118e2e8d18d4c86fecac6aa016895c79351013789999b7e2eb616674eddd56" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling target-triple v1.0.1
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling toml_parser v1.1.3+spec-1.1.0
[INFO] [stderr]    Compiling toml_writer v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling glob v0.3.4
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling toml v1.1.4+spec-1.1.0
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling zenrust-validate-derive v0.0.3 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling trybuild v1.0.120
[INFO] [stdout] error[E0432]: unresolved import `zenrust_validate`
[INFO] [stdout]  --> tests/spec_001_derive_nested.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use zenrust_validate::Validate;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `zenrust_validate`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `zenrust_validate`, use `cargo add zenrust_validate` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]   --> tests/spec_001_derive_nested.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |   #[validate(size(5))]
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `validate` is an attribute that can be used by the derive macro `Validate`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `zenrust_validate`
[INFO] [stdout]  --> tests/spec_001_derive_keys.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use zenrust_validate::Validate;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `zenrust_validate`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `zenrust_validate`, use `cargo add zenrust_validate` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `zenrust_validate`
[INFO] [stdout]   --> tests/spec_001_derive_edges.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use zenrust_validate::Validate;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `zenrust_validate`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `zenrust_validate`, use `cargo add zenrust_validate` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `zenrust_validate`
[INFO] [stdout]  --> tests/spec_001_derive_contract.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use zenrust_validate::{Context, CustomRule, Validate, Validator, Violation};
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `zenrust_validate`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `zenrust_validate`, use `cargo add zenrust_validate` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `zenrust_validate`
[INFO] [stdout]   --> tests/spec_001_derive_contract.rs:46:7
[INFO] [stdout]    |
[INFO] [stdout] 46 |   use zenrust_validate::{
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `zenrust_validate`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `zenrust_validate`, use `cargo add zenrust_validate` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `zenrust_validate`
[INFO] [stdout]   --> tests/spec_001_derive_negative_literals.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use zenrust_validate::Validate;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `zenrust_validate`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `zenrust_validate`, use `cargo add zenrust_validate` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]   --> tests/spec_001_derive_edges.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 87 |   #[validate(min(2))]
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `validate` is an attribute that can be used by the derive macro `Validate`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]   --> tests/spec_001_derive_negative_literals.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |   #[validate(min(-5))]
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `validate` is an attribute that can be used by the derive macro `Validate`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]    --> tests/spec_001_derive_edges.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 105 |   #[validate(min(8), confirmed)]
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `validate` is an attribute that can be used by the derive macro `Validate`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]   --> tests/spec_001_derive_negative_literals.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |   #[validate(between(-10.5, -0.5))]
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `validate` is an attribute that can be used by the derive macro `Validate`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]    --> tests/spec_001_derive_edges.rs:155:5
[INFO] [stdout]     |
[INFO] [stdout] 155 |   #[validate(same("contact_email"))]
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `validate` is an attribute that can be used by the derive macro `Validate`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]   --> tests/spec_001_derive_negative_literals.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |   #[validate(one_of(-1, 0, 1))]
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `validate` is an attribute that can be used by the derive macro `Validate`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]   --> tests/spec_001_derive_keys.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |   #[validate(min(8), confirmed)]
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `validate` is an attribute that can be used by the derive macro `Validate`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]   --> tests/spec_001_derive_negative_literals.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |   #[validate(not_in(-7))]
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `validate` is an attribute that can be used by the derive macro `Validate`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]   --> tests/spec_001_derive_keys.rs:48:3
[INFO] [stdout]    |
[INFO] [stdout] 48 | #[validate(rename_all = "camelCase")]
[INFO] [stdout]    |   ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: `validate` is an attribute that can be used by the derive macro `Validate`, you might be missing a `derive` attribute
[INFO] [stdout]    |
[INFO] [stdout] 49 + #[derive(Validate)]
[INFO] [stdout] 50 | struct CamelContainer {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]    --> tests/spec_001_derive_edges.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 186 |   #[validate(same("contact_email"))]
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `validate` is an attribute that can be used by the derive macro `Validate`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]    --> tests/spec_001_derive_edges.rs:188:5
[INFO] [stdout]     |
[INFO] [stdout] 188 |   #[validate(rename = "contactEmail")]
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `validate` is an attribute that can be used by the derive macro `Validate`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]   --> tests/spec_001_derive_keys.rs:66:3
[INFO] [stdout]    |
[INFO] [stdout] 66 | #[validate(rename_all = "camelCase")]
[INFO] [stdout]    |   ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: `validate` is an attribute that can be used by the derive macro `Validate`, you might be missing a `derive` attribute
[INFO] [stdout]    |
[INFO] [stdout] 67 + #[derive(Validate)]
[INFO] [stdout] 68 | struct FieldRenameWins {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `zenrust_validate`
[INFO] [stdout]  --> tests/spec_001_derive_type_rules.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use zenrust_validate::Validate;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `zenrust_validate`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `zenrust_validate`, use `cargo add zenrust_validate` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]   --> tests/spec_001_derive_keys.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |   #[validate(rename = "user_name")]
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `validate` is an attribute that can be used by the derive macro `Validate`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]   --> tests/spec_001_derive_contract.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |   #[validate(min(3), max(50))]
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `validate` is an attribute that can be used by the derive macro `Validate`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `WithRequiredAddress` in the current scope
[INFO] [stdout]   --> tests/spec_001_derive_nested.rs:34:38
[INFO] [stdout]    |
[INFO] [stdout] 26 | struct WithRequiredAddress {
[INFO] [stdout]    | -------------------------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 34 |   let missing = WithRequiredAddress::validate(&json!({})).unwrap_err();
[INFO] [stdout]    |                                      ^^^^^^^^ associated function or constant not found in `WithRequiredAddress`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `WithRequiredAddress` in the current scope
[INFO] [stdout]   --> tests/spec_001_derive_nested.rs:38:38
[INFO] [stdout]    |
[INFO] [stdout] 26 | struct WithRequiredAddress {
[INFO] [stdout]    | -------------------------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 38 |   let non_map = WithRequiredAddress::validate(&json!({"address": 5})).unwrap_err();
[INFO] [stdout]    |                                      ^^^^^^^^ associated function or constant not found in `WithRequiredAddress`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `WithRequiredAddress: TryFrom<Value>` is not satisfied
[INFO] [stdout]   --> tests/spec_001_derive_nested.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 |   let ok = WithRequiredAddress::try_from(json!({
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `WithRequiredAddress`
[INFO] [stdout]   --> tests/spec_001_derive_nested.rs:26:1
[INFO] [stdout]    |
[INFO] [stdout] 26 | struct WithRequiredAddress {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `Value` to implement `Into<WithRequiredAddress>`
[INFO] [stdout]    = note: required for `WithRequiredAddress` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `WithRequiredAddress: From<Value>` is not satisfied
[INFO] [stdout]   --> tests/spec_001_derive_nested.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let ok = WithRequiredAddress::try_from(json!({
[INFO] [stdout]    |  ____________^
[INFO] [stdout] 47 | |       "address": {"street": "Main St", "zip": "85001"},
[INFO] [stdout] 48 | |   }))
[INFO] [stdout]    | |_____^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `WithRequiredAddress`
[INFO] [stdout]   --> tests/spec_001_derive_nested.rs:26:1
[INFO] [stdout]    |
[INFO] [stdout] 26 | struct WithRequiredAddress {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `Value` to implement `Into<WithRequiredAddress>`
[INFO] [stdout]    = note: required for `WithRequiredAddress` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]   --> tests/spec_001_derive_contract.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |   #[validate(email)]
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `validate` is an attribute that can be used by the derive macro `Validate`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `WithRequiredAddress` in the current scope
[INFO] [stdout]   --> tests/spec_001_derive_nested.rs:57:37
[INFO] [stdout]    |
[INFO] [stdout] 26 | struct WithRequiredAddress {
[INFO] [stdout]    | -------------------------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 57 |   let errors = WithRequiredAddress::validate(&json!({
[INFO] [stdout]    |                                     ^^^^^^^^ associated function or constant not found in `WithRequiredAddress`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Reading: TryFrom<Value>` is not satisfied
[INFO] [stdout]   --> tests/spec_001_derive_negative_literals.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 |   let ok = Reading::try_from(body(-3, -1.0, 0, 1)).expect("-3 >= -5");
[INFO] [stdout]    |            ^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `Reading`
[INFO] [stdout]   --> tests/spec_001_derive_negative_literals.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct Reading {
[INFO] [stdout]    | ^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `Value` to implement `Into<Reading>`
[INFO] [stdout]    = note: required for `Reading` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `WithOptionalAddress: TryFrom<Value>` is not satisfied
[INFO] [stdout]   --> tests/spec_001_derive_nested.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 |   let ok = WithOptionalAddress::try_from(json!({"address": null})).expect("null address is ok");
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `WithOptionalAddress`
[INFO] [stdout]   --> tests/spec_001_derive_nested.rs:66:1
[INFO] [stdout]    |
[INFO] [stdout] 66 | struct WithOptionalAddress {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `Value` to implement `Into<WithOptionalAddress>`
[INFO] [stdout]    = note: required for `WithOptionalAddress` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `WithOptionalAddress: From<Value>` is not satisfied
[INFO] [stdout]   --> tests/spec_001_derive_nested.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 |   let ok = WithOptionalAddress::try_from(json!({"address": null})).expect("null address is ok");
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `WithOptionalAddress`
[INFO] [stdout]   --> tests/spec_001_derive_nested.rs:66:1
[INFO] [stdout]    |
[INFO] [stdout] 66 | struct WithOptionalAddress {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `Value` to implement `Into<WithOptionalAddress>`
[INFO] [stdout]    = note: required for `WithOptionalAddress` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `WithOptionalAddress: TryFrom<Value>` is not satisfied
[INFO] [stdout]   --> tests/spec_001_derive_nested.rs:84:18
[INFO] [stdout]    |
[INFO] [stdout] 84 |   let by_empty = WithOptionalAddress::try_from(json!({"address": ""})).expect("`\"\"` is absence");
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `WithOptionalAddress`
[INFO] [stdout]   --> tests/spec_001_derive_nested.rs:66:1
[INFO] [stdout]    |
[INFO] [stdout] 66 | struct WithOptionalAddress {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `Value` to implement `Into<WithOptionalAddress>`
[INFO] [stdout]    = note: required for `WithOptionalAddress` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `WithOptionalAddress: TryFrom<Value>` is not satisfied
[INFO] [stdout]   --> tests/spec_001_derive_nested.rs:85:17
[INFO] [stdout]    |
[INFO] [stdout] 85 |   let by_null = WithOptionalAddress::try_from(json!({"address": null})).expect("`null`");
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `WithOptionalAddress`
[INFO] [stdout]   --> tests/spec_001_derive_nested.rs:66:1
[INFO] [stdout]    |
[INFO] [stdout] 66 | struct WithOptionalAddress {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `Value` to implement `Into<WithOptionalAddress>`
[INFO] [stdout]    = note: required for `WithOptionalAddress` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `WithOptionalAddress: TryFrom<Value>` is not satisfied
[INFO] [stdout]   --> tests/spec_001_derive_nested.rs:86:19
[INFO] [stdout]    |
[INFO] [stdout] 86 |   let by_absent = WithOptionalAddress::try_from(json!({})).expect("absent key");
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `WithOptionalAddress`
[INFO] [stdout]   --> tests/spec_001_derive_nested.rs:66:1
[INFO] [stdout]    |
[INFO] [stdout] 66 | struct WithOptionalAddress {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `Value` to implement `Into<WithOptionalAddress>`
[INFO] [stdout]    = note: required for `WithOptionalAddress` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `WithOptionalAddress: From<Value>` is not satisfied
[INFO] [stdout]   --> tests/spec_001_derive_nested.rs:84:18
[INFO] [stdout]    |
[INFO] [stdout] 84 |   let by_empty = WithOptionalAddress::try_from(json!({"address": ""})).expect("`\"\"` is absence");
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `WithOptionalAddress`
[INFO] [stdout]   --> tests/spec_001_derive_nested.rs:66:1
[INFO] [stdout]    |
[INFO] [stdout] 66 | struct WithOptionalAddress {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `Value` to implement `Into<WithOptionalAddress>`
[INFO] [stdout]    = note: required for `WithOptionalAddress` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]   --> tests/spec_001_derive_keys.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 83 |   #[validate(same("email_confirmation"))]
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `validate` is an attribute that can be used by the derive macro `Validate`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `WithOptionalProfile: TryFrom<&Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_nested.rs:112:14
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let ok = WithOptionalProfile::try_from(&input).expect("absence is accepted");
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<&Value>` is not implemented for `WithOptionalProfile`
[INFO] [stdout]    --> tests/spec_001_derive_nested.rs:101:1
[INFO] [stdout]     |
[INFO] [stdout] 101 | struct WithOptionalProfile {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `&Value` to implement `Into<WithOptionalProfile>`
[INFO] [stdout]     = note: required for `WithOptionalProfile` to implement `TryFrom<&Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `WithOptionalProfile: TryFrom<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_nested.rs:116:17
[INFO] [stdout]     |
[INFO] [stdout] 116 |   let present = WithOptionalProfile::try_from(json!({"profile": {}}))
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `WithOptionalProfile`
[INFO] [stdout]    --> tests/spec_001_derive_nested.rs:101:1
[INFO] [stdout]     |
[INFO] [stdout] 101 | struct WithOptionalProfile {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<WithOptionalProfile>`
[INFO] [stdout]     = note: required for `WithOptionalProfile` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `WithOptionalProfile: From<&Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_nested.rs:112:14
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let ok = WithOptionalProfile::try_from(&input).expect("absence is accepted");
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<&Value>` is not implemented for `WithOptionalProfile`
[INFO] [stdout]    --> tests/spec_001_derive_nested.rs:101:1
[INFO] [stdout]     |
[INFO] [stdout] 101 | struct WithOptionalProfile {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `&Value` to implement `Into<WithOptionalProfile>`
[INFO] [stdout]     = note: required for `WithOptionalProfile` to implement `TryFrom<&Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `WithOptionalProfile: From<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_nested.rs:116:17
[INFO] [stdout]     |
[INFO] [stdout] 116 |   let present = WithOptionalProfile::try_from(json!({"profile": {}}))
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `WithOptionalProfile`
[INFO] [stdout]    --> tests/spec_001_derive_nested.rs:101:1
[INFO] [stdout]     |
[INFO] [stdout] 101 | struct WithOptionalProfile {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<WithOptionalProfile>`
[INFO] [stdout]     = note: required for `WithOptionalProfile` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]   --> tests/spec_001_derive_contract.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |   #[validate(min(8), confirmed)]
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `validate` is an attribute that can be used by the derive macro `Validate`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `Reading` in the current scope
[INFO] [stdout]   --> tests/spec_001_derive_negative_literals.rs:50:25
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct Reading {
[INFO] [stdout]    | -------------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 50 |   let errors = Reading::validate(&body(-10, -1.0, 0, 1)).expect_err("-10 < -5");
[INFO] [stdout]    |                         ^^^^^^^^ associated function or constant not found in `Reading`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `WithAddressList` in the current scope
[INFO] [stdout]    --> tests/spec_001_derive_nested.rs:131:33
[INFO] [stdout]     |
[INFO] [stdout] 123 | struct WithAddressList {
[INFO] [stdout]     | ---------------------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 131 |   let errors = WithAddressList::validate(&json!({
[INFO] [stdout]     |                                 ^^^^^^^^ associated function or constant not found in `WithAddressList`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Reading: From<Value>` is not satisfied
[INFO] [stdout]   --> tests/spec_001_derive_negative_literals.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 |   let ok = Reading::try_from(body(-3, -1.0, 0, 1)).expect("-3 >= -5");
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `Reading`
[INFO] [stdout]   --> tests/spec_001_derive_negative_literals.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct Reading {
[INFO] [stdout]    | ^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `Value` to implement `Into<Reading>`
[INFO] [stdout]    = note: required for `Reading` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Reading: TryFrom<Value>` is not satisfied
[INFO] [stdout]   --> tests/spec_001_derive_negative_literals.rs:58:11
[INFO] [stdout]    |
[INFO] [stdout] 58 |   assert!(Reading::try_from(body(0, -5.25, 0, 1)).is_ok());
[INFO] [stdout]    |           ^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `Reading`
[INFO] [stdout]   --> tests/spec_001_derive_negative_literals.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct Reading {
[INFO] [stdout]    | ^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `Value` to implement `Into<Reading>`
[INFO] [stdout]    = note: required for `Reading` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `zenrust_validate`
[INFO] [stdout]   --> tests/spec_001_derive_containers.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use zenrust_validate::Validate;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `zenrust_validate`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `zenrust_validate`, use `cargo add zenrust_validate` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]   --> tests/spec_001_derive_keys.rs:98:5
[INFO] [stdout]    |
[INFO] [stdout] 98 |   #[validate(same("contact_email"))]
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `validate` is an attribute that can be used by the derive macro `Validate`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `Reading` in the current scope
[INFO] [stdout]   --> tests/spec_001_derive_negative_literals.rs:60:25
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct Reading {
[INFO] [stdout]    | -------------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 60 |   let errors = Reading::validate(&body(0, 0.5, 0, 1)).expect_err("0.5 is above -0.5");
[INFO] [stdout]    |                         ^^^^^^^^ associated function or constant not found in `Reading`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `zenrust_validate` in this scope
[INFO] [stdout]  --> tests/spec_001_derive_nested.rs:8:21
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn rule_on(errors: &zenrust_validate::Errors, field: &str) -> String {
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `zenrust_validate`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `zenrust_validate`, use `cargo add zenrust_validate` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Reading: From<Value>` is not satisfied
[INFO] [stdout]   --> tests/spec_001_derive_negative_literals.rs:58:11
[INFO] [stdout]    |
[INFO] [stdout] 58 |   assert!(Reading::try_from(body(0, -5.25, 0, 1)).is_ok());
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `Reading`
[INFO] [stdout]   --> tests/spec_001_derive_negative_literals.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct Reading {
[INFO] [stdout]    | ^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `Value` to implement `Into<Reading>`
[INFO] [stdout]    = note: required for `Reading` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0432, E0433, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Reading: TryFrom<Value>` is not satisfied
[INFO] [stdout]   --> tests/spec_001_derive_negative_literals.rs:68:11
[INFO] [stdout]    |
[INFO] [stdout] 68 |   assert!(Reading::try_from(body(0, -1.0, -1, 1)).is_ok());
[INFO] [stdout]    |           ^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `Reading`
[INFO] [stdout]   --> tests/spec_001_derive_negative_literals.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct Reading {
[INFO] [stdout]    | ^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `Value` to implement `Into<Reading>`
[INFO] [stdout]    = note: required for `Reading` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `WithRequiredAddress` in the current scope
[INFO] [stdout]   --> tests/spec_001_derive_edges.rs:53:44
[INFO] [stdout]    |
[INFO] [stdout] 41 | struct WithRequiredAddress {
[INFO] [stdout]    | -------------------------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 53 |     let Err(errors) = WithRequiredAddress::validate(&input) else {
[INFO] [stdout]    |                                            ^^^^^^^^ associated function or constant not found in `WithRequiredAddress`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `Reading` in the current scope
[INFO] [stdout]   --> tests/spec_001_derive_negative_literals.rs:70:25
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct Reading {
[INFO] [stdout]    | -------------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 70 |   let one_of = Reading::validate(&body(0, -1.0, 2, 1)).expect_err("2 is not one of -1, 0, 1");
[INFO] [stdout]    |                         ^^^^^^^^ associated function or constant not found in `Reading`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `zenrust-validate-derive` (test "spec_001_derive_nested") due to 19 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `Reading` in the current scope
[INFO] [stdout]   --> tests/spec_001_derive_negative_literals.rs:73:25
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct Reading {
[INFO] [stdout]    | -------------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 73 |   let not_in = Reading::validate(&body(0, -1.0, 0, -7)).expect_err("-7 is excluded");
[INFO] [stdout]    |                         ^^^^^^^^ associated function or constant not found in `Reading`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Reading: From<Value>` is not satisfied
[INFO] [stdout]   --> tests/spec_001_derive_negative_literals.rs:68:11
[INFO] [stdout]    |
[INFO] [stdout] 68 |   assert!(Reading::try_from(body(0, -1.0, -1, 1)).is_ok());
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `Reading`
[INFO] [stdout]   --> tests/spec_001_derive_negative_literals.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct Reading {
[INFO] [stdout]    | ^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `Value` to implement `Into<Reading>`
[INFO] [stdout]    = note: required for `Reading` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `Tags` in the current scope
[INFO] [stdout]   --> tests/spec_001_derive_edges.rs:77:22
[INFO] [stdout]    |
[INFO] [stdout] 67 | struct Tags {
[INFO] [stdout]    | ----------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 77 |   let errors = Tags::validate(&json!({"tags": []})).expect_err("an empty list is not present");
[INFO] [stdout]    |                      ^^^^^^^^ associated function or constant not found in `Tags`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `zenrust_validate` in this scope
[INFO] [stdout]   --> tests/spec_001_derive_negative_literals.rs:15:21
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn rule_on(errors: &zenrust_validate::Errors, field: &str) -> String {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `zenrust_validate`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `zenrust_validate`, use `cargo add zenrust_validate` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0432, E0433, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]   --> tests/spec_001_derive_contract.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |   #[validate(min(18))]
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `validate` is an attribute that can be used by the derive macro `Validate`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]   --> tests/spec_001_derive_contract.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |   #[validate(one_of("free", "pro", "team"))]
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `validate` is an attribute that can be used by the derive macro `Validate`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]   --> tests/spec_001_derive_contract.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |   #[validate(url)]
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `validate` is an attribute that can be used by the derive macro `Validate`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `zenrust-validate-derive` (test "spec_001_derive_negative_literals") due to 16 previous errors
[INFO] [stdout] error[E0277]: the trait bound `Tags: TryFrom<Value>` is not satisfied
[INFO] [stdout]   --> tests/spec_001_derive_edges.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 80 |   let ok = Tags::try_from(json!({"tags": ["a"]})).expect("a non-empty list is present");
[INFO] [stdout]    |            ^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `Tags`
[INFO] [stdout]   --> tests/spec_001_derive_edges.rs:67:1
[INFO] [stdout]    |
[INFO] [stdout] 67 | struct Tags {
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout]    = note: required for `Value` to implement `Into<Tags>`
[INFO] [stdout]    = note: required for `Tags` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]   --> tests/spec_001_derive_contract.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 |   #[validate(min(1), each(starts_with("REF-")))]
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `validate` is an attribute that can be used by the derive macro `Validate`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]    --> tests/spec_001_derive_contract.rs:157:5
[INFO] [stdout]     |
[INFO] [stdout] 157 |   #[validate(bail, min(3))]
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `validate` is an attribute that can be used by the derive macro `Validate`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Tags: From<Value>` is not satisfied
[INFO] [stdout]   --> tests/spec_001_derive_edges.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 80 |   let ok = Tags::try_from(json!({"tags": ["a"]})).expect("a non-empty list is present");
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `Tags`
[INFO] [stdout]   --> tests/spec_001_derive_edges.rs:67:1
[INFO] [stdout]    |
[INFO] [stdout] 67 | struct Tags {
[INFO] [stdout]    | ^^^^^^^^^^^
[INFO] [stdout]    = note: required for `Value` to implement `Into<Tags>`
[INFO] [stdout]    = note: required for `Tags` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]    --> tests/spec_001_derive_contract.rs:192:5
[INFO] [stdout]     |
[INFO] [stdout] 192 |   #[validate(custom(EvenNumber))]
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `validate` is an attribute that can be used by the derive macro `Validate`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]    --> tests/spec_001_derive_keys.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 100 |   #[validate(rename = "contactEmail")]
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `validate` is an attribute that can be used by the derive macro `Validate`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]    --> tests/spec_001_derive_contract.rs:214:5
[INFO] [stdout]     |
[INFO] [stdout] 214 |   #[validate(date)]
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `validate` is an attribute that can be used by the derive macro `Validate`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]    --> tests/spec_001_derive_contract.rs:228:5
[INFO] [stdout]     |
[INFO] [stdout] 228 |   #[validate(min(1))]
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `validate` is an attribute that can be used by the derive macro `Validate`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]   --> tests/spec_001_derive_type_rules.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |   #[validate(min(5))]
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `validate` is an attribute that can be used by the derive macro `Validate`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `MinTags` in the current scope
[INFO] [stdout]   --> tests/spec_001_derive_edges.rs:98:25
[INFO] [stdout]    |
[INFO] [stdout] 86 | struct MinTags {
[INFO] [stdout]    | -------------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 98 |   let errors = MinTags::validate(&json!({"tags": []})).expect_err("an empty list fails both rules");
[INFO] [stdout]    |                         ^^^^^^^^ associated function or constant not found in `MinTags`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]   --> tests/spec_001_derive_type_rules.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |   #[validate(min(5))]
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `validate` is an attribute that can be used by the derive macro `Validate`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `WithAccount: TryFrom<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_edges.rs:122:12
[INFO] [stdout]     |
[INFO] [stdout] 122 |   let ok = WithAccount::try_from(json!({
[INFO] [stdout]     |            ^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `WithAccount`
[INFO] [stdout]    --> tests/spec_001_derive_edges.rs:111:1
[INFO] [stdout]     |
[INFO] [stdout] 111 | struct WithAccount {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<WithAccount>`
[INFO] [stdout]     = note: required for `WithAccount` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `WithAccount` in the current scope
[INFO] [stdout]    --> tests/spec_001_derive_edges.rs:128:33
[INFO] [stdout]     |
[INFO] [stdout] 111 | struct WithAccount {
[INFO] [stdout]     | ------------------ associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 128 |   let mismatched = WithAccount::validate(&json!({
[INFO] [stdout]     |                                 ^^^^^^^^ associated function or constant not found in `WithAccount`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]   --> tests/spec_001_derive_type_rules.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 86 |   #[validate(min(2))]
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `validate` is an attribute that can be used by the derive macro `Validate`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `WithAccount` in the current scope
[INFO] [stdout]    --> tests/spec_001_derive_edges.rs:134:29
[INFO] [stdout]     |
[INFO] [stdout] 111 | struct WithAccount {
[INFO] [stdout]     | ------------------ associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 134 |   let absent = WithAccount::validate(&json!({"account": {"password": "secret123"}}))
[INFO] [stdout]     |                             ^^^^^^^^ associated function or constant not found in `WithAccount`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:219:5
[INFO] [stdout]     |
[INFO] [stdout] 219 |   #[validate(each(email))]
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `validate` is an attribute that can be used by the derive macro `Validate`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `zenrust_validate` in this scope
[INFO] [stdout]  --> tests/spec_001_derive_contract.rs:8:21
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn rule_on(errors: &zenrust_validate::Errors, field: &str) -> String {
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `zenrust_validate`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `zenrust_validate`, use `cargo add zenrust_validate` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `zenrust-validate-derive` (test "spec_001_derive_contract") due to 14 previous errors
[INFO] [stdout] error[E0277]: the trait bound `WithAccount: From<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_edges.rs:122:12
[INFO] [stdout]     |
[INFO] [stdout] 122 |     let ok = WithAccount::try_from(json!({
[INFO] [stdout]     |  ____________^
[INFO] [stdout] 123 | |       "account": {"password": "secret123", "password_confirmation": "secret123"},
[INFO] [stdout] 124 | |   }))
[INFO] [stdout]     | |_____^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `WithAccount`
[INFO] [stdout]    --> tests/spec_001_derive_edges.rs:111:1
[INFO] [stdout]     |
[INFO] [stdout] 111 | struct WithAccount {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<WithAccount>`
[INFO] [stdout]     = note: required for `WithAccount` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `WithAccount` in the current scope
[INFO] [stdout]    --> tests/spec_001_derive_edges.rs:144:29
[INFO] [stdout]     |
[INFO] [stdout] 111 | struct WithAccount {
[INFO] [stdout]     | ------------------ associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 144 |   let errors = WithAccount::validate(&json!({
[INFO] [stdout]     |                             ^^^^^^^^ associated function or constant not found in `WithAccount`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `WithContact: TryFrom<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_edges.rs:170:12
[INFO] [stdout]     |
[INFO] [stdout] 170 |   let ok = WithContact::try_from(json!({
[INFO] [stdout]     |            ^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `WithContact`
[INFO] [stdout]    --> tests/spec_001_derive_edges.rs:162:1
[INFO] [stdout]     |
[INFO] [stdout] 162 | struct WithContact {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<WithContact>`
[INFO] [stdout]     = note: required for `WithContact` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `WithContact` in the current scope
[INFO] [stdout]    --> tests/spec_001_derive_edges.rs:176:33
[INFO] [stdout]     |
[INFO] [stdout] 162 | struct WithContact {
[INFO] [stdout]     | ------------------ associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 176 |   let mismatched = WithContact::validate(&json!({
[INFO] [stdout]     |                                 ^^^^^^^^ associated function or constant not found in `WithContact`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `WithContact: From<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_edges.rs:170:12
[INFO] [stdout]     |
[INFO] [stdout] 170 |     let ok = WithContact::try_from(json!({
[INFO] [stdout]     |  ____________^
[INFO] [stdout] 171 | |       "account": {"email": "a@b.com", "contact_email": "a@b.com"},
[INFO] [stdout] 172 | |   }))
[INFO] [stdout]     | |_____^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `WithContact`
[INFO] [stdout]    --> tests/spec_001_derive_edges.rs:162:1
[INFO] [stdout]     |
[INFO] [stdout] 162 | struct WithContact {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<WithContact>`
[INFO] [stdout]     = note: required for `WithContact` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `WithRenamedContact: TryFrom<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_edges.rs:203:12
[INFO] [stdout]     |
[INFO] [stdout] 203 |   let ok = WithRenamedContact::try_from(json!({
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `WithRenamedContact`
[INFO] [stdout]    --> tests/spec_001_derive_edges.rs:194:1
[INFO] [stdout]     |
[INFO] [stdout] 194 | struct WithRenamedContact {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<WithRenamedContact>`
[INFO] [stdout]     = note: required for `WithRenamedContact` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `WithRenamedContact` in the current scope
[INFO] [stdout]    --> tests/spec_001_derive_edges.rs:209:40
[INFO] [stdout]     |
[INFO] [stdout] 194 | struct WithRenamedContact {
[INFO] [stdout]     | ------------------------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 209 |   let mismatched = WithRenamedContact::validate(&json!({
[INFO] [stdout]     |                                        ^^^^^^^^ associated function or constant not found in `WithRenamedContact`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `WithRenamedContact: From<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_edges.rs:203:12
[INFO] [stdout]     |
[INFO] [stdout] 203 |     let ok = WithRenamedContact::try_from(json!({
[INFO] [stdout]     |  ____________^
[INFO] [stdout] 204 | |       "account": {"email": "a@b.com", "contactEmail": "a@b.com"},
[INFO] [stdout] 205 | |   }))
[INFO] [stdout]     | |_____^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `WithRenamedContact`
[INFO] [stdout]    --> tests/spec_001_derive_edges.rs:194:1
[INFO] [stdout]     |
[INFO] [stdout] 194 | struct WithRenamedContact {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<WithRenamedContact>`
[INFO] [stdout]     = note: required for `WithRenamedContact` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `zenrust_validate` in this scope
[INFO] [stdout]   --> tests/spec_001_derive_edges.rs:14:21
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn rule_on(errors: &zenrust_validate::Errors, field: &str) -> String {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `zenrust_validate`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `zenrust_validate`, use `cargo add zenrust_validate` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `zenrust_validate` in this scope
[INFO] [stdout]   --> tests/spec_001_derive_edges.rs:23:30
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn rule_keys<'a>(errors: &'a zenrust_validate::Errors, field: &str) -> Vec<&'a str> {
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `zenrust_validate`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `zenrust_validate`, use `cargo add zenrust_validate` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0432, E0433, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `zenrust-validate-derive` (test "spec_001_derive_edges") due to 24 previous errors
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `Password` in the current scope
[INFO] [stdout]   --> tests/spec_001_derive_keys.rs:28:26
[INFO] [stdout]    |
[INFO] [stdout] 18 | struct Password {
[INFO] [stdout]    | --------------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 28 |   let absent = Password::validate(&json!({"password": "secret123"})).unwrap_err();
[INFO] [stdout]    |                          ^^^^^^^^ associated function or constant not found in `Password`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `RequiredName` in the current scope
[INFO] [stdout]   --> tests/spec_001_derive_type_rules.rs:27:31
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct RequiredName {
[INFO] [stdout]    | ------------------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 27 |   let missing = RequiredName::validate(&json!({})).unwrap_err();
[INFO] [stdout]    |                               ^^^^^^^^ associated function or constant not found in `RequiredName`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `Password` in the current scope
[INFO] [stdout]   --> tests/spec_001_derive_keys.rs:31:30
[INFO] [stdout]    |
[INFO] [stdout] 18 | struct Password {
[INFO] [stdout]    | --------------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 31 |   let mismatched = Password::validate(&json!({
[INFO] [stdout]    |                              ^^^^^^^^ associated function or constant not found in `Password`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `RequiredName` in the current scope
[INFO] [stdout]   --> tests/spec_001_derive_type_rules.rs:30:28
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct RequiredName {
[INFO] [stdout]    | ------------------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 30 |   let null = RequiredName::validate(&json!({"name": null})).unwrap_err();
[INFO] [stdout]    |                            ^^^^^^^^ associated function or constant not found in `RequiredName`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `RequiredName` in the current scope
[INFO] [stdout]   --> tests/spec_001_derive_type_rules.rs:33:29
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct RequiredName {
[INFO] [stdout]    | ------------------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 33 |   let empty = RequiredName::validate(&json!({"name": ""})).unwrap_err();
[INFO] [stdout]    |                             ^^^^^^^^ associated function or constant not found in `RequiredName`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Password: TryFrom<Value>` is not satisfied
[INFO] [stdout]   --> tests/spec_001_derive_keys.rs:38:18
[INFO] [stdout]    |
[INFO] [stdout] 38 |   let matching = Password::try_from(json!({
[INFO] [stdout]    |                  ^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `Password`
[INFO] [stdout]   --> tests/spec_001_derive_keys.rs:18:1
[INFO] [stdout]    |
[INFO] [stdout] 18 | struct Password {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `Value` to implement `Into<Password>`
[INFO] [stdout]    = note: required for `Password` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Password: From<Value>` is not satisfied
[INFO] [stdout]   --> tests/spec_001_derive_keys.rs:38:18
[INFO] [stdout]    |
[INFO] [stdout] 38 |     let matching = Password::try_from(json!({
[INFO] [stdout]    |  __________________^
[INFO] [stdout] 39 | |       "password": "secret123",
[INFO] [stdout] 40 | |       "password_confirmation": "secret123",
[INFO] [stdout] 41 | |   }))
[INFO] [stdout]    | |_____^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `Password`
[INFO] [stdout]   --> tests/spec_001_derive_keys.rs:18:1
[INFO] [stdout]    |
[INFO] [stdout] 18 | struct Password {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `Value` to implement `Into<Password>`
[INFO] [stdout]    = note: required for `Password` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `CamelContainer: TryFrom<Value>` is not satisfied
[INFO] [stdout]   --> tests/spec_001_derive_keys.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 57 |   let ok = CamelContainer::try_from(json!({"displayName": "x"})).expect("camelCase key");
[INFO] [stdout]    |            ^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `CamelContainer`
[INFO] [stdout]   --> tests/spec_001_derive_keys.rs:49:1
[INFO] [stdout]    |
[INFO] [stdout] 49 | struct CamelContainer {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `Value` to implement `Into<CamelContainer>`
[INFO] [stdout]    = note: required for `CamelContainer` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `CamelContainer` in the current scope
[INFO] [stdout]   --> tests/spec_001_derive_keys.rs:60:33
[INFO] [stdout]    |
[INFO] [stdout] 49 | struct CamelContainer {
[INFO] [stdout]    | --------------------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 60 |   let missing = CamelContainer::validate(&json!({})).unwrap_err();
[INFO] [stdout]    |                                 ^^^^^^^^ associated function or constant not found in `CamelContainer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `CamelContainer: From<Value>` is not satisfied
[INFO] [stdout]   --> tests/spec_001_derive_keys.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 57 |   let ok = CamelContainer::try_from(json!({"displayName": "x"})).expect("camelCase key");
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `CamelContainer`
[INFO] [stdout]   --> tests/spec_001_derive_keys.rs:49:1
[INFO] [stdout]    |
[INFO] [stdout] 49 | struct CamelContainer {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `Value` to implement `Into<CamelContainer>`
[INFO] [stdout]    = note: required for `CamelContainer` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `FieldRenameWins: TryFrom<Value>` is not satisfied
[INFO] [stdout]   --> tests/spec_001_derive_keys.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 76 |   let ok = FieldRenameWins::try_from(json!({"user_name": "x"})).expect("field rename wins");
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `FieldRenameWins`
[INFO] [stdout]   --> tests/spec_001_derive_keys.rs:67:1
[INFO] [stdout]    |
[INFO] [stdout] 67 | struct FieldRenameWins {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `Value` to implement `Into<FieldRenameWins>`
[INFO] [stdout]    = note: required for `FieldRenameWins` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `FieldRenameWins: From<Value>` is not satisfied
[INFO] [stdout]   --> tests/spec_001_derive_keys.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 76 |   let ok = FieldRenameWins::try_from(json!({"user_name": "x"})).expect("field rename wins");
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `FieldRenameWins`
[INFO] [stdout]   --> tests/spec_001_derive_keys.rs:67:1
[INFO] [stdout]    |
[INFO] [stdout] 67 | struct FieldRenameWins {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `Value` to implement `Into<FieldRenameWins>`
[INFO] [stdout]    = note: required for `FieldRenameWins` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `VerbatimSame` in the current scope
[INFO] [stdout]   --> tests/spec_001_derive_keys.rs:91:30
[INFO] [stdout]    |
[INFO] [stdout] 82 | struct VerbatimSame {
[INFO] [stdout]    | ------------------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 91 |   let errors = VerbatimSame::validate(&json!({"email": "a@b.com"})).unwrap_err();
[INFO] [stdout]    |                              ^^^^^^^^ associated function or constant not found in `VerbatimSame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `SiblingSame: TryFrom<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_keys.rs:108:18
[INFO] [stdout]     |
[INFO] [stdout] 108 |   let matching = SiblingSame::try_from(json!({
[INFO] [stdout]     |                  ^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `SiblingSame`
[INFO] [stdout]    --> tests/spec_001_derive_keys.rs:97:1
[INFO] [stdout]     |
[INFO] [stdout]  97 | struct SiblingSame {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<SiblingSame>`
[INFO] [stdout]     = note: required for `SiblingSame` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `SiblingSame` in the current scope
[INFO] [stdout]    --> tests/spec_001_derive_keys.rs:115:33
[INFO] [stdout]     |
[INFO] [stdout]  97 | struct SiblingSame {
[INFO] [stdout]     | ------------------ associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 115 |   let mismatched = SiblingSame::validate(&json!({
[INFO] [stdout]     |                                 ^^^^^^^^ associated function or constant not found in `SiblingSame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `OptionalWebsite: TryFrom<Value>` is not satisfied
[INFO] [stdout]   --> tests/spec_001_derive_type_rules.rs:48:17
[INFO] [stdout]    |
[INFO] [stdout] 48 |   let missing = OptionalWebsite::try_from(json!({})).expect("missing is ok");
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `OptionalWebsite`
[INFO] [stdout]   --> tests/spec_001_derive_type_rules.rs:39:1
[INFO] [stdout]    |
[INFO] [stdout] 39 | struct OptionalWebsite {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `Value` to implement `Into<OptionalWebsite>`
[INFO] [stdout]    = note: required for `OptionalWebsite` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `OptionalWebsite: TryFrom<Value>` is not satisfied
[INFO] [stdout]   --> tests/spec_001_derive_type_rules.rs:51:14
[INFO] [stdout]    |
[INFO] [stdout] 51 |   let null = OptionalWebsite::try_from(json!({"website": null})).expect("null is ok");
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `OptionalWebsite`
[INFO] [stdout]   --> tests/spec_001_derive_type_rules.rs:39:1
[INFO] [stdout]    |
[INFO] [stdout] 39 | struct OptionalWebsite {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `Value` to implement `Into<OptionalWebsite>`
[INFO] [stdout]    = note: required for `OptionalWebsite` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `OptionalWebsite: TryFrom<Value>` is not satisfied
[INFO] [stdout]   --> tests/spec_001_derive_type_rules.rs:54:15
[INFO] [stdout]    |
[INFO] [stdout] 54 |   let empty = OptionalWebsite::try_from(json!({"website": ""})).expect("empty string is ok");
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `OptionalWebsite`
[INFO] [stdout]   --> tests/spec_001_derive_type_rules.rs:39:1
[INFO] [stdout]    |
[INFO] [stdout] 39 | struct OptionalWebsite {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `Value` to implement `Into<OptionalWebsite>`
[INFO] [stdout]    = note: required for `OptionalWebsite` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `SiblingSame: From<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_keys.rs:108:18
[INFO] [stdout]     |
[INFO] [stdout] 108 |     let matching = SiblingSame::try_from(json!({
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 109 | |       "email": "a@b.com",
[INFO] [stdout] 110 | |       "contactEmail": "a@b.com",
[INFO] [stdout] 111 | |   }))
[INFO] [stdout]     | |_____^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `SiblingSame`
[INFO] [stdout]    --> tests/spec_001_derive_keys.rs:97:1
[INFO] [stdout]     |
[INFO] [stdout]  97 | struct SiblingSame {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<SiblingSame>`
[INFO] [stdout]     = note: required for `SiblingSame` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `NameOnly: TryFrom<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_keys.rs:133:12
[INFO] [stdout]     |
[INFO] [stdout] 133 |   let ok = NameOnly::try_from(json!({
[INFO] [stdout]     |            ^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `NameOnly`
[INFO] [stdout]    --> tests/spec_001_derive_keys.rs:125:1
[INFO] [stdout]     |
[INFO] [stdout] 125 | struct NameOnly {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<NameOnly>`
[INFO] [stdout]     = note: required for `NameOnly` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `OptionalWebsite: From<Value>` is not satisfied
[INFO] [stdout]   --> tests/spec_001_derive_type_rules.rs:48:17
[INFO] [stdout]    |
[INFO] [stdout] 48 |   let missing = OptionalWebsite::try_from(json!({})).expect("missing is ok");
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `OptionalWebsite`
[INFO] [stdout]   --> tests/spec_001_derive_type_rules.rs:39:1
[INFO] [stdout]    |
[INFO] [stdout] 39 | struct OptionalWebsite {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `Value` to implement `Into<OptionalWebsite>`
[INFO] [stdout]    = note: required for `OptionalWebsite` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `NameOnly: From<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_keys.rs:133:12
[INFO] [stdout]     |
[INFO] [stdout] 133 |     let ok = NameOnly::try_from(json!({
[INFO] [stdout]     |  ____________^
[INFO] [stdout] 134 | |       "name": "Alice",
[INFO] [stdout] 135 | |       "role": "admin",
[INFO] [stdout] 136 | |       "tenant": 42,
[INFO] [stdout] 137 | |   }))
[INFO] [stdout]     | |_____^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `NameOnly`
[INFO] [stdout]    --> tests/spec_001_derive_keys.rs:125:1
[INFO] [stdout]     |
[INFO] [stdout] 125 | struct NameOnly {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<NameOnly>`
[INFO] [stdout]     = note: required for `NameOnly` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `zenrust_validate` in this scope
[INFO] [stdout]  --> tests/spec_001_derive_keys.rs:8:21
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn rule_on(errors: &zenrust_validate::Errors, field: &str) -> String {
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `zenrust_validate`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `zenrust_validate`, use `cargo add zenrust_validate` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0432, E0433, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `OptionalChildList` in the current scope
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:100:35
[INFO] [stdout]     |
[INFO] [stdout]  43 | struct OptionalChildList {
[INFO] [stdout]     | ------------------------ associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 100 |   let errors = OptionalChildList::validate(&json!({"items": [{}]}))
[INFO] [stdout]     |                                   ^^^^^^^^ associated function or constant not found in `OptionalChildList`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `MinString` in the current scope
[INFO] [stdout]   --> tests/spec_001_derive_type_rules.rs:76:27
[INFO] [stdout]    |
[INFO] [stdout] 60 | struct MinString {
[INFO] [stdout]    | ---------------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 76 |   let errors = MinString::validate(&json!({"code": "20"})).unwrap_err();
[INFO] [stdout]    |                           ^^^^^^^^ associated function or constant not found in `MinString`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `MinInteger: TryFrom<Value>` is not satisfied
[INFO] [stdout]   --> tests/spec_001_derive_type_rules.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 79 |   let ok = MinInteger::try_from(json!({"code": "20"})).expect("20 >= 5 numerically");
[INFO] [stdout]    |            ^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `MinInteger`
[INFO] [stdout]   --> tests/spec_001_derive_type_rules.rs:67:1
[INFO] [stdout]    |
[INFO] [stdout] 67 | struct MinInteger {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `Value` to implement `Into<MinInteger>`
[INFO] [stdout]    = note: required for `MinInteger` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `MinInteger: From<Value>` is not satisfied
[INFO] [stdout]   --> tests/spec_001_derive_type_rules.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 79 |   let ok = MinInteger::try_from(json!({"code": "20"})).expect("20 >= 5 numerically");
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `MinInteger`
[INFO] [stdout]   --> tests/spec_001_derive_type_rules.rs:67:1
[INFO] [stdout]    |
[INFO] [stdout] 67 | struct MinInteger {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `Value` to implement `Into<MinInteger>`
[INFO] [stdout]    = note: required for `MinInteger` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `MinTags` in the current scope
[INFO] [stdout]   --> tests/spec_001_derive_type_rules.rs:93:25
[INFO] [stdout]    |
[INFO] [stdout] 85 | struct MinTags {
[INFO] [stdout]    | -------------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 93 |   let errors = MinTags::validate(&json!({"tags": ["a"]})).unwrap_err();
[INFO] [stdout]    |                         ^^^^^^^^ associated function or constant not found in `MinTags`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `AgeI64: TryFrom<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:106:21
[INFO] [stdout]     |
[INFO] [stdout] 106 |   let from_string = AgeI64::try_from(json!({"age": "5"})).expect("numeric string");
[INFO] [stdout]     |                     ^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `AgeI64`
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:99:1
[INFO] [stdout]     |
[INFO] [stdout]  99 | struct AgeI64 {
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<AgeI64>`
[INFO] [stdout]     = note: required for `AgeI64` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `AgeI64: TryFrom<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:108:21
[INFO] [stdout]     |
[INFO] [stdout] 108 |   let from_native = AgeI64::try_from(json!({"age": 5})).expect("native number");
[INFO] [stdout]     |                     ^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `AgeI64`
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:99:1
[INFO] [stdout]     |
[INFO] [stdout]  99 | struct AgeI64 {
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<AgeI64>`
[INFO] [stdout]     = note: required for `AgeI64` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `AgeI64: From<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:106:21
[INFO] [stdout]     |
[INFO] [stdout] 106 |   let from_string = AgeI64::try_from(json!({"age": "5"})).expect("numeric string");
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `AgeI64`
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:99:1
[INFO] [stdout]     |
[INFO] [stdout]  99 | struct AgeI64 {
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<AgeI64>`
[INFO] [stdout]     = note: required for `AgeI64` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `CountI32` in the current scope
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:122:26
[INFO] [stdout]     |
[INFO] [stdout] 114 | struct CountI32 {
[INFO] [stdout]     | --------------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 122 |   let errors = CountI32::validate(&json!({"count": 3_000_000_000_i64})).unwrap_err();
[INFO] [stdout]     |                          ^^^^^^^^ associated function or constant not found in `CountI32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `IdU64: TryFrom<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:136:12
[INFO] [stdout]     |
[INFO] [stdout] 136 |   let ok = IdU64::try_from(json!({"id": u64::MAX})).expect("u64::MAX fits u64 natively");
[INFO] [stdout]     |            ^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `IdU64`
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:128:1
[INFO] [stdout]     |
[INFO] [stdout] 128 | struct IdU64 {
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<IdU64>`
[INFO] [stdout]     = note: required for `IdU64` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `OptionalChildList: TryFrom<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:109:17
[INFO] [stdout]     |
[INFO] [stdout] 109 |   let missing = OptionalChildList::try_from(json!({})).expect("missing container is absent");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `OptionalChildList`
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:43:1
[INFO] [stdout]     |
[INFO] [stdout]  43 | struct OptionalChildList {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<OptionalChildList>`
[INFO] [stdout]     = note: required for `OptionalChildList` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `IdU64` in the current scope
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:140:12
[INFO] [stdout]     |
[INFO] [stdout] 128 | struct IdU64 {
[INFO] [stdout]     | ------------ associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 140 |     IdU64::validate(&json!({"id": u64::MAX.to_string()})).expect_err("string form fails");
[INFO] [stdout]     |            ^^^^^^^^ associated function or constant not found in `IdU64`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `OptionalChildList: TryFrom<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:111:14
[INFO] [stdout]     |
[INFO] [stdout] 111 |   let null = OptionalChildList::try_from(json!({"items": null})).expect("null container is absent");
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `OptionalChildList`
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:43:1
[INFO] [stdout]     |
[INFO] [stdout]  43 | struct OptionalChildList {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<OptionalChildList>`
[INFO] [stdout]     = note: required for `OptionalChildList` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `OptionalChildList: From<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:109:17
[INFO] [stdout]     |
[INFO] [stdout] 109 |   let missing = OptionalChildList::try_from(json!({})).expect("missing container is absent");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `OptionalChildList`
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:43:1
[INFO] [stdout]     |
[INFO] [stdout]  43 | struct OptionalChildList {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<OptionalChildList>`
[INFO] [stdout]     = note: required for `OptionalChildList` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `IdU64: From<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:136:12
[INFO] [stdout]     |
[INFO] [stdout] 136 |   let ok = IdU64::try_from(json!({"id": u64::MAX})).expect("u64::MAX fits u64 natively");
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `IdU64`
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:128:1
[INFO] [stdout]     |
[INFO] [stdout] 128 | struct IdU64 {
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<IdU64>`
[INFO] [stdout]     = note: required for `IdU64` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `PriceF64: TryFrom<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:154:12
[INFO] [stdout]     |
[INFO] [stdout] 154 |   let ok = PriceF64::try_from(json!({"price": "1e3"})).expect("1e3 parses");
[INFO] [stdout]     |            ^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `PriceF64`
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:146:1
[INFO] [stdout]     |
[INFO] [stdout] 146 | struct PriceF64 {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<PriceF64>`
[INFO] [stdout]     = note: required for `PriceF64` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `ChildOptionList` in the current scope
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:119:33
[INFO] [stdout]     |
[INFO] [stdout]  49 | struct ChildOptionList {
[INFO] [stdout]     | ---------------------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 119 |   let errors = ChildOptionList::validate(&json!({"items": [{}]}))
[INFO] [stdout]     |                                 ^^^^^^^^ associated function or constant not found in `ChildOptionList`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `PriceF64` in the current scope
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:158:21
[INFO] [stdout]     |
[INFO] [stdout] 146 | struct PriceF64 {
[INFO] [stdout]     | --------------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 158 |   assert!(PriceF64::validate(&json!({"price": " 5 "})).is_ok());
[INFO] [stdout]     |                     ^^^^^^^^ associated function or constant not found in `PriceF64`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `ChildOptionList: TryFrom<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 129 |   let ok = ChildOptionList::try_from(json!({"items": [null, {"name": "a"}]}))
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `ChildOptionList`
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:49:1
[INFO] [stdout]     |
[INFO] [stdout]  49 | struct ChildOptionList {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<ChildOptionList>`
[INFO] [stdout]     = note: required for `ChildOptionList` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `ChildOptionList: From<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 129 |   let ok = ChildOptionList::try_from(json!({"items": [null, {"name": "a"}]}))
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `ChildOptionList`
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:49:1
[INFO] [stdout]     |
[INFO] [stdout]  49 | struct ChildOptionList {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<ChildOptionList>`
[INFO] [stdout]     = note: required for `ChildOptionList` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `PriceF64` in the current scope
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:160:26
[INFO] [stdout]     |
[INFO] [stdout] 146 | struct PriceF64 {
[INFO] [stdout]     | --------------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 160 |   let errors = PriceF64::validate(&json!({"price": "3 4"})).unwrap_err();
[INFO] [stdout]     |                          ^^^^^^^^ associated function or constant not found in `PriceF64`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `PriceF64: From<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:154:12
[INFO] [stdout]     |
[INFO] [stdout] 154 |   let ok = PriceF64::try_from(json!({"price": "1e3"})).expect("1e3 parses");
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `PriceF64`
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:146:1
[INFO] [stdout]     |
[INFO] [stdout] 146 | struct PriceF64 {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<PriceF64>`
[INFO] [stdout]     = note: required for `PriceF64` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `ActiveBool: TryFrom<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:173:25
[INFO] [stdout]     |
[INFO] [stdout] 173 |   let from_string_one = ActiveBool::try_from(json!({"active": "1"})).expect("\"1\" is ok");
[INFO] [stdout]     |                         ^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `ActiveBool`
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:166:1
[INFO] [stdout]     |
[INFO] [stdout] 166 | struct ActiveBool {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<ActiveBool>`
[INFO] [stdout]     = note: required for `ActiveBool` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `Grid` in the current scope
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:143:22
[INFO] [stdout]     |
[INFO] [stdout]  55 | struct Grid {
[INFO] [stdout]     | ----------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 143 |   let errors = Grid::validate(&json!({"grid": [["a", 5]]}))
[INFO] [stdout]     |                      ^^^^^^^^ associated function or constant not found in `Grid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `ActiveBool: TryFrom<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:175:19
[INFO] [stdout]     |
[INFO] [stdout] 175 |   let from_zero = ActiveBool::try_from(json!({"active": 0})).expect("0 is ok");
[INFO] [stdout]     |                   ^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `ActiveBool`
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:166:1
[INFO] [stdout]     |
[INFO] [stdout] 166 | struct ActiveBool {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<ActiveBool>`
[INFO] [stdout]     = note: required for `ActiveBool` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Grid: TryFrom<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:152:12
[INFO] [stdout]     |
[INFO] [stdout] 152 |   let ok = Grid::try_from(json!({"grid": [["a"], ["b", "c"]]})).expect("valid grid");
[INFO] [stdout]     |            ^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `Grid`
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:55:1
[INFO] [stdout]     |
[INFO] [stdout]  55 | struct Grid {
[INFO] [stdout]     | ^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<Grid>`
[INFO] [stdout]     = note: required for `Grid` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `ActiveBool` in the current scope
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:178:28
[INFO] [stdout]     |
[INFO] [stdout] 166 | struct ActiveBool {
[INFO] [stdout]     | ----------------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 178 |   let errors = ActiveBool::validate(&json!({"active": "true"})).unwrap_err();
[INFO] [stdout]     |                            ^^^^^^^^ associated function or constant not found in `ActiveBool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `ActiveBool: From<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:173:25
[INFO] [stdout]     |
[INFO] [stdout] 173 |   let from_string_one = ActiveBool::try_from(json!({"active": "1"})).expect("\"1\" is ok");
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `ActiveBool`
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:166:1
[INFO] [stdout]     |
[INFO] [stdout] 166 | struct ActiveBool {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<ActiveBool>`
[INFO] [stdout]     = note: required for `ActiveBool` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Grid: From<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:152:12
[INFO] [stdout]     |
[INFO] [stdout] 152 |   let ok = Grid::try_from(json!({"grid": [["a"], ["b", "c"]]})).expect("valid grid");
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `Grid`
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:55:1
[INFO] [stdout]     |
[INFO] [stdout]  55 | struct Grid {
[INFO] [stdout]     | ^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<Grid>`
[INFO] [stdout]     = note: required for `Grid` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `zenrust-validate-derive` (test "spec_001_derive_keys") due to 24 previous errors
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `Grid` in the current scope
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:177:22
[INFO] [stdout]     |
[INFO] [stdout]  55 | struct Grid {
[INFO] [stdout]     | ----------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 177 |   let errors = Grid::validate(&json!({"grid": [["a"], []]}))
[INFO] [stdout]     |                      ^^^^^^^^ associated function or constant not found in `Grid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `Tags` in the current scope
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:192:25
[INFO] [stdout]     |
[INFO] [stdout] 184 | struct Tags {
[INFO] [stdout]     | ----------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 192 |   let not_array = Tags::validate(&json!({"tags": "x"})).unwrap_err();
[INFO] [stdout]     |                         ^^^^^^^^ associated function or constant not found in `Tags`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `Tags` in the current scope
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:195:27
[INFO] [stdout]     |
[INFO] [stdout] 184 | struct Tags {
[INFO] [stdout]     | ----------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 195 |   let bad_element = Tags::validate(&json!({"tags": ["a", 1]})).unwrap_err();
[INFO] [stdout]     |                           ^^^^^^^^ associated function or constant not found in `Tags`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `DeepGrid` in the current scope
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:187:26
[INFO] [stdout]     |
[INFO] [stdout]  61 | struct DeepGrid {
[INFO] [stdout]     | --------------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 187 |   let errors = DeepGrid::validate(&json!({"cube": [[[1, "x"]]]}))
[INFO] [stdout]     |                          ^^^^^^^^ associated function or constant not found in `DeepGrid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Tags: TryFrom<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:198:12
[INFO] [stdout]     |
[INFO] [stdout] 198 |   let ok = Tags::try_from(json!({"tags": ["a", "b"]})).expect("both elements are strings");
[INFO] [stdout]     |            ^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `Tags`
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:184:1
[INFO] [stdout]     |
[INFO] [stdout] 184 | struct Tags {
[INFO] [stdout]     | ^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<Tags>`
[INFO] [stdout]     = note: required for `Tags` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Tags: From<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:198:12
[INFO] [stdout]     |
[INFO] [stdout] 198 |   let ok = Tags::try_from(json!({"tags": ["a", "b"]})).expect("both elements are strings");
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `Tags`
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:184:1
[INFO] [stdout]     |
[INFO] [stdout] 184 | struct Tags {
[INFO] [stdout]     | ^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<Tags>`
[INFO] [stdout]     = note: required for `Tags` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `DeepGrid: TryFrom<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:191:12
[INFO] [stdout]     |
[INFO] [stdout] 191 |   let ok = DeepGrid::try_from(json!({"cube": [[["1", 2]]]})).expect("valid cube");
[INFO] [stdout]     |            ^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `DeepGrid`
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:61:1
[INFO] [stdout]     |
[INFO] [stdout]  61 | struct DeepGrid {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<DeepGrid>`
[INFO] [stdout]     = note: required for `DeepGrid` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `DeepGrid: From<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:191:12
[INFO] [stdout]     |
[INFO] [stdout] 191 |   let ok = DeepGrid::try_from(json!({"cube": [[["1", 2]]]})).expect("valid cube");
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `DeepGrid`
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:61:1
[INFO] [stdout]     |
[INFO] [stdout]  61 | struct DeepGrid {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<DeepGrid>`
[INFO] [stdout]     = note: required for `DeepGrid` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Nums: TryFrom<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 212 |   let ok = Nums::try_from(json!({"nums": ["1", 2]})).expect("both elements are valid integers");
[INFO] [stdout]     |            ^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `Nums`
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:204:1
[INFO] [stdout]     |
[INFO] [stdout] 204 | struct Nums {
[INFO] [stdout]     | ^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<Nums>`
[INFO] [stdout]     = note: required for `Nums` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Nums: From<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 212 |   let ok = Nums::try_from(json!({"nums": ["1", 2]})).expect("both elements are valid integers");
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `Nums`
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:204:1
[INFO] [stdout]     |
[INFO] [stdout] 204 | struct Nums {
[INFO] [stdout]     | ^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<Nums>`
[INFO] [stdout]     = note: required for `Nums` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `IntegerList` in the current scope
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:200:29
[INFO] [stdout]     |
[INFO] [stdout]  73 | struct IntegerList {
[INFO] [stdout]     | ------------------ associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 200 |   let errors = IntegerList::validate(&json!({"nums": [null, 2]}))
[INFO] [stdout]     |                             ^^^^^^^^ associated function or constant not found in `IntegerList`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `Codes` in the current scope
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:226:23
[INFO] [stdout]     |
[INFO] [stdout] 218 | struct Codes {
[INFO] [stdout]     | ------------ associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 226 |   let errors = Codes::validate(&json!({"codes": ["a@b.com", "bad"]})).unwrap_err();
[INFO] [stdout]     |                       ^^^^^^^^ associated function or constant not found in `Codes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `IntegerList: TryFrom<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:209:12
[INFO] [stdout]     |
[INFO] [stdout] 209 |   let ok = IntegerList::try_from(json!({"nums": ["1", 2]})).expect("a numeric string is a value");
[INFO] [stdout]     |            ^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `IntegerList`
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:73:1
[INFO] [stdout]     |
[INFO] [stdout]  73 | struct IntegerList {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<IntegerList>`
[INFO] [stdout]     = note: required for `IntegerList` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Codes: TryFrom<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:234:12
[INFO] [stdout]     |
[INFO] [stdout] 234 |   let ok = Codes::try_from(json!({"codes": [""]})).expect("an absent element skips `email`");
[INFO] [stdout]     |            ^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `Codes`
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:218:1
[INFO] [stdout]     |
[INFO] [stdout] 218 | struct Codes {
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<Codes>`
[INFO] [stdout]     = note: required for `Codes` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `IntegerList: From<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:209:12
[INFO] [stdout]     |
[INFO] [stdout] 209 |   let ok = IntegerList::try_from(json!({"nums": ["1", 2]})).expect("a numeric string is a value");
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `IntegerList`
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:73:1
[INFO] [stdout]     |
[INFO] [stdout]  73 | struct IntegerList {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<IntegerList>`
[INFO] [stdout]     = note: required for `IntegerList` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Codes: From<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:234:12
[INFO] [stdout]     |
[INFO] [stdout] 234 |   let ok = Codes::try_from(json!({"codes": [""]})).expect("an absent element skips `email`");
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `Codes`
[INFO] [stdout]    --> tests/spec_001_derive_type_rules.rs:218:1
[INFO] [stdout]     |
[INFO] [stdout] 218 | struct Codes {
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<Codes>`
[INFO] [stdout]     = note: required for `Codes` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `PriceList` in the current scope
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:217:27
[INFO] [stdout]     |
[INFO] [stdout]  79 | struct PriceList {
[INFO] [stdout]     | ---------------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 217 |   let prices = PriceList::validate(&json!({"prices": ["", 1.5]}))
[INFO] [stdout]     |                           ^^^^^^^^ associated function or constant not found in `PriceList`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `FlagList` in the current scope
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:221:25
[INFO] [stdout]     |
[INFO] [stdout]  85 | struct FlagList {
[INFO] [stdout]     | --------------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 221 |   let flags = FlagList::validate(&json!({"flags": ["", true]}))
[INFO] [stdout]     |                         ^^^^^^^^ associated function or constant not found in `FlagList`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `zenrust_validate` in this scope
[INFO] [stdout]  --> tests/spec_001_derive_type_rules.rs:9:21
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn rule_on(errors: &zenrust_validate::Errors, field: &str) -> String {
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `zenrust_validate`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `zenrust_validate`, use `cargo add zenrust_validate` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0432, E0433, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `PriceList` in the current scope
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:230:27
[INFO] [stdout]     |
[INFO] [stdout]  79 | struct PriceList {
[INFO] [stdout]     | ---------------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 230 |   let prices = PriceList::validate(&json!({"prices": [null, 1.5]})).expect_err("`null` fails both");
[INFO] [stdout]     |                           ^^^^^^^^ associated function or constant not found in `PriceList`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `FlagList` in the current scope
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:233:25
[INFO] [stdout]     |
[INFO] [stdout]  85 | struct FlagList {
[INFO] [stdout]     | --------------- associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 233 |   let flags = FlagList::validate(&json!({"flags": [null, true]})).expect_err("`null` fails both");
[INFO] [stdout]     |                         ^^^^^^^^ associated function or constant not found in `FlagList`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `zenrust-validate-derive` (test "spec_001_derive_type_rules") due to 41 previous errors
[INFO] [stdout] error[E0599]: no associated function or constant named `validate` found for struct `IntegerGrid` in the current scope
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:241:29
[INFO] [stdout]     |
[INFO] [stdout]  67 | struct IntegerGrid {
[INFO] [stdout]     | ------------------ associated function or constant `validate` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 241 |   let errors = IntegerGrid::validate(&json!({"grid": [[1, ""], [2]]}))
[INFO] [stdout]     |                             ^^^^^^^^ associated function or constant not found in `IntegerGrid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `OptionalIntegerElements: TryFrom<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:256:14
[INFO] [stdout]     |
[INFO] [stdout] 256 |     let ok = OptionalIntegerElements::try_from(input)
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `OptionalIntegerElements`
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:91:1
[INFO] [stdout]     |
[INFO] [stdout]  91 | struct OptionalIntegerElements {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<OptionalIntegerElements>`
[INFO] [stdout]     = note: required for `OptionalIntegerElements` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `OptionalIntegerElements: From<Value>` is not satisfied
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:256:14
[INFO] [stdout]     |
[INFO] [stdout] 256 |     let ok = OptionalIntegerElements::try_from(input)
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<Value>` is not implemented for `OptionalIntegerElements`
[INFO] [stdout]    --> tests/spec_001_derive_containers.rs:91:1
[INFO] [stdout]     |
[INFO] [stdout]  91 | struct OptionalIntegerElements {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Value` to implement `Into<OptionalIntegerElements>`
[INFO] [stdout]     = note: required for `OptionalIntegerElements` to implement `TryFrom<Value>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `zenrust_validate` in this scope
[INFO] [stdout]   --> tests/spec_001_derive_containers.rs:18:21
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn rule_on(errors: &zenrust_validate::Errors, field: &str) -> String {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `zenrust_validate`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `zenrust_validate`, use `cargo add zenrust_validate` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `zenrust_validate` in this scope
[INFO] [stdout]   --> tests/spec_001_derive_containers.rs:26:22
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn rules_on(errors: &zenrust_validate::Errors, field: &str) -> Vec<String> {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `zenrust_validate`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `zenrust_validate`, use `cargo add zenrust_validate` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0432, E0433, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `zenrust-validate-derive` (test "spec_001_derive_containers") due to 27 previous errors
[INFO] running `Command { std: "docker" "inspect" "ab118e2e8d18d4c86fecac6aa016895c79351013789999b7e2eb616674eddd56", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ab118e2e8d18d4c86fecac6aa016895c79351013789999b7e2eb616674eddd56", kill_on_drop: false }`
[INFO] [stdout] ab118e2e8d18d4c86fecac6aa016895c79351013789999b7e2eb616674eddd56
