[INFO] fetching crate p2panda-auth 0.7.1...
[INFO] testing p2panda-auth-0.7.1 against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate p2panda-auth 0.7.1 into /workspace/builds/worker-3-tc1/source
[INFO] started tweaking crates.io crate p2panda-auth 0.7.1
[INFO] finished tweaking crates.io crate p2panda-auth 0.7.1
[INFO] tweaked toml for crates.io crate p2panda-auth 0.7.1 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate p2panda-auth 0.7.1 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 p2panda-auth 0.7.1 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]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded cbor-core v0.10.1
[INFO] [stderr]   Downloaded p2panda-core v0.7.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 3b0391bf4d4fb4c223063af44729863dd1f4db59edf3af6ec3c734c605d1d9c0
[INFO] running `Command { std: "docker" "start" "3b0391bf4d4fb4c223063af44729863dd1f4db59edf3af6ec3c734c605d1d9c0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3b0391bf4d4fb4c223063af44729863dd1f4db59edf3af6ec3c734c605d1d9c0", 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" "3b0391bf4d4fb4c223063af44729863dd1f4db59edf3af6ec3c734c605d1d9c0" "/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" "3b0391bf4d4fb4c223063af44729863dd1f4db59edf3af6ec3c734c605d1d9c0", 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" "3b0391bf4d4fb4c223063af44729863dd1f4db59edf3af6ec3c734c605d1d9c0" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling cc v1.2.64
[INFO] [stderr]    Compiling signature v2.2.0
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling serde_bytes v0.11.19
[INFO] [stderr]    Compiling ed25519 v2.2.3
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling blake3 v1.8.5
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling ed25519-dalek v2.2.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling hex v0.4.3
[INFO] [stderr]    Compiling cbor-core v0.10.1
[INFO] [stderr]    Compiling petgraph v0.8.3
[INFO] [stderr]    Compiling p2panda-core v0.7.1
[INFO] [stderr]    Compiling p2panda-auth v0.7.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 36.25s
[INFO] running `Command { std: "docker" "inspect" "3b0391bf4d4fb4c223063af44729863dd1f4db59edf3af6ec3c734c605d1d9c0", 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" "3b0391bf4d4fb4c223063af44729863dd1f4db59edf3af6ec3c734c605d1d9c0" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling p2panda-auth v0.7.1 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0432]: unresolved import `serde`
[INFO] [stdout]  --> src/access.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |     ^^^^^ use of unresolved module or unlinked crate `serde`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `serde`, use `cargo add serde` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `serde`
[INFO] [stdout]  --> src/extension.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |     ^^^^^ use of unresolved module or unlinked crate `serde`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `serde`, use `cargo add serde` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `serde`
[INFO] [stdout]  --> src/group/action.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |     ^^^^^ use of unresolved module or unlinked crate `serde`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `serde`, use `cargo add serde` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `serde`
[INFO] [stdout]   --> src/group/crdt/state.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use serde::{Deserialize, Serialize};
[INFO] [stdout]    |     ^^^^^ use of unresolved module or unlinked crate `serde`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `serde`, use `cargo add serde` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `serde`
[INFO] [stdout]   --> src/group/crdt/mod.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use serde::{Deserialize, Serialize};
[INFO] [stdout]    |     ^^^^^ use of unresolved module or unlinked crate `serde`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `serde`, use `cargo add serde` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `serde`
[INFO] [stdout]  --> src/group/member.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |     ^^^^^ use of unresolved module or unlinked crate `serde`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `serde`, use `cargo add serde` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `serde`
[INFO] [stdout]  --> src/operation.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |     ^^^^^ use of unresolved module or unlinked crate `serde`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `serde`, use `cargo add serde` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `serde`
[INFO] [stdout]  --> src/test_utils/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |     ^^^^^ use of unresolved module or unlinked crate `serde`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `serde`, use `cargo add serde` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `serde` in this scope
[INFO] [stdout]   --> src/group/crdt/mod.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 |     serde(bound(
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: `serde` is an attribute that can be used by the derive macros `Deserialize` and `Serialize`, you might be missing a `derive` attribute
[INFO] [stdout]    |
[INFO] [stdout] 83 + #[derive(Deserialize, Serialize)]
[INFO] [stdout] 84 | pub struct GroupCrdtInnerState<ID, OP, M, C>
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `serde` in this scope
[INFO] [stdout]    --> src/group/crdt/mod.rs:350:5
[INFO] [stdout]     |
[INFO] [stdout] 350 |     serde(bound(
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: `serde` is an attribute that can be used by the derive macros `Deserialize` and `Serialize`, you might be missing a `derive` attribute
[INFO] [stdout]     |
[INFO] [stdout] 363 + #[derive(Deserialize, Serialize)]
[INFO] [stdout] 364 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/test_utils/mod.rs:154:8
[INFO] [stdout]     |
[INFO] [stdout] 154 |     y: GroupCrdtState<MemberId, MessageId, TestOperation, Conditions>,
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/test_utils/mod.rs:154:8
[INFO] [stdout]     |
[INFO] [stdout] 154 |     y: GroupCrdtState<MemberId, MessageId, TestOperation, Conditions>,
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/test_utils/mod.rs:164:9
[INFO] [stdout]     |
[INFO] [stdout] 164 |     y: &GroupCrdtState<MemberId, MessageId, TestOperation, Conditions>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/test_utils/mod.rs:164:9
[INFO] [stdout]     |
[INFO] [stdout] 164 |     y: &GroupCrdtState<MemberId, MessageId, TestOperation, Conditions>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `{integer}: OperationId` is not satisfied
[INFO] [stdout]    --> src/graph.rs:149:42
[INFO] [stdout]     |
[INFO] [stdout] 149 |         let bubbles = concurrent_bubbles(&graph);
[INFO] [stdout]     |                       ------------------ ^^^^^^ the trait `OperationId` is not implemented for `{integer}`
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `concurrent_bubbles`
[INFO] [stdout]    --> src/graph.rs:38:9
[INFO] [stdout]     |
[INFO] [stdout]  36 | pub fn concurrent_bubbles<OP>(graph: &DiGraphMap<OP, ()>) -> Vec<HashSet<OP>>
[INFO] [stdout]     |        ------------------ required by a bound in this function
[INFO] [stdout]  37 | where
[INFO] [stdout]  38 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `concurrent_bubbles`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `{integer}: OperationId` is not satisfied
[INFO] [stdout]    --> src/graph.rs:161:42
[INFO] [stdout]     |
[INFO] [stdout] 161 |         let bubbles = concurrent_bubbles(&graph);
[INFO] [stdout]     |                       ------------------ ^^^^^^ the trait `OperationId` is not implemented for `{integer}`
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `concurrent_bubbles`
[INFO] [stdout]    --> src/graph.rs:38:9
[INFO] [stdout]     |
[INFO] [stdout]  36 | pub fn concurrent_bubbles<OP>(graph: &DiGraphMap<OP, ()>) -> Vec<HashSet<OP>>
[INFO] [stdout]     |        ------------------ required by a bound in this function
[INFO] [stdout]  37 | where
[INFO] [stdout]  38 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `concurrent_bubbles`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `{integer}: OperationId` is not satisfied
[INFO] [stdout]    --> src/graph.rs:183:42
[INFO] [stdout]     |
[INFO] [stdout] 183 |         let bubbles = concurrent_bubbles(&graph);
[INFO] [stdout]     |                       ------------------ ^^^^^^ the trait `OperationId` is not implemented for `{integer}`
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `concurrent_bubbles`
[INFO] [stdout]    --> src/graph.rs:38:9
[INFO] [stdout]     |
[INFO] [stdout]  36 | pub fn concurrent_bubbles<OP>(graph: &DiGraphMap<OP, ()>) -> Vec<HashSet<OP>>
[INFO] [stdout]     |        ------------------ required by a bound in this function
[INFO] [stdout]  37 | where
[INFO] [stdout]  38 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `concurrent_bubbles`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&str: OperationId` is not satisfied
[INFO] [stdout]    --> src/graph.rs:237:53
[INFO] [stdout]     |
[INFO] [stdout] 237 |         let concurrent_bubbles = concurrent_bubbles(&graph_map);
[INFO] [stdout]     |                                  ------------------ ^^^^^^^^^^ the trait `OperationId` is not implemented for `&str`
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `concurrent_bubbles`
[INFO] [stdout]    --> src/graph.rs:38:9
[INFO] [stdout]     |
[INFO] [stdout]  36 | pub fn concurrent_bubbles<OP>(graph: &DiGraphMap<OP, ()>) -> Vec<HashSet<OP>>
[INFO] [stdout]     |        ------------------ required by a bound in this function
[INFO] [stdout]  37 | where
[INFO] [stdout]  38 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `concurrent_bubbles`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:295:50
[INFO] [stdout]     |
[INFO] [stdout] 295 |         let mut authority = AuthorityGraphs::new(dep_graph);
[INFO] [stdout]     |                             -------------------- ^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `AuthorityGraphs::<ID, OP>::new`
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `AuthorityGraphs::<ID, OP>::new`
[INFO] [stdout]  88 | {
[INFO] [stdout]  89 |     pub fn new(deps_graph: DiGraphMap<OP, ()>) -> Self {
[INFO] [stdout]     |            --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:295:29
[INFO] [stdout]     |
[INFO] [stdout] 295 |         let mut authority = AuthorityGraphs::new(dep_graph);
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `AuthorityGraphs`
[INFO] [stdout]    --> src/group/authority_graphs.rs:75:9
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     |            --------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout]  75 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `AuthorityGraphs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `add_removal` exists for struct `AuthorityGraphs<_, u32>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:299:19
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     | ---------------------------------- method `add_removal` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 299 |         authority.add_removal(group, a, b, op0);
[INFO] [stdout]     |                   ^^^^^^^^^^^ method cannot be called on `AuthorityGraphs<_, u32>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `u32: OperationId` was not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<ID, OP> AuthorityGraphs<ID, OP>
[INFO] [stdout]     |              -----------------------
[INFO] [stdout] ...
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `add_removal` exists for struct `AuthorityGraphs<_, u32>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:300:19
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     | ---------------------------------- method `add_removal` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 300 |         authority.add_removal(group, b, a, op1);
[INFO] [stdout]     |                   ^^^^^^^^^^^ method cannot be called on `AuthorityGraphs<_, u32>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `u32: OperationId` was not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<ID, OP> AuthorityGraphs<ID, OP>
[INFO] [stdout]     |              -----------------------
[INFO] [stdout] ...
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `build_graph` exists for struct `AuthorityGraphs<_, u32>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:303:19
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     | ---------------------------------- method `build_graph` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 303 |         authority.build_graph(&group);
[INFO] [stdout]     |                   ^^^^^^^^^^^ method cannot be called on `AuthorityGraphs<_, u32>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `u32: OperationId` was not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<ID, OP> AuthorityGraphs<ID, OP>
[INFO] [stdout]     |              -----------------------
[INFO] [stdout] ...
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:295:29
[INFO] [stdout]     |
[INFO] [stdout] 295 |         let mut authority = AuthorityGraphs::new(dep_graph);
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `AuthorityGraphs`
[INFO] [stdout]    --> src/group/authority_graphs.rs:74:9
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     |            --------------- required by a bound in this struct
[INFO] [stdout]  73 | where
[INFO] [stdout]  74 |     ID: Author + Ord,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `AuthorityGraphs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:295:29
[INFO] [stdout]     |
[INFO] [stdout] 295 |         let mut authority = AuthorityGraphs::new(dep_graph);
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `AuthorityGraphs::<ID, OP>::new`
[INFO] [stdout]    --> src/group/authority_graphs.rs:86:9
[INFO] [stdout]     |
[INFO] [stdout]  86 |     ID: Author + Ord,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `AuthorityGraphs::<ID, OP>::new`
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn new(deps_graph: DiGraphMap<OP, ()>) -> Self {
[INFO] [stdout]     |            --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:371:50
[INFO] [stdout]     |
[INFO] [stdout] 371 |         let mut authority = AuthorityGraphs::new(dep_graph);
[INFO] [stdout]     |                             -------------------- ^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `AuthorityGraphs::<ID, OP>::new`
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `AuthorityGraphs::<ID, OP>::new`
[INFO] [stdout]  88 | {
[INFO] [stdout]  89 |     pub fn new(deps_graph: DiGraphMap<OP, ()>) -> Self {
[INFO] [stdout]     |            --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:371:29
[INFO] [stdout]     |
[INFO] [stdout] 371 |         let mut authority = AuthorityGraphs::new(dep_graph);
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `AuthorityGraphs`
[INFO] [stdout]    --> src/group/authority_graphs.rs:75:9
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     |            --------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout]  75 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `AuthorityGraphs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `add_removal` exists for struct `AuthorityGraphs<_, u32>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:373:19
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     | ---------------------------------- method `add_removal` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 373 |         authority.add_removal(group, a, b, op1);
[INFO] [stdout]     |                   ^^^^^^^^^^^ method cannot be called on `AuthorityGraphs<_, u32>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `u32: OperationId` was not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<ID, OP> AuthorityGraphs<ID, OP>
[INFO] [stdout]     |              -----------------------
[INFO] [stdout] ...
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `add_removal` exists for struct `AuthorityGraphs<_, u32>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:374:19
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     | ---------------------------------- method `add_removal` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 374 |         authority.add_removal(group, b, c, op2);
[INFO] [stdout]     |                   ^^^^^^^^^^^ method cannot be called on `AuthorityGraphs<_, u32>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `u32: OperationId` was not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<ID, OP> AuthorityGraphs<ID, OP>
[INFO] [stdout]     |              -----------------------
[INFO] [stdout] ...
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `add_removal` exists for struct `AuthorityGraphs<_, u32>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:375:19
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     | ---------------------------------- method `add_removal` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 375 |         authority.add_removal(group, c, a, op3);
[INFO] [stdout]     |                   ^^^^^^^^^^^ method cannot be called on `AuthorityGraphs<_, u32>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `u32: OperationId` was not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<ID, OP> AuthorityGraphs<ID, OP>
[INFO] [stdout]     |              -----------------------
[INFO] [stdout] ...
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `add_removal` exists for struct `AuthorityGraphs<_, u32>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:378:19
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     | ---------------------------------- method `add_removal` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 378 |         authority.add_removal(group, c, a, op5);
[INFO] [stdout]     |                   ^^^^^^^^^^^ method cannot be called on `AuthorityGraphs<_, u32>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `u32: OperationId` was not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<ID, OP> AuthorityGraphs<ID, OP>
[INFO] [stdout]     |              -----------------------
[INFO] [stdout] ...
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `is_cycle` exists for struct `AuthorityGraphs<_, u32>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:380:28
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     | ---------------------------------- method `is_cycle` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 380 |         assert!(!authority.is_cycle(&group, &op0));
[INFO] [stdout]     |                            ^^^^^^^^ method cannot be called on `AuthorityGraphs<_, u32>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `u32: OperationId` was not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<ID, OP> AuthorityGraphs<ID, OP>
[INFO] [stdout]     |              -----------------------
[INFO] [stdout] ...
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `is_cycle` exists for struct `AuthorityGraphs<_, u32>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:381:27
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     | ---------------------------------- method `is_cycle` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 381 |         assert!(authority.is_cycle(&group, &op1));
[INFO] [stdout]     |                           ^^^^^^^^ method cannot be called on `AuthorityGraphs<_, u32>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `u32: OperationId` was not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<ID, OP> AuthorityGraphs<ID, OP>
[INFO] [stdout]     |              -----------------------
[INFO] [stdout] ...
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `is_cycle` exists for struct `AuthorityGraphs<_, u32>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:382:27
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     | ---------------------------------- method `is_cycle` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 382 |         assert!(authority.is_cycle(&group, &op2));
[INFO] [stdout]     |                           ^^^^^^^^ method cannot be called on `AuthorityGraphs<_, u32>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `u32: OperationId` was not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<ID, OP> AuthorityGraphs<ID, OP>
[INFO] [stdout]     |              -----------------------
[INFO] [stdout] ...
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `is_cycle` exists for struct `AuthorityGraphs<_, u32>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:383:27
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     | ---------------------------------- method `is_cycle` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 383 |         assert!(authority.is_cycle(&group, &op3));
[INFO] [stdout]     |                           ^^^^^^^^ method cannot be called on `AuthorityGraphs<_, u32>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `u32: OperationId` was not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<ID, OP> AuthorityGraphs<ID, OP>
[INFO] [stdout]     |              -----------------------
[INFO] [stdout] ...
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `is_cycle` exists for struct `AuthorityGraphs<_, u32>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:384:28
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     | ---------------------------------- method `is_cycle` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 384 |         assert!(!authority.is_cycle(&group, &op4));
[INFO] [stdout]     |                            ^^^^^^^^ method cannot be called on `AuthorityGraphs<_, u32>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `u32: OperationId` was not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<ID, OP> AuthorityGraphs<ID, OP>
[INFO] [stdout]     |              -----------------------
[INFO] [stdout] ...
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `is_cycle` exists for struct `AuthorityGraphs<_, u32>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:385:28
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     | ---------------------------------- method `is_cycle` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 385 |         assert!(!authority.is_cycle(&group, &op5));
[INFO] [stdout]     |                            ^^^^^^^^ method cannot be called on `AuthorityGraphs<_, u32>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `u32: OperationId` was not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<ID, OP> AuthorityGraphs<ID, OP>
[INFO] [stdout]     |              -----------------------
[INFO] [stdout] ...
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:423:50
[INFO] [stdout]     |
[INFO] [stdout] 423 |         let mut authority = AuthorityGraphs::new(dep_graph);
[INFO] [stdout]     |                             -------------------- ^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `AuthorityGraphs::<ID, OP>::new`
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `AuthorityGraphs::<ID, OP>::new`
[INFO] [stdout]  88 | {
[INFO] [stdout]  89 |     pub fn new(deps_graph: DiGraphMap<OP, ()>) -> Self {
[INFO] [stdout]     |            --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:423:29
[INFO] [stdout]     |
[INFO] [stdout] 423 |         let mut authority = AuthorityGraphs::new(dep_graph);
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `AuthorityGraphs`
[INFO] [stdout]    --> src/group/authority_graphs.rs:75:9
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     |            --------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout]  75 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `AuthorityGraphs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `add_delegation` exists for struct `AuthorityGraphs<_, u32>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:424:19
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     | ---------------------------------- method `add_delegation` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 424 |         authority.add_delegation(group, b, c, op1);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^ method cannot be called on `AuthorityGraphs<_, u32>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `u32: OperationId` was not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<ID, OP> AuthorityGraphs<ID, OP>
[INFO] [stdout]     |              -----------------------
[INFO] [stdout] ...
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `add_removal` exists for struct `AuthorityGraphs<_, u32>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:425:19
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     | ---------------------------------- method `add_removal` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 425 |         authority.add_removal(group, c, a, op2);
[INFO] [stdout]     |                   ^^^^^^^^^^^ method cannot be called on `AuthorityGraphs<_, u32>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `u32: OperationId` was not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<ID, OP> AuthorityGraphs<ID, OP>
[INFO] [stdout]     |              -----------------------
[INFO] [stdout] ...
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `add_removal` exists for struct `AuthorityGraphs<_, u32>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:426:19
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     | ---------------------------------- method `add_removal` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 426 |         authority.add_removal(group, a, b, op3);
[INFO] [stdout]     |                   ^^^^^^^^^^^ method cannot be called on `AuthorityGraphs<_, u32>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `u32: OperationId` was not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<ID, OP> AuthorityGraphs<ID, OP>
[INFO] [stdout]     |              -----------------------
[INFO] [stdout] ...
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `is_cycle` exists for struct `AuthorityGraphs<_, u32>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:428:27
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     | ---------------------------------- method `is_cycle` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 428 |         assert!(authority.is_cycle(&group, &op1));
[INFO] [stdout]     |                           ^^^^^^^^ method cannot be called on `AuthorityGraphs<_, u32>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `u32: OperationId` was not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<ID, OP> AuthorityGraphs<ID, OP>
[INFO] [stdout]     |              -----------------------
[INFO] [stdout] ...
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `is_cycle` exists for struct `AuthorityGraphs<_, u32>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:429:27
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     | ---------------------------------- method `is_cycle` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 429 |         assert!(authority.is_cycle(&group, &op2));
[INFO] [stdout]     |                           ^^^^^^^^ method cannot be called on `AuthorityGraphs<_, u32>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `u32: OperationId` was not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<ID, OP> AuthorityGraphs<ID, OP>
[INFO] [stdout]     |              -----------------------
[INFO] [stdout] ...
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `is_cycle` exists for struct `AuthorityGraphs<_, u32>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:430:27
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     | ---------------------------------- method `is_cycle` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 430 |         assert!(authority.is_cycle(&group, &op3));
[INFO] [stdout]     |                           ^^^^^^^^ method cannot be called on `AuthorityGraphs<_, u32>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `u32: OperationId` was not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<ID, OP> AuthorityGraphs<ID, OP>
[INFO] [stdout]     |              -----------------------
[INFO] [stdout] ...
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:474:50
[INFO] [stdout]     |
[INFO] [stdout] 474 |         let mut authority = AuthorityGraphs::new(dep_graph);
[INFO] [stdout]     |                             -------------------- ^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `AuthorityGraphs::<ID, OP>::new`
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `AuthorityGraphs::<ID, OP>::new`
[INFO] [stdout]  88 | {
[INFO] [stdout]  89 |     pub fn new(deps_graph: DiGraphMap<OP, ()>) -> Self {
[INFO] [stdout]     |            --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:474:29
[INFO] [stdout]     |
[INFO] [stdout] 474 |         let mut authority = AuthorityGraphs::new(dep_graph);
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `AuthorityGraphs`
[INFO] [stdout]    --> src/group/authority_graphs.rs:75:9
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     |            --------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout]  75 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `AuthorityGraphs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `add_removal` exists for struct `AuthorityGraphs<_, u32>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:476:19
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     | ---------------------------------- method `add_removal` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 476 |         authority.add_removal(group, a, b, op0);
[INFO] [stdout]     |                   ^^^^^^^^^^^ method cannot be called on `AuthorityGraphs<_, u32>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `u32: OperationId` was not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<ID, OP> AuthorityGraphs<ID, OP>
[INFO] [stdout]     |              -----------------------
[INFO] [stdout] ...
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `add_removal` exists for struct `AuthorityGraphs<_, u32>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:477:19
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     | ---------------------------------- method `add_removal` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 477 |         authority.add_removal(group, b, c, op1);
[INFO] [stdout]     |                   ^^^^^^^^^^^ method cannot be called on `AuthorityGraphs<_, u32>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `u32: OperationId` was not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<ID, OP> AuthorityGraphs<ID, OP>
[INFO] [stdout]     |              -----------------------
[INFO] [stdout] ...
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `add_delegation` exists for struct `AuthorityGraphs<_, u32>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:478:19
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     | ---------------------------------- method `add_delegation` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 478 |         authority.add_delegation(group, c, d, op2);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^ method cannot be called on `AuthorityGraphs<_, u32>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `u32: OperationId` was not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<ID, OP> AuthorityGraphs<ID, OP>
[INFO] [stdout]     |              -----------------------
[INFO] [stdout] ...
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `add_delegation` exists for struct `AuthorityGraphs<_, u32>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:479:19
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     | ---------------------------------- method `add_delegation` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 479 |         authority.add_delegation(group, d, e, op3);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^ method cannot be called on `AuthorityGraphs<_, u32>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `u32: OperationId` was not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<ID, OP> AuthorityGraphs<ID, OP>
[INFO] [stdout]     |              -----------------------
[INFO] [stdout] ...
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `add_removal` exists for struct `AuthorityGraphs<_, u32>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:480:19
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     | ---------------------------------- method `add_removal` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 480 |         authority.add_removal(group, e, a, op4);
[INFO] [stdout]     |                   ^^^^^^^^^^^ method cannot be called on `AuthorityGraphs<_, u32>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `u32: OperationId` was not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<ID, OP> AuthorityGraphs<ID, OP>
[INFO] [stdout]     |              -----------------------
[INFO] [stdout] ...
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `is_cycle` exists for struct `AuthorityGraphs<_, u32>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:483:27
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     | ---------------------------------- method `is_cycle` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 483 |         assert!(authority.is_cycle(&group, &op0));
[INFO] [stdout]     |                           ^^^^^^^^ method cannot be called on `AuthorityGraphs<_, u32>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `u32: OperationId` was not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<ID, OP> AuthorityGraphs<ID, OP>
[INFO] [stdout]     |              -----------------------
[INFO] [stdout] ...
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `is_cycle` exists for struct `AuthorityGraphs<_, u32>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:484:27
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     | ---------------------------------- method `is_cycle` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 484 |         assert!(authority.is_cycle(&group, &op1));
[INFO] [stdout]     |                           ^^^^^^^^ method cannot be called on `AuthorityGraphs<_, u32>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `u32: OperationId` was not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<ID, OP> AuthorityGraphs<ID, OP>
[INFO] [stdout]     |              -----------------------
[INFO] [stdout] ...
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `is_cycle` exists for struct `AuthorityGraphs<_, u32>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:485:27
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     | ---------------------------------- method `is_cycle` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 485 |         assert!(authority.is_cycle(&group, &op2));
[INFO] [stdout]     |                           ^^^^^^^^ method cannot be called on `AuthorityGraphs<_, u32>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `u32: OperationId` was not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<ID, OP> AuthorityGraphs<ID, OP>
[INFO] [stdout]     |              -----------------------
[INFO] [stdout] ...
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `is_cycle` exists for struct `AuthorityGraphs<_, u32>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:486:27
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     | ---------------------------------- method `is_cycle` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 486 |         assert!(authority.is_cycle(&group, &op3));
[INFO] [stdout]     |                           ^^^^^^^^ method cannot be called on `AuthorityGraphs<_, u32>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `u32: OperationId` was not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<ID, OP> AuthorityGraphs<ID, OP>
[INFO] [stdout]     |              -----------------------
[INFO] [stdout] ...
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `is_cycle` exists for struct `AuthorityGraphs<_, u32>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:487:27
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub struct AuthorityGraphs<ID, OP>
[INFO] [stdout]     | ---------------------------------- method `is_cycle` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 487 |         assert!(authority.is_cycle(&group, &op4));
[INFO] [stdout]     |                           ^^^^^^^^ method cannot be called on `AuthorityGraphs<_, u32>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `u32: OperationId` was not satisfied
[INFO] [stdout]    --> src/group/authority_graphs.rs:87:9
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl<ID, OP> AuthorityGraphs<ID, OP>
[INFO] [stdout]     |              -----------------------
[INFO] [stdout] ...
[INFO] [stdout]  87 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/crdt/mod.rs:871:17
[INFO] [stdout]     |
[INFO] [stdout] 871 |         let y = TestGroupState::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/crdt/mod.rs:871:17
[INFO] [stdout]     |
[INFO] [stdout] 871 |         let y = TestGroupState::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `new` exists for struct `GroupCrdtState<char, u32, TestOperation, ()>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/crdt/mod.rs:871:33
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     | --------------------------------------- associated function or constant `new` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 871 |         let y = TestGroupState::new();
[INFO] [stdout]     |                                 ^^^ associated function or constant cannot be called on `GroupCrdtState<char, u32, TestOperation, ()>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]    --> src/group/crdt/mod.rs:388:9
[INFO] [stdout]     |
[INFO] [stdout] 386 | impl<ID, OP, M, C> GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |                    ----------------------------
[INFO] [stdout] 387 | where
[INFO] [stdout] 388 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 389 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]             candidate #1: `IndexType`
[INFO] [stdout]             candidate #2: `Nullable`
[INFO] [stdout]             candidate #3: `crypto_common::KeyInit`
[INFO] [stdout]             candidate #4: `crypto_common::KeyIvInit`
[INFO] [stdout]             candidate #5: `curve25519_dalek::traits::VartimePrecomputedMultiscalarMul`
[INFO] [stdout]             candidate #6: `digest::VariableOutput`
[INFO] [stdout]             candidate #7: `digest::core_api::VariableOutputCore`
[INFO] [stdout]             candidate #8: `digest::digest::Digest`
[INFO] [stdout]             candidate #9: `rand::distributions::uniform::UniformSampler`
[INFO] [stdout]             candidate #10: `typenum::marker_traits::Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/crdt/mod.rs:881:30
[INFO] [stdout]     |
[INFO] [stdout] 490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]     | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 881 |         let y_i = TestGroup::process(y, &op1).unwrap();
[INFO] [stdout]     |                              ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]    --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]     |
[INFO] [stdout] 494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]     |                        ---------------------------
[INFO] [stdout] 495 | where
[INFO] [stdout] 496 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 497 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]    --> src/traits/resolver.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/crdt/mod.rs:895:31
[INFO] [stdout]     |
[INFO] [stdout] 490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]     | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 895 |         let y_ii = TestGroup::process(y_i, &op2).unwrap();
[INFO] [stdout]     |                               ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]    --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]     |
[INFO] [stdout] 494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]     |                        ---------------------------
[INFO] [stdout] 495 | where
[INFO] [stdout] 496 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 497 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]    --> src/traits/resolver.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/crdt/mod.rs:912:32
[INFO] [stdout]     |
[INFO] [stdout] 490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]     | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 912 |         let y_iii = TestGroup::process(y_ii, &op3).unwrap();
[INFO] [stdout]     |                                ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]    --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]     |
[INFO] [stdout] 494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]     |                        ---------------------------
[INFO] [stdout] 495 | where
[INFO] [stdout] 496 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 497 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]    --> src/traits/resolver.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/crdt/mod.rs:926:31
[INFO] [stdout]     |
[INFO] [stdout] 490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]     | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 926 |         let y_iv = TestGroup::process(y_iii, &op4).unwrap();
[INFO] [stdout]     |                               ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]    --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]     |
[INFO] [stdout] 494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]     |                        ---------------------------
[INFO] [stdout] 495 | where
[INFO] [stdout] 496 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 497 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]    --> src/traits/resolver.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/crdt/mod.rs:937:17
[INFO] [stdout]     |
[INFO] [stdout] 937 |         let y = TestGroupState::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/crdt/mod.rs:937:17
[INFO] [stdout]     |
[INFO] [stdout] 937 |         let y = TestGroupState::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `new` exists for struct `GroupCrdtState<char, u32, TestOperation, ()>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/crdt/mod.rs:937:33
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     | --------------------------------------- associated function or constant `new` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 937 |         let y = TestGroupState::new();
[INFO] [stdout]     |                                 ^^^ associated function or constant cannot be called on `GroupCrdtState<char, u32, TestOperation, ()>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]    --> src/group/crdt/mod.rs:388:9
[INFO] [stdout]     |
[INFO] [stdout] 386 | impl<ID, OP, M, C> GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |                    ----------------------------
[INFO] [stdout] 387 | where
[INFO] [stdout] 388 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 389 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]             candidate #1: `IndexType`
[INFO] [stdout]             candidate #2: `Nullable`
[INFO] [stdout]             candidate #3: `crypto_common::KeyInit`
[INFO] [stdout]             candidate #4: `crypto_common::KeyIvInit`
[INFO] [stdout]             candidate #5: `curve25519_dalek::traits::VartimePrecomputedMultiscalarMul`
[INFO] [stdout]             candidate #6: `digest::VariableOutput`
[INFO] [stdout]             candidate #7: `digest::core_api::VariableOutputCore`
[INFO] [stdout]             candidate #8: `digest::digest::Digest`
[INFO] [stdout]             candidate #9: `rand::distributions::uniform::UniformSampler`
[INFO] [stdout]             candidate #10: `typenum::marker_traits::Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/crdt/mod.rs:947:30
[INFO] [stdout]     |
[INFO] [stdout] 490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]     | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 947 |         let y_i = TestGroup::process(y, &op1).unwrap();
[INFO] [stdout]     |                              ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]    --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]     |
[INFO] [stdout] 494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]     |                        ---------------------------
[INFO] [stdout] 495 | where
[INFO] [stdout] 496 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 497 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]    --> src/traits/resolver.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/crdt/mod.rs:954:30
[INFO] [stdout]     |
[INFO] [stdout] 490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]     | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 954 |         let y_i = TestGroup::process(y_i, &op2).unwrap();
[INFO] [stdout]     |                              ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]    --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]     |
[INFO] [stdout] 494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]     |                        ---------------------------
[INFO] [stdout] 495 | where
[INFO] [stdout] 496 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 497 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]    --> src/traits/resolver.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/crdt/mod.rs:962:17
[INFO] [stdout]     |
[INFO] [stdout] 962 |         let y = TestGroupState::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/crdt/mod.rs:962:17
[INFO] [stdout]     |
[INFO] [stdout] 962 |         let y = TestGroupState::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `new` exists for struct `GroupCrdtState<char, u32, TestOperation, ()>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/crdt/mod.rs:962:33
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     | --------------------------------------- associated function or constant `new` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 962 |         let y = TestGroupState::new();
[INFO] [stdout]     |                                 ^^^ associated function or constant cannot be called on `GroupCrdtState<char, u32, TestOperation, ()>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]    --> src/group/crdt/mod.rs:388:9
[INFO] [stdout]     |
[INFO] [stdout] 386 | impl<ID, OP, M, C> GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |                    ----------------------------
[INFO] [stdout] 387 | where
[INFO] [stdout] 388 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 389 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]             candidate #1: `IndexType`
[INFO] [stdout]             candidate #2: `Nullable`
[INFO] [stdout]             candidate #3: `crypto_common::KeyInit`
[INFO] [stdout]             candidate #4: `crypto_common::KeyIvInit`
[INFO] [stdout]             candidate #5: `curve25519_dalek::traits::VartimePrecomputedMultiscalarMul`
[INFO] [stdout]             candidate #6: `digest::VariableOutput`
[INFO] [stdout]             candidate #7: `digest::core_api::VariableOutputCore`
[INFO] [stdout]             candidate #8: `digest::digest::Digest`
[INFO] [stdout]             candidate #9: `rand::distributions::uniform::UniformSampler`
[INFO] [stdout]             candidate #10: `typenum::marker_traits::Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/crdt/mod.rs:972:30
[INFO] [stdout]     |
[INFO] [stdout] 490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]     | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 972 |         let y_i = TestGroup::process(y, &op1).unwrap();
[INFO] [stdout]     |                              ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]    --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]     |
[INFO] [stdout] 494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]     |                        ---------------------------
[INFO] [stdout] 495 | where
[INFO] [stdout] 496 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 497 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]    --> src/traits/resolver.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/crdt/mod.rs:986:31
[INFO] [stdout]     |
[INFO] [stdout] 490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]     | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 986 |         let y_ii = TestGroup::process(y_i, &op2).unwrap();
[INFO] [stdout]     |                               ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]    --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]     |
[INFO] [stdout] 494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]     |                        ---------------------------
[INFO] [stdout] 495 | where
[INFO] [stdout] 496 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 497 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]    --> src/traits/resolver.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1003:32
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1003 |         let y_iii = TestGroup::process(y_ii, &op3).unwrap();
[INFO] [stdout]      |                                ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1017:31
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1017 |         let y_iv = TestGroup::process(y_iii, &op4).unwrap();
[INFO] [stdout]      |                               ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1025:17
[INFO] [stdout]      |
[INFO] [stdout] 1025 |         let y = TestGroupState::new();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]      |
[INFO] [stdout]  261 | impl Author for VerifyingKey {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout]  364 | where
[INFO] [stdout]  365 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1025:17
[INFO] [stdout]      |
[INFO] [stdout] 1025 |         let y = TestGroupState::new();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]      |
[INFO] [stdout]  153 | impl OperationId for Hash {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout]  366 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `new` exists for struct `GroupCrdtState<char, u32, TestOperation, ()>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1025:33
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      | --------------------------------------- associated function or constant `new` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1025 |         let y = TestGroupState::new();
[INFO] [stdout]      |                                 ^^^ associated function or constant cannot be called on `GroupCrdtState<char, u32, TestOperation, ()>` due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:388:9
[INFO] [stdout]      |
[INFO] [stdout]  386 | impl<ID, OP, M, C> GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |                    ----------------------------
[INFO] [stdout]  387 | where
[INFO] [stdout]  388 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  389 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]      = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]              candidate #1: `IndexType`
[INFO] [stdout]              candidate #2: `Nullable`
[INFO] [stdout]              candidate #3: `crypto_common::KeyInit`
[INFO] [stdout]              candidate #4: `crypto_common::KeyIvInit`
[INFO] [stdout]              candidate #5: `curve25519_dalek::traits::VartimePrecomputedMultiscalarMul`
[INFO] [stdout]              candidate #6: `digest::VariableOutput`
[INFO] [stdout]              candidate #7: `digest::core_api::VariableOutputCore`
[INFO] [stdout]              candidate #8: `digest::digest::Digest`
[INFO] [stdout]              candidate #9: `rand::distributions::uniform::UniformSampler`
[INFO] [stdout]              candidate #10: `typenum::marker_traits::Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1035:30
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1035 |         let y_i = TestGroup::process(y, &op1).unwrap();
[INFO] [stdout]      |                              ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1049:31
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1049 |         let y_ii = TestGroup::process(y_i, &op2).unwrap();
[INFO] [stdout]      |                               ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1066:32
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1066 |         let y_iii = TestGroup::process(y_ii, &op3).unwrap();
[INFO] [stdout]      |                                ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1080:31
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1080 |         let y_iv = TestGroup::process(y_iii, &op4).unwrap();
[INFO] [stdout]      |                               ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1090:30
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1090 |         let y_v = TestGroup::process(y_iv, &op5).unwrap();
[INFO] [stdout]      |                              ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1098:17
[INFO] [stdout]      |
[INFO] [stdout] 1098 |         let y = TestGroupState::new();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]      |
[INFO] [stdout]  261 | impl Author for VerifyingKey {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout]  364 | where
[INFO] [stdout]  365 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1098:17
[INFO] [stdout]      |
[INFO] [stdout] 1098 |         let y = TestGroupState::new();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]      |
[INFO] [stdout]  153 | impl OperationId for Hash {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout]  366 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `new` exists for struct `GroupCrdtState<char, u32, TestOperation, ()>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1098:33
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      | --------------------------------------- associated function or constant `new` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1098 |         let y = TestGroupState::new();
[INFO] [stdout]      |                                 ^^^ associated function or constant cannot be called on `GroupCrdtState<char, u32, TestOperation, ()>` due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:388:9
[INFO] [stdout]      |
[INFO] [stdout]  386 | impl<ID, OP, M, C> GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |                    ----------------------------
[INFO] [stdout]  387 | where
[INFO] [stdout]  388 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  389 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]      = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]              candidate #1: `IndexType`
[INFO] [stdout]              candidate #2: `Nullable`
[INFO] [stdout]              candidate #3: `crypto_common::KeyInit`
[INFO] [stdout]              candidate #4: `crypto_common::KeyIvInit`
[INFO] [stdout]              candidate #5: `curve25519_dalek::traits::VartimePrecomputedMultiscalarMul`
[INFO] [stdout]              candidate #6: `digest::VariableOutput`
[INFO] [stdout]              candidate #7: `digest::core_api::VariableOutputCore`
[INFO] [stdout]              candidate #8: `digest::digest::Digest`
[INFO] [stdout]              candidate #9: `rand::distributions::uniform::UniformSampler`
[INFO] [stdout]              candidate #10: `typenum::marker_traits::Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1108:30
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1108 |         let y_i = TestGroup::process(y, &op1).unwrap();
[INFO] [stdout]      |                              ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1121:31
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1121 |         let y_ii = TestGroup::process(y_i, &op2).unwrap();
[INFO] [stdout]      |                               ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1135:32
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1135 |         let y_iii = TestGroup::process(y_ii, &op3).unwrap();
[INFO] [stdout]      |                                ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1150:17
[INFO] [stdout]      |
[INFO] [stdout] 1150 |         let y = TestGroupState::new();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]      |
[INFO] [stdout]  261 | impl Author for VerifyingKey {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout]  364 | where
[INFO] [stdout]  365 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1150:17
[INFO] [stdout]      |
[INFO] [stdout] 1150 |         let y = TestGroupState::new();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]      |
[INFO] [stdout]  153 | impl OperationId for Hash {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout]  366 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `new` exists for struct `GroupCrdtState<char, u32, TestOperation, ()>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1150:33
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      | --------------------------------------- associated function or constant `new` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1150 |         let y = TestGroupState::new();
[INFO] [stdout]      |                                 ^^^ associated function or constant cannot be called on `GroupCrdtState<char, u32, TestOperation, ()>` due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:388:9
[INFO] [stdout]      |
[INFO] [stdout]  386 | impl<ID, OP, M, C> GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |                    ----------------------------
[INFO] [stdout]  387 | where
[INFO] [stdout]  388 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  389 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]      = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]              candidate #1: `IndexType`
[INFO] [stdout]              candidate #2: `Nullable`
[INFO] [stdout]              candidate #3: `crypto_common::KeyInit`
[INFO] [stdout]              candidate #4: `crypto_common::KeyIvInit`
[INFO] [stdout]              candidate #5: `curve25519_dalek::traits::VartimePrecomputedMultiscalarMul`
[INFO] [stdout]              candidate #6: `digest::VariableOutput`
[INFO] [stdout]              candidate #7: `digest::core_api::VariableOutputCore`
[INFO] [stdout]              candidate #8: `digest::digest::Digest`
[INFO] [stdout]              candidate #9: `rand::distributions::uniform::UniformSampler`
[INFO] [stdout]              candidate #10: `typenum::marker_traits::Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1160:30
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1160 |         let y_i = TestGroup::process(y, &op1).unwrap();
[INFO] [stdout]      |                              ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1171:31
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1171 |         let y_ii = TestGroup::process(y_i, &op2).unwrap();
[INFO] [stdout]      |                               ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1182:28
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1182 |         assert!(TestGroup::process(y_ii, &op3).is_err());
[INFO] [stdout]      |                            ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1187:17
[INFO] [stdout]      |
[INFO] [stdout] 1187 |         let y = TestGroupState::new();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]      |
[INFO] [stdout]  261 | impl Author for VerifyingKey {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout]  364 | where
[INFO] [stdout]  365 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1187:17
[INFO] [stdout]      |
[INFO] [stdout] 1187 |         let y = TestGroupState::new();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]      |
[INFO] [stdout]  153 | impl OperationId for Hash {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout]  366 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `new` exists for struct `GroupCrdtState<char, u32, TestOperation, ()>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1187:33
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      | --------------------------------------- associated function or constant `new` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1187 |         let y = TestGroupState::new();
[INFO] [stdout]      |                                 ^^^ associated function or constant cannot be called on `GroupCrdtState<char, u32, TestOperation, ()>` due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:388:9
[INFO] [stdout]      |
[INFO] [stdout]  386 | impl<ID, OP, M, C> GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |                    ----------------------------
[INFO] [stdout]  387 | where
[INFO] [stdout]  388 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  389 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]      = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]              candidate #1: `IndexType`
[INFO] [stdout]              candidate #2: `Nullable`
[INFO] [stdout]              candidate #3: `crypto_common::KeyInit`
[INFO] [stdout]              candidate #4: `crypto_common::KeyIvInit`
[INFO] [stdout]              candidate #5: `curve25519_dalek::traits::VartimePrecomputedMultiscalarMul`
[INFO] [stdout]              candidate #6: `digest::VariableOutput`
[INFO] [stdout]              candidate #7: `digest::core_api::VariableOutputCore`
[INFO] [stdout]              candidate #8: `digest::digest::Digest`
[INFO] [stdout]              candidate #9: `rand::distributions::uniform::UniformSampler`
[INFO] [stdout]              candidate #10: `typenum::marker_traits::Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1197:30
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1197 |         let y_i = TestGroup::process(y, &op1).unwrap();
[INFO] [stdout]      |                              ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1201:28
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1201 |         assert!(TestGroup::process(y_i, &op2).is_err());
[INFO] [stdout]      |                            ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1206:17
[INFO] [stdout]      |
[INFO] [stdout] 1206 |         let y = TestGroupState::new();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]      |
[INFO] [stdout]  261 | impl Author for VerifyingKey {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout]  364 | where
[INFO] [stdout]  365 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1206:17
[INFO] [stdout]      |
[INFO] [stdout] 1206 |         let y = TestGroupState::new();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]      |
[INFO] [stdout]  153 | impl OperationId for Hash {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout]  366 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `new` exists for struct `GroupCrdtState<char, u32, TestOperation, ()>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1206:33
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      | --------------------------------------- associated function or constant `new` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1206 |         let y = TestGroupState::new();
[INFO] [stdout]      |                                 ^^^ associated function or constant cannot be called on `GroupCrdtState<char, u32, TestOperation, ()>` due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:388:9
[INFO] [stdout]      |
[INFO] [stdout]  386 | impl<ID, OP, M, C> GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |                    ----------------------------
[INFO] [stdout]  387 | where
[INFO] [stdout]  388 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  389 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]      = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]              candidate #1: `IndexType`
[INFO] [stdout]              candidate #2: `Nullable`
[INFO] [stdout]              candidate #3: `crypto_common::KeyInit`
[INFO] [stdout]              candidate #4: `crypto_common::KeyIvInit`
[INFO] [stdout]              candidate #5: `curve25519_dalek::traits::VartimePrecomputedMultiscalarMul`
[INFO] [stdout]              candidate #6: `digest::VariableOutput`
[INFO] [stdout]              candidate #7: `digest::core_api::VariableOutputCore`
[INFO] [stdout]              candidate #8: `digest::digest::Digest`
[INFO] [stdout]              candidate #9: `rand::distributions::uniform::UniformSampler`
[INFO] [stdout]              candidate #10: `typenum::marker_traits::Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1216:30
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1216 |         let y_i = TestGroup::process(y, &op1).unwrap();
[INFO] [stdout]      |                              ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1227:28
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1227 |         assert!(TestGroup::process(y_i, &op2).is_err());
[INFO] [stdout]      |                            ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1232:17
[INFO] [stdout]      |
[INFO] [stdout] 1232 |         let y = TestGroupState::new();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]      |
[INFO] [stdout]  261 | impl Author for VerifyingKey {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout]  364 | where
[INFO] [stdout]  365 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1232:17
[INFO] [stdout]      |
[INFO] [stdout] 1232 |         let y = TestGroupState::new();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]      |
[INFO] [stdout]  153 | impl OperationId for Hash {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout]  366 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `new` exists for struct `GroupCrdtState<char, u32, TestOperation, ()>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1232:33
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      | --------------------------------------- associated function or constant `new` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1232 |         let y = TestGroupState::new();
[INFO] [stdout]      |                                 ^^^ associated function or constant cannot be called on `GroupCrdtState<char, u32, TestOperation, ()>` due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:388:9
[INFO] [stdout]      |
[INFO] [stdout]  386 | impl<ID, OP, M, C> GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |                    ----------------------------
[INFO] [stdout]  387 | where
[INFO] [stdout]  388 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  389 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]      = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]              candidate #1: `IndexType`
[INFO] [stdout]              candidate #2: `Nullable`
[INFO] [stdout]              candidate #3: `crypto_common::KeyInit`
[INFO] [stdout]              candidate #4: `crypto_common::KeyIvInit`
[INFO] [stdout]              candidate #5: `curve25519_dalek::traits::VartimePrecomputedMultiscalarMul`
[INFO] [stdout]              candidate #6: `digest::VariableOutput`
[INFO] [stdout]              candidate #7: `digest::core_api::VariableOutputCore`
[INFO] [stdout]              candidate #8: `digest::digest::Digest`
[INFO] [stdout]              candidate #9: `rand::distributions::uniform::UniformSampler`
[INFO] [stdout]              candidate #10: `typenum::marker_traits::Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1242:30
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1242 |         let y_i = TestGroup::process(y, &op1).unwrap();
[INFO] [stdout]      |                              ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1253:28
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1253 |         assert!(TestGroup::process(y_i, &op2).is_err());
[INFO] [stdout]      |                            ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1258:17
[INFO] [stdout]      |
[INFO] [stdout] 1258 |         let y = TestGroupState::new();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]      |
[INFO] [stdout]  261 | impl Author for VerifyingKey {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout]  364 | where
[INFO] [stdout]  365 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1258:17
[INFO] [stdout]      |
[INFO] [stdout] 1258 |         let y = TestGroupState::new();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]      |
[INFO] [stdout]  153 | impl OperationId for Hash {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout]  366 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `new` exists for struct `GroupCrdtState<char, u32, TestOperation, ()>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1258:33
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      | --------------------------------------- associated function or constant `new` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1258 |         let y = TestGroupState::new();
[INFO] [stdout]      |                                 ^^^ associated function or constant cannot be called on `GroupCrdtState<char, u32, TestOperation, ()>` due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:388:9
[INFO] [stdout]      |
[INFO] [stdout]  386 | impl<ID, OP, M, C> GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |                    ----------------------------
[INFO] [stdout]  387 | where
[INFO] [stdout]  388 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  389 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]      = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]              candidate #1: `IndexType`
[INFO] [stdout]              candidate #2: `Nullable`
[INFO] [stdout]              candidate #3: `crypto_common::KeyInit`
[INFO] [stdout]              candidate #4: `crypto_common::KeyIvInit`
[INFO] [stdout]              candidate #5: `curve25519_dalek::traits::VartimePrecomputedMultiscalarMul`
[INFO] [stdout]              candidate #6: `digest::VariableOutput`
[INFO] [stdout]              candidate #7: `digest::core_api::VariableOutputCore`
[INFO] [stdout]              candidate #8: `digest::digest::Digest`
[INFO] [stdout]              candidate #9: `rand::distributions::uniform::UniformSampler`
[INFO] [stdout]              candidate #10: `typenum::marker_traits::Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1268:30
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1268 |         let y_i = TestGroup::process(y, &op1).unwrap();
[INFO] [stdout]      |                              ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1279:28
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1279 |         assert!(TestGroup::process(y_i, &op2).is_err());
[INFO] [stdout]      |                            ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1284:17
[INFO] [stdout]      |
[INFO] [stdout] 1284 |         let y = TestGroupState::new();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]      |
[INFO] [stdout]  261 | impl Author for VerifyingKey {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout]  364 | where
[INFO] [stdout]  365 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1284:17
[INFO] [stdout]      |
[INFO] [stdout] 1284 |         let y = TestGroupState::new();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]      |
[INFO] [stdout]  153 | impl OperationId for Hash {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout]  366 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `new` exists for struct `GroupCrdtState<char, u32, TestOperation, ()>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1284:33
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      | --------------------------------------- associated function or constant `new` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1284 |         let y = TestGroupState::new();
[INFO] [stdout]      |                                 ^^^ associated function or constant cannot be called on `GroupCrdtState<char, u32, TestOperation, ()>` due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:388:9
[INFO] [stdout]      |
[INFO] [stdout]  386 | impl<ID, OP, M, C> GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |                    ----------------------------
[INFO] [stdout]  387 | where
[INFO] [stdout]  388 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  389 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]      = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]              candidate #1: `IndexType`
[INFO] [stdout]              candidate #2: `Nullable`
[INFO] [stdout]              candidate #3: `crypto_common::KeyInit`
[INFO] [stdout]              candidate #4: `crypto_common::KeyIvInit`
[INFO] [stdout]              candidate #5: `curve25519_dalek::traits::VartimePrecomputedMultiscalarMul`
[INFO] [stdout]              candidate #6: `digest::VariableOutput`
[INFO] [stdout]              candidate #7: `digest::core_api::VariableOutputCore`
[INFO] [stdout]              candidate #8: `digest::digest::Digest`
[INFO] [stdout]              candidate #9: `rand::distributions::uniform::UniformSampler`
[INFO] [stdout]              candidate #10: `typenum::marker_traits::Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1294:30
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1294 |         let y_i = TestGroup::process(y, &op1).unwrap();
[INFO] [stdout]      |                              ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1305:28
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1305 |         assert!(TestGroup::process(y_i, &op2).is_err());
[INFO] [stdout]      |                            ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1310:17
[INFO] [stdout]      |
[INFO] [stdout] 1310 |         let y = TestGroupState::new();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]      |
[INFO] [stdout]  261 | impl Author for VerifyingKey {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout]  364 | where
[INFO] [stdout]  365 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1310:17
[INFO] [stdout]      |
[INFO] [stdout] 1310 |         let y = TestGroupState::new();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]      |
[INFO] [stdout]  153 | impl OperationId for Hash {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout]  366 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `new` exists for struct `GroupCrdtState<char, u32, TestOperation, ()>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1310:33
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      | --------------------------------------- associated function or constant `new` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1310 |         let y = TestGroupState::new();
[INFO] [stdout]      |                                 ^^^ associated function or constant cannot be called on `GroupCrdtState<char, u32, TestOperation, ()>` due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:388:9
[INFO] [stdout]      |
[INFO] [stdout]  386 | impl<ID, OP, M, C> GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |                    ----------------------------
[INFO] [stdout]  387 | where
[INFO] [stdout]  388 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  389 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]      = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]              candidate #1: `IndexType`
[INFO] [stdout]              candidate #2: `Nullable`
[INFO] [stdout]              candidate #3: `crypto_common::KeyInit`
[INFO] [stdout]              candidate #4: `crypto_common::KeyIvInit`
[INFO] [stdout]              candidate #5: `curve25519_dalek::traits::VartimePrecomputedMultiscalarMul`
[INFO] [stdout]              candidate #6: `digest::VariableOutput`
[INFO] [stdout]              candidate #7: `digest::core_api::VariableOutputCore`
[INFO] [stdout]              candidate #8: `digest::digest::Digest`
[INFO] [stdout]              candidate #9: `rand::distributions::uniform::UniformSampler`
[INFO] [stdout]              candidate #10: `typenum::marker_traits::Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1319:30
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1319 |         let y_i = TestGroup::process(y, &op1).unwrap();
[INFO] [stdout]      |                              ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1324:28
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1324 |         assert!(TestGroup::process(y_i, &op2).is_err());
[INFO] [stdout]      |                            ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1329:17
[INFO] [stdout]      |
[INFO] [stdout] 1329 |         let y = TestGroupState::new();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]      |
[INFO] [stdout]  261 | impl Author for VerifyingKey {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout]  364 | where
[INFO] [stdout]  365 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1329:17
[INFO] [stdout]      |
[INFO] [stdout] 1329 |         let y = TestGroupState::new();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]      |
[INFO] [stdout]  153 | impl OperationId for Hash {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout]  366 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `new` exists for struct `GroupCrdtState<char, u32, TestOperation, ()>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1329:33
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      | --------------------------------------- associated function or constant `new` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1329 |         let y = TestGroupState::new();
[INFO] [stdout]      |                                 ^^^ associated function or constant cannot be called on `GroupCrdtState<char, u32, TestOperation, ()>` due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:388:9
[INFO] [stdout]      |
[INFO] [stdout]  386 | impl<ID, OP, M, C> GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |                    ----------------------------
[INFO] [stdout]  387 | where
[INFO] [stdout]  388 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  389 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]      = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]              candidate #1: `IndexType`
[INFO] [stdout]              candidate #2: `Nullable`
[INFO] [stdout]              candidate #3: `crypto_common::KeyInit`
[INFO] [stdout]              candidate #4: `crypto_common::KeyIvInit`
[INFO] [stdout]              candidate #5: `curve25519_dalek::traits::VartimePrecomputedMultiscalarMul`
[INFO] [stdout]              candidate #6: `digest::VariableOutput`
[INFO] [stdout]              candidate #7: `digest::core_api::VariableOutputCore`
[INFO] [stdout]              candidate #8: `digest::digest::Digest`
[INFO] [stdout]              candidate #9: `rand::distributions::uniform::UniformSampler`
[INFO] [stdout]              candidate #10: `typenum::marker_traits::Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1339:30
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1339 |         let y_i = TestGroup::process(y, &op1).unwrap();
[INFO] [stdout]      |                              ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1349:31
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1349 |         let y_ii = TestGroup::process(y_i, &op2).unwrap();
[INFO] [stdout]      |                               ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1359:32
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1359 |         let y_iii = TestGroup::process(y_ii, &op3).unwrap();
[INFO] [stdout]      |                                ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1369:31
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1369 |         let y_iv = TestGroup::process(y_iii, &op4).unwrap();
[INFO] [stdout]      |                               ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1380:30
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1380 |         let y_v = TestGroup::process(y_iv, &op5).unwrap();
[INFO] [stdout]      |                              ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1391:31
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1391 |         let y_vi = TestGroup::process(y_v, &op6).unwrap();
[INFO] [stdout]      |                               ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1402:32
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1402 |         let y_vii = TestGroup::process(y_vi, &op7).unwrap();
[INFO] [stdout]      |                                ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1418:33
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1418 |         let y_viii = TestGroup::process(y_vii, &op8).unwrap();
[INFO] [stdout]      |                                 ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1430:17
[INFO] [stdout]      |
[INFO] [stdout] 1430 |         let y = TestGroupState::new();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]      |
[INFO] [stdout]  261 | impl Author for VerifyingKey {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout]  364 | where
[INFO] [stdout]  365 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1430:17
[INFO] [stdout]      |
[INFO] [stdout] 1430 |         let y = TestGroupState::new();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]      |
[INFO] [stdout]  153 | impl OperationId for Hash {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout]  366 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `new` exists for struct `GroupCrdtState<char, u32, TestOperation, ()>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1430:33
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      | --------------------------------------- associated function or constant `new` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1430 |         let y = TestGroupState::new();
[INFO] [stdout]      |                                 ^^^ associated function or constant cannot be called on `GroupCrdtState<char, u32, TestOperation, ()>` due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:388:9
[INFO] [stdout]      |
[INFO] [stdout]  386 | impl<ID, OP, M, C> GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |                    ----------------------------
[INFO] [stdout]  387 | where
[INFO] [stdout]  388 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  389 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]      = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]              candidate #1: `IndexType`
[INFO] [stdout]              candidate #2: `Nullable`
[INFO] [stdout]              candidate #3: `crypto_common::KeyInit`
[INFO] [stdout]              candidate #4: `crypto_common::KeyIvInit`
[INFO] [stdout]              candidate #5: `curve25519_dalek::traits::VartimePrecomputedMultiscalarMul`
[INFO] [stdout]              candidate #6: `digest::VariableOutput`
[INFO] [stdout]              candidate #7: `digest::core_api::VariableOutputCore`
[INFO] [stdout]              candidate #8: `digest::digest::Digest`
[INFO] [stdout]              candidate #9: `rand::distributions::uniform::UniformSampler`
[INFO] [stdout]              candidate #10: `typenum::marker_traits::Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1440:30
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1440 |         let y_i = TestGroup::process(y, &op1).unwrap();
[INFO] [stdout]      |                              ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1450:31
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1450 |         let y_ii = TestGroup::process(y_i, &op2).unwrap();
[INFO] [stdout]      |                               ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1460:32
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1460 |         let y_iii = TestGroup::process(y_ii, &op3).unwrap();
[INFO] [stdout]      |                                ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1471:31
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1471 |         let y_iv = TestGroup::process(y_iii, &op4).unwrap();
[INFO] [stdout]      |                               ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1482:30
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1482 |         let y_v = TestGroup::process(y_iv, &op5).unwrap();
[INFO] [stdout]      |                              ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1493:31
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1493 |         let y_vi = TestGroup::process(y_v, &op6).unwrap();
[INFO] [stdout]      |                               ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1504:32
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1504 |         let y_vii = TestGroup::process(y_vi, &op7).unwrap();
[INFO] [stdout]      |                                ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1530:41
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1530 |         let y_after_remove = TestGroup::process(y_vii.clone(), &op8_remove_g2).unwrap();
[INFO] [stdout]      |                                         ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1536:39
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1536 |         let y_after_both = TestGroup::process(y_after_remove, &op9_promote_claire).unwrap();
[INFO] [stdout]      |                                       ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1555:17
[INFO] [stdout]      |
[INFO] [stdout] 1555 |         let y = TestGroupState::new();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]      |
[INFO] [stdout]  261 | impl Author for VerifyingKey {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout]  364 | where
[INFO] [stdout]  365 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1555:17
[INFO] [stdout]      |
[INFO] [stdout] 1555 |         let y = TestGroupState::new();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]      |
[INFO] [stdout]  153 | impl OperationId for Hash {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout]  366 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `new` exists for struct `GroupCrdtState<char, u32, TestOperation, ()>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1555:33
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      | --------------------------------------- associated function or constant `new` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1555 |         let y = TestGroupState::new();
[INFO] [stdout]      |                                 ^^^ associated function or constant cannot be called on `GroupCrdtState<char, u32, TestOperation, ()>` due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:388:9
[INFO] [stdout]      |
[INFO] [stdout]  386 | impl<ID, OP, M, C> GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |                    ----------------------------
[INFO] [stdout]  387 | where
[INFO] [stdout]  388 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  389 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]      = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]              candidate #1: `IndexType`
[INFO] [stdout]              candidate #2: `Nullable`
[INFO] [stdout]              candidate #3: `crypto_common::KeyInit`
[INFO] [stdout]              candidate #4: `crypto_common::KeyIvInit`
[INFO] [stdout]              candidate #5: `curve25519_dalek::traits::VartimePrecomputedMultiscalarMul`
[INFO] [stdout]              candidate #6: `digest::VariableOutput`
[INFO] [stdout]              candidate #7: `digest::core_api::VariableOutputCore`
[INFO] [stdout]              candidate #8: `digest::digest::Digest`
[INFO] [stdout]              candidate #9: `rand::distributions::uniform::UniformSampler`
[INFO] [stdout]              candidate #10: `typenum::marker_traits::Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1565:30
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1565 |         let y_i = TestGroup::process(y, &op1).unwrap();
[INFO] [stdout]      |                              ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1576:31
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1576 |         let y_ii = TestGroup::process(y_i, &op2).unwrap();
[INFO] [stdout]      |                               ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1592:34
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1592 |         let y_iii_a = TestGroup::process(y_ii.clone(), &op3).unwrap();
[INFO] [stdout]      |                                  ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1593:33
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1593 |         let y_iv_a = TestGroup::process(y_iii_a, &op4).unwrap();
[INFO] [stdout]      |                                 ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1596:34
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1596 |         let y_iii_b = TestGroup::process(y_ii.clone(), &op4).unwrap();
[INFO] [stdout]      |                                  ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1597:33
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1597 |         let y_iv_b = TestGroup::process(y_iii_b, &op3).unwrap();
[INFO] [stdout]      |                                 ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1608:18
[INFO] [stdout]      |
[INFO] [stdout] 1608 |         let y0 = TestGroupState::new();
[INFO] [stdout]      |                  ^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]      |
[INFO] [stdout]  261 | impl Author for VerifyingKey {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout]  364 | where
[INFO] [stdout]  365 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1608:18
[INFO] [stdout]      |
[INFO] [stdout] 1608 |         let y0 = TestGroupState::new();
[INFO] [stdout]      |                  ^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]      |
[INFO] [stdout]  153 | impl OperationId for Hash {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout]  366 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `new` exists for struct `GroupCrdtState<char, u32, TestOperation, ()>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1608:34
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      | --------------------------------------- associated function or constant `new` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1608 |         let y0 = TestGroupState::new();
[INFO] [stdout]      |                                  ^^^ associated function or constant cannot be called on `GroupCrdtState<char, u32, TestOperation, ()>` due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:388:9
[INFO] [stdout]      |
[INFO] [stdout]  386 | impl<ID, OP, M, C> GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |                    ----------------------------
[INFO] [stdout]  387 | where
[INFO] [stdout]  388 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  389 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]      = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]              candidate #1: `IndexType`
[INFO] [stdout]              candidate #2: `Nullable`
[INFO] [stdout]              candidate #3: `crypto_common::KeyInit`
[INFO] [stdout]              candidate #4: `crypto_common::KeyIvInit`
[INFO] [stdout]              candidate #5: `curve25519_dalek::traits::VartimePrecomputedMultiscalarMul`
[INFO] [stdout]              candidate #6: `digest::VariableOutput`
[INFO] [stdout]              candidate #7: `digest::core_api::VariableOutputCore`
[INFO] [stdout]              candidate #8: `digest::digest::Digest`
[INFO] [stdout]              candidate #9: `rand::distributions::uniform::UniformSampler`
[INFO] [stdout]              candidate #10: `typenum::marker_traits::Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1618:29
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1618 |         let y1 = TestGroup::process(y0, &op1).unwrap();
[INFO] [stdout]      |                             ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1641:33
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1641 |         let result = TestGroup::process(y1.clone(), &op3);
[INFO] [stdout]      |                                 ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1651:33
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1651 |         let y1_alt = TestGroup::process(y1, &op2).unwrap();
[INFO] [stdout]      |                                 ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1652:33
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1652 |         let result = TestGroup::process(y1_alt.clone(), &op3);
[INFO] [stdout]      |                                 ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1672:17
[INFO] [stdout]      |
[INFO] [stdout] 1672 |         let y = TestGroupState::new();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]      |
[INFO] [stdout]  261 | impl Author for VerifyingKey {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout]  364 | where
[INFO] [stdout]  365 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1672:17
[INFO] [stdout]      |
[INFO] [stdout] 1672 |         let y = TestGroupState::new();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]      |
[INFO] [stdout]  153 | impl OperationId for Hash {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout]  366 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `new` exists for struct `GroupCrdtState<char, u32, TestOperation, ()>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1672:33
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      | --------------------------------------- associated function or constant `new` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1672 |         let y = TestGroupState::new();
[INFO] [stdout]      |                                 ^^^ associated function or constant cannot be called on `GroupCrdtState<char, u32, TestOperation, ()>` due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:388:9
[INFO] [stdout]      |
[INFO] [stdout]  386 | impl<ID, OP, M, C> GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |                    ----------------------------
[INFO] [stdout]  387 | where
[INFO] [stdout]  388 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  389 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]      = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]              candidate #1: `IndexType`
[INFO] [stdout]              candidate #2: `Nullable`
[INFO] [stdout]              candidate #3: `crypto_common::KeyInit`
[INFO] [stdout]              candidate #4: `crypto_common::KeyIvInit`
[INFO] [stdout]              candidate #5: `curve25519_dalek::traits::VartimePrecomputedMultiscalarMul`
[INFO] [stdout]              candidate #6: `digest::VariableOutput`
[INFO] [stdout]              candidate #7: `digest::core_api::VariableOutputCore`
[INFO] [stdout]              candidate #8: `digest::digest::Digest`
[INFO] [stdout]              candidate #9: `rand::distributions::uniform::UniformSampler`
[INFO] [stdout]              candidate #10: `typenum::marker_traits::Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1682:30
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1682 |         let y_i = TestGroup::process(y, &op1).unwrap();
[INFO] [stdout]      |                              ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1692:31
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1692 |         let y_ii = TestGroup::process(y_i, &op2).unwrap();
[INFO] [stdout]      |                               ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1715:32
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1715 |         let y_iii = TestGroup::process(y_ii.clone(), &op3a).unwrap();
[INFO] [stdout]      |                                ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1716:31
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1716 |         let y_iv = TestGroup::process(y_iii, &op3b).unwrap();
[INFO] [stdout]      |                               ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1730:36
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1730 |         let y_iii_alt = TestGroup::process(y_ii.clone(), &op3b).unwrap();
[INFO] [stdout]      |                                    ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1731:35
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1731 |         let y_iv_alt = TestGroup::process(y_iii_alt, &op3a).unwrap();
[INFO] [stdout]      |                                   ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1747:17
[INFO] [stdout]      |
[INFO] [stdout] 1747 |         let y = TestGroupState::new();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]      |
[INFO] [stdout]  261 | impl Author for VerifyingKey {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout]  364 | where
[INFO] [stdout]  365 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1747:17
[INFO] [stdout]      |
[INFO] [stdout] 1747 |         let y = TestGroupState::new();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]      |
[INFO] [stdout]  153 | impl OperationId for Hash {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout]  366 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `new` exists for struct `GroupCrdtState<char, u32, TestOperation, ()>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1747:33
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      | --------------------------------------- associated function or constant `new` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1747 |         let y = TestGroupState::new();
[INFO] [stdout]      |                                 ^^^ associated function or constant cannot be called on `GroupCrdtState<char, u32, TestOperation, ()>` due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:388:9
[INFO] [stdout]      |
[INFO] [stdout]  386 | impl<ID, OP, M, C> GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |                    ----------------------------
[INFO] [stdout]  387 | where
[INFO] [stdout]  388 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  389 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]      = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]              candidate #1: `IndexType`
[INFO] [stdout]              candidate #2: `Nullable`
[INFO] [stdout]              candidate #3: `crypto_common::KeyInit`
[INFO] [stdout]              candidate #4: `crypto_common::KeyIvInit`
[INFO] [stdout]              candidate #5: `curve25519_dalek::traits::VartimePrecomputedMultiscalarMul`
[INFO] [stdout]              candidate #6: `digest::VariableOutput`
[INFO] [stdout]              candidate #7: `digest::core_api::VariableOutputCore`
[INFO] [stdout]              candidate #8: `digest::digest::Digest`
[INFO] [stdout]              candidate #9: `rand::distributions::uniform::UniformSampler`
[INFO] [stdout]              candidate #10: `typenum::marker_traits::Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1757:30
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1757 |         let y_i = TestGroup::process(y, &op1).unwrap();
[INFO] [stdout]      |                              ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1770:31
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1770 |         let y_ii = TestGroup::process(y_i, &op2).unwrap();
[INFO] [stdout]      |                               ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1783:33
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1783 |         let result = TestGroup::process(y_ii, &op3);
[INFO] [stdout]      |                                 ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1792:17
[INFO] [stdout]      |
[INFO] [stdout] 1792 |         let y = TestGroupState::new();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]      |
[INFO] [stdout]  261 | impl Author for VerifyingKey {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout]  364 | where
[INFO] [stdout]  365 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1792:17
[INFO] [stdout]      |
[INFO] [stdout] 1792 |         let y = TestGroupState::new();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]      |
[INFO] [stdout]  153 | impl OperationId for Hash {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout]  366 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `new` exists for struct `GroupCrdtState<char, u32, TestOperation, ()>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1792:33
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      | --------------------------------------- associated function or constant `new` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1792 |         let y = TestGroupState::new();
[INFO] [stdout]      |                                 ^^^ associated function or constant cannot be called on `GroupCrdtState<char, u32, TestOperation, ()>` due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:388:9
[INFO] [stdout]      |
[INFO] [stdout]  386 | impl<ID, OP, M, C> GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |                    ----------------------------
[INFO] [stdout]  387 | where
[INFO] [stdout]  388 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  389 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]      = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]              candidate #1: `IndexType`
[INFO] [stdout]              candidate #2: `Nullable`
[INFO] [stdout]              candidate #3: `crypto_common::KeyInit`
[INFO] [stdout]              candidate #4: `crypto_common::KeyIvInit`
[INFO] [stdout]              candidate #5: `curve25519_dalek::traits::VartimePrecomputedMultiscalarMul`
[INFO] [stdout]              candidate #6: `digest::VariableOutput`
[INFO] [stdout]              candidate #7: `digest::core_api::VariableOutputCore`
[INFO] [stdout]              candidate #8: `digest::digest::Digest`
[INFO] [stdout]              candidate #9: `rand::distributions::uniform::UniformSampler`
[INFO] [stdout]              candidate #10: `typenum::marker_traits::Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1800:30
[INFO] [stdout]      |
[INFO] [stdout]  490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]      | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1800 |         let y_i = TestGroup::process(y, &op1).unwrap();
[INFO] [stdout]      |                              ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]      |
[INFO] [stdout]  494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]      |                        ---------------------------
[INFO] [stdout]  495 | where
[INFO] [stdout]  496 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  497 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]      = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]     --> src/traits/resolver.rs:8:1
[INFO] [stdout]      |
[INFO] [stdout]    8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1808:21
[INFO] [stdout]      |
[INFO] [stdout] 1808 |         let y_i_de: TestGroupState = decode_cbor(&bytes[..]).unwrap();
[INFO] [stdout]      |                     ^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]      |
[INFO] [stdout]  261 | impl Author for VerifyingKey {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout]  364 | where
[INFO] [stdout]  365 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1808:21
[INFO] [stdout]      |
[INFO] [stdout] 1808 |         let y_i_de: TestGroupState = decode_cbor(&bytes[..]).unwrap();
[INFO] [stdout]      |                     ^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]      |
[INFO] [stdout]  153 | impl OperationId for Hash {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout]  366 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `members` exists for struct `GroupCrdtState<char, u32, TestOperation, ()>`, but its trait bounds were not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1811:30
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      | --------------------------------------- method `members` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 1811 |         let members = y_i_de.members(G1);
[INFO] [stdout]      |                              ^^^^^^^ method cannot be called on `GroupCrdtState<char, u32, TestOperation, ()>` due to unsatisfied trait bounds
[INFO] [stdout]      |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]     --> src/group/crdt/mod.rs:388:9
[INFO] [stdout]      |
[INFO] [stdout]  386 | impl<ID, OP, M, C> GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |                    ----------------------------
[INFO] [stdout]  387 | where
[INFO] [stdout]  388 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]  389 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1808:38
[INFO] [stdout]      |
[INFO] [stdout] 1808 |         let y_i_de: TestGroupState = decode_cbor(&bytes[..]).unwrap();
[INFO] [stdout]      |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]      |
[INFO] [stdout]  261 | impl Author for VerifyingKey {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout]  364 | where
[INFO] [stdout]  365 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1808:38
[INFO] [stdout]      |
[INFO] [stdout] 1808 |         let y_i_de: TestGroupState = decode_cbor(&bytes[..]).unwrap();
[INFO] [stdout]      |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]      |
[INFO] [stdout]  153 | impl OperationId for Hash {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout]  366 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `GroupCrdtState<char, u32, TestOperation, ()>: serde::Deserialize<'de>` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1808:38
[INFO] [stdout]      |
[INFO] [stdout] 1808 |         let y_i_de: TestGroupState = decode_cbor(&bytes[..]).unwrap();
[INFO] [stdout]      |                                      ^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `for<'a> serde_core::de::Deserialize<'a>` is not implemented for `GroupCrdtState<char, u32, TestOperation, ()>`
[INFO] [stdout]     --> src/group/crdt/mod.rs:363:1
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `GroupCrdtState<char, u32, TestOperation, ()>` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `serde_core::de::Deserialize<'de>`:
[INFO] [stdout]                &'a Path
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a serde_bytes::bytearray::ByteArray<N>
[INFO] [stdout]                &'a serde_bytes::bytes::Bytes
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]              and 165 others
[INFO] [stdout] note: required by a bound in `decode_cbor`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/cbor.rs:22:23
[INFO] [stdout]      |
[INFO] [stdout]   22 | pub fn decode_cbor<T: for<'a> Deserialize<'a>, R: Read>(reader: R) -> Result<T, DecodeError> {
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `decode_cbor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1808:38
[INFO] [stdout]      |
[INFO] [stdout] 1808 |         let y_i_de: TestGroupState = decode_cbor(&bytes[..]).unwrap();
[INFO] [stdout]      |                                      ^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]      |
[INFO] [stdout]  261 | impl Author for VerifyingKey {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout]  364 | where
[INFO] [stdout]  365 |     ID: Author,
[INFO] [stdout]      |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]     --> src/group/crdt/mod.rs:1808:38
[INFO] [stdout]      |
[INFO] [stdout] 1808 |         let y_i_de: TestGroupState = decode_cbor(&bytes[..]).unwrap();
[INFO] [stdout]      |                                      ^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]      |
[INFO] [stdout]  153 | impl OperationId for Hash {}
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]     --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]      |
[INFO] [stdout]  363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]      |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout]  366 |     OP: OperationId + Ord,
[INFO] [stdout]      |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:404:17
[INFO] [stdout]     |
[INFO] [stdout] 404 |         let y = TestGroupState::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:404:17
[INFO] [stdout]     |
[INFO] [stdout] 404 |         let y = TestGroupState::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `new` exists for struct `GroupCrdtState<char, u32, TestOperation, ()>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:404:33
[INFO] [stdout]     |
[INFO] [stdout] 404 |         let y = TestGroupState::new();
[INFO] [stdout]     |                                 ^^^ associated function or constant cannot be called on `GroupCrdtState<char, u32, TestOperation, ()>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/group/crdt/mod.rs:363:1
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     | --------------------------------------- associated function or constant `new` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]    --> src/group/crdt/mod.rs:388:9
[INFO] [stdout]     |
[INFO] [stdout] 386 | impl<ID, OP, M, C> GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |                    ----------------------------
[INFO] [stdout] 387 | where
[INFO] [stdout] 388 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 389 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]             candidate #1: `IndexType`
[INFO] [stdout]             candidate #2: `Nullable`
[INFO] [stdout]             candidate #3: `crypto_common::KeyInit`
[INFO] [stdout]             candidate #4: `crypto_common::KeyIvInit`
[INFO] [stdout]             candidate #5: `curve25519_dalek::traits::VartimePrecomputedMultiscalarMul`
[INFO] [stdout]             candidate #6: `digest::VariableOutput`
[INFO] [stdout]             candidate #7: `digest::core_api::VariableOutputCore`
[INFO] [stdout]             candidate #8: `digest::digest::Digest`
[INFO] [stdout]             candidate #9: `rand::distributions::uniform::UniformSampler`
[INFO] [stdout]             candidate #10: `typenum::marker_traits::Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:426:24
[INFO] [stdout]     |
[INFO] [stdout] 426 |         let y_i = sync(y, &[op0, op1, op2]);
[INFO] [stdout]     |                        ^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:426:24
[INFO] [stdout]     |
[INFO] [stdout] 426 |         let y_i = sync(y, &[op0, op1, op2]);
[INFO] [stdout]     |                        ^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:426:19
[INFO] [stdout]     |
[INFO] [stdout] 426 |         let y_i = sync(y, &[op0, op1, op2]);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:426:19
[INFO] [stdout]     |
[INFO] [stdout] 426 |         let y_i = sync(y, &[op0, op1, op2]);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:427:24
[INFO] [stdout]     |
[INFO] [stdout] 427 |         assert_members(&y_i, G1, &expected);
[INFO] [stdout]     |                        ^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:427:24
[INFO] [stdout]     |
[INFO] [stdout] 427 |         assert_members(&y_i, G1, &expected);
[INFO] [stdout]     |                        ^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:447:17
[INFO] [stdout]     |
[INFO] [stdout] 447 |         let y = TestGroupState::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:447:17
[INFO] [stdout]     |
[INFO] [stdout] 447 |         let y = TestGroupState::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `new` exists for struct `GroupCrdtState<char, u32, TestOperation, ()>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:447:33
[INFO] [stdout]     |
[INFO] [stdout] 447 |         let y = TestGroupState::new();
[INFO] [stdout]     |                                 ^^^ associated function or constant cannot be called on `GroupCrdtState<char, u32, TestOperation, ()>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/group/crdt/mod.rs:363:1
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     | --------------------------------------- associated function or constant `new` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]    --> src/group/crdt/mod.rs:388:9
[INFO] [stdout]     |
[INFO] [stdout] 386 | impl<ID, OP, M, C> GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |                    ----------------------------
[INFO] [stdout] 387 | where
[INFO] [stdout] 388 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 389 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]             candidate #1: `IndexType`
[INFO] [stdout]             candidate #2: `Nullable`
[INFO] [stdout]             candidate #3: `crypto_common::KeyInit`
[INFO] [stdout]             candidate #4: `crypto_common::KeyIvInit`
[INFO] [stdout]             candidate #5: `curve25519_dalek::traits::VartimePrecomputedMultiscalarMul`
[INFO] [stdout]             candidate #6: `digest::VariableOutput`
[INFO] [stdout]             candidate #7: `digest::core_api::VariableOutputCore`
[INFO] [stdout]             candidate #8: `digest::digest::Digest`
[INFO] [stdout]             candidate #9: `rand::distributions::uniform::UniformSampler`
[INFO] [stdout]             candidate #10: `typenum::marker_traits::Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:479:24
[INFO] [stdout]     |
[INFO] [stdout] 479 |         let y_i = sync(y, &[op0, op1, op2, op3]);
[INFO] [stdout]     |                        ^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:479:24
[INFO] [stdout]     |
[INFO] [stdout] 479 |         let y_i = sync(y, &[op0, op1, op2, op3]);
[INFO] [stdout]     |                        ^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:479:19
[INFO] [stdout]     |
[INFO] [stdout] 479 |         let y_i = sync(y, &[op0, op1, op2, op3]);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:479:19
[INFO] [stdout]     |
[INFO] [stdout] 479 |         let y_i = sync(y, &[op0, op1, op2, op3]);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:480:24
[INFO] [stdout]     |
[INFO] [stdout] 480 |         assert_members(&y_i, G1, &expected);
[INFO] [stdout]     |                        ^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:480:24
[INFO] [stdout]     |
[INFO] [stdout] 480 |         assert_members(&y_i, G1, &expected);
[INFO] [stdout]     |                        ^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:503:17
[INFO] [stdout]     |
[INFO] [stdout] 503 |         let y = TestGroupState::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:503:17
[INFO] [stdout]     |
[INFO] [stdout] 503 |         let y = TestGroupState::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `new` exists for struct `GroupCrdtState<char, u32, TestOperation, ()>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:503:33
[INFO] [stdout]     |
[INFO] [stdout] 503 |         let y = TestGroupState::new();
[INFO] [stdout]     |                                 ^^^ associated function or constant cannot be called on `GroupCrdtState<char, u32, TestOperation, ()>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/group/crdt/mod.rs:363:1
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     | --------------------------------------- associated function or constant `new` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]    --> src/group/crdt/mod.rs:388:9
[INFO] [stdout]     |
[INFO] [stdout] 386 | impl<ID, OP, M, C> GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |                    ----------------------------
[INFO] [stdout] 387 | where
[INFO] [stdout] 388 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 389 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]             candidate #1: `IndexType`
[INFO] [stdout]             candidate #2: `Nullable`
[INFO] [stdout]             candidate #3: `crypto_common::KeyInit`
[INFO] [stdout]             candidate #4: `crypto_common::KeyIvInit`
[INFO] [stdout]             candidate #5: `curve25519_dalek::traits::VartimePrecomputedMultiscalarMul`
[INFO] [stdout]             candidate #6: `digest::VariableOutput`
[INFO] [stdout]             candidate #7: `digest::core_api::VariableOutputCore`
[INFO] [stdout]             candidate #8: `digest::digest::Digest`
[INFO] [stdout]             candidate #9: `rand::distributions::uniform::UniformSampler`
[INFO] [stdout]             candidate #10: `typenum::marker_traits::Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:539:24
[INFO] [stdout]     |
[INFO] [stdout] 539 |         let y_i = sync(y, &[op0, op1, op2, op3, op4]);
[INFO] [stdout]     |                        ^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:539:24
[INFO] [stdout]     |
[INFO] [stdout] 539 |         let y_i = sync(y, &[op0, op1, op2, op3, op4]);
[INFO] [stdout]     |                        ^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:539:19
[INFO] [stdout]     |
[INFO] [stdout] 539 |         let y_i = sync(y, &[op0, op1, op2, op3, op4]);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:539:19
[INFO] [stdout]     |
[INFO] [stdout] 539 |         let y_i = sync(y, &[op0, op1, op2, op3, op4]);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:540:24
[INFO] [stdout]     |
[INFO] [stdout] 540 |         assert_members(&y_i, G1, &expected);
[INFO] [stdout]     |                        ^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:540:24
[INFO] [stdout]     |
[INFO] [stdout] 540 |         assert_members(&y_i, G1, &expected);
[INFO] [stdout]     |                        ^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:557:17
[INFO] [stdout]     |
[INFO] [stdout] 557 |         let y = TestGroupState::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:557:17
[INFO] [stdout]     |
[INFO] [stdout] 557 |         let y = TestGroupState::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `new` exists for struct `GroupCrdtState<char, u32, TestOperation, ()>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:557:33
[INFO] [stdout]     |
[INFO] [stdout] 557 |         let y = TestGroupState::new();
[INFO] [stdout]     |                                 ^^^ associated function or constant cannot be called on `GroupCrdtState<char, u32, TestOperation, ()>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/group/crdt/mod.rs:363:1
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     | --------------------------------------- associated function or constant `new` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]    --> src/group/crdt/mod.rs:388:9
[INFO] [stdout]     |
[INFO] [stdout] 386 | impl<ID, OP, M, C> GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |                    ----------------------------
[INFO] [stdout] 387 | where
[INFO] [stdout] 388 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 389 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]             candidate #1: `IndexType`
[INFO] [stdout]             candidate #2: `Nullable`
[INFO] [stdout]             candidate #3: `crypto_common::KeyInit`
[INFO] [stdout]             candidate #4: `crypto_common::KeyIvInit`
[INFO] [stdout]             candidate #5: `curve25519_dalek::traits::VartimePrecomputedMultiscalarMul`
[INFO] [stdout]             candidate #6: `digest::VariableOutput`
[INFO] [stdout]             candidate #7: `digest::core_api::VariableOutputCore`
[INFO] [stdout]             candidate #8: `digest::digest::Digest`
[INFO] [stdout]             candidate #9: `rand::distributions::uniform::UniformSampler`
[INFO] [stdout]             candidate #10: `typenum::marker_traits::Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:591:28
[INFO] [stdout]     |
[INFO] [stdout] 591 |         let y_final = sync(y, &[op0, op1, op2]);
[INFO] [stdout]     |                            ^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:591:28
[INFO] [stdout]     |
[INFO] [stdout] 591 |         let y_final = sync(y, &[op0, op1, op2]);
[INFO] [stdout]     |                            ^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:591:23
[INFO] [stdout]     |
[INFO] [stdout] 591 |         let y_final = sync(y, &[op0, op1, op2]);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:591:23
[INFO] [stdout]     |
[INFO] [stdout] 591 |         let y_final = sync(y, &[op0, op1, op2]);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:592:24
[INFO] [stdout]     |
[INFO] [stdout] 592 |         assert_members(&y_final, G1, &expected);
[INFO] [stdout]     |                        ^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:592:24
[INFO] [stdout]     |
[INFO] [stdout] 592 |         assert_members(&y_final, G1, &expected);
[INFO] [stdout]     |                        ^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:607:17
[INFO] [stdout]     |
[INFO] [stdout] 607 |         let y = TestGroupState::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:607:17
[INFO] [stdout]     |
[INFO] [stdout] 607 |         let y = TestGroupState::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `new` exists for struct `GroupCrdtState<char, u32, TestOperation, ()>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:607:33
[INFO] [stdout]     |
[INFO] [stdout] 607 |         let y = TestGroupState::new();
[INFO] [stdout]     |                                 ^^^ associated function or constant cannot be called on `GroupCrdtState<char, u32, TestOperation, ()>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/group/crdt/mod.rs:363:1
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     | --------------------------------------- associated function or constant `new` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]    --> src/group/crdt/mod.rs:388:9
[INFO] [stdout]     |
[INFO] [stdout] 386 | impl<ID, OP, M, C> GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |                    ----------------------------
[INFO] [stdout] 387 | where
[INFO] [stdout] 388 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 389 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]             candidate #1: `IndexType`
[INFO] [stdout]             candidate #2: `Nullable`
[INFO] [stdout]             candidate #3: `crypto_common::KeyInit`
[INFO] [stdout]             candidate #4: `crypto_common::KeyIvInit`
[INFO] [stdout]             candidate #5: `curve25519_dalek::traits::VartimePrecomputedMultiscalarMul`
[INFO] [stdout]             candidate #6: `digest::VariableOutput`
[INFO] [stdout]             candidate #7: `digest::core_api::VariableOutputCore`
[INFO] [stdout]             candidate #8: `digest::digest::Digest`
[INFO] [stdout]             candidate #9: `rand::distributions::uniform::UniformSampler`
[INFO] [stdout]             candidate #10: `typenum::marker_traits::Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:648:24
[INFO] [stdout]     |
[INFO] [stdout] 648 |         let y_i = sync(y, &[op0, op1, op2]);
[INFO] [stdout]     |                        ^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:648:24
[INFO] [stdout]     |
[INFO] [stdout] 648 |         let y_i = sync(y, &[op0, op1, op2]);
[INFO] [stdout]     |                        ^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:648:19
[INFO] [stdout]     |
[INFO] [stdout] 648 |         let y_i = sync(y, &[op0, op1, op2]);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:648:19
[INFO] [stdout]     |
[INFO] [stdout] 648 |         let y_i = sync(y, &[op0, op1, op2]);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:649:24
[INFO] [stdout]     |
[INFO] [stdout] 649 |         assert_members(&y_i, G1, &expected);
[INFO] [stdout]     |                        ^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:649:24
[INFO] [stdout]     |
[INFO] [stdout] 649 |         assert_members(&y_i, G1, &expected);
[INFO] [stdout]     |                        ^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:668:17
[INFO] [stdout]     |
[INFO] [stdout] 668 |         let y = TestGroupState::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:668:17
[INFO] [stdout]     |
[INFO] [stdout] 668 |         let y = TestGroupState::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `new` exists for struct `GroupCrdtState<char, u32, TestOperation, ()>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:668:33
[INFO] [stdout]     |
[INFO] [stdout] 668 |         let y = TestGroupState::new();
[INFO] [stdout]     |                                 ^^^ associated function or constant cannot be called on `GroupCrdtState<char, u32, TestOperation, ()>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/group/crdt/mod.rs:363:1
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     | --------------------------------------- associated function or constant `new` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]    --> src/group/crdt/mod.rs:388:9
[INFO] [stdout]     |
[INFO] [stdout] 386 | impl<ID, OP, M, C> GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |                    ----------------------------
[INFO] [stdout] 387 | where
[INFO] [stdout] 388 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 389 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]             candidate #1: `IndexType`
[INFO] [stdout]             candidate #2: `Nullable`
[INFO] [stdout]             candidate #3: `crypto_common::KeyInit`
[INFO] [stdout]             candidate #4: `crypto_common::KeyIvInit`
[INFO] [stdout]             candidate #5: `curve25519_dalek::traits::VartimePrecomputedMultiscalarMul`
[INFO] [stdout]             candidate #6: `digest::VariableOutput`
[INFO] [stdout]             candidate #7: `digest::core_api::VariableOutputCore`
[INFO] [stdout]             candidate #8: `digest::digest::Digest`
[INFO] [stdout]             candidate #9: `rand::distributions::uniform::UniformSampler`
[INFO] [stdout]             candidate #10: `typenum::marker_traits::Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:707:24
[INFO] [stdout]     |
[INFO] [stdout] 707 |         let y_i = sync(y, &[op0, op1, op2, op3]);
[INFO] [stdout]     |                        ^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:707:24
[INFO] [stdout]     |
[INFO] [stdout] 707 |         let y_i = sync(y, &[op0, op1, op2, op3]);
[INFO] [stdout]     |                        ^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:707:19
[INFO] [stdout]     |
[INFO] [stdout] 707 |         let y_i = sync(y, &[op0, op1, op2, op3]);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:707:19
[INFO] [stdout]     |
[INFO] [stdout] 707 |         let y_i = sync(y, &[op0, op1, op2, op3]);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:708:24
[INFO] [stdout]     |
[INFO] [stdout] 708 |         assert_members(&y_i, G1, &expected_members);
[INFO] [stdout]     |                        ^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:708:24
[INFO] [stdout]     |
[INFO] [stdout] 708 |         assert_members(&y_i, G1, &expected_members);
[INFO] [stdout]     |                        ^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:730:17
[INFO] [stdout]     |
[INFO] [stdout] 730 |         let y = TestGroupState::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:730:17
[INFO] [stdout]     |
[INFO] [stdout] 730 |         let y = TestGroupState::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `new` exists for struct `GroupCrdtState<char, u32, TestOperation, ()>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:730:33
[INFO] [stdout]     |
[INFO] [stdout] 730 |         let y = TestGroupState::new();
[INFO] [stdout]     |                                 ^^^ associated function or constant cannot be called on `GroupCrdtState<char, u32, TestOperation, ()>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/group/crdt/mod.rs:363:1
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     | --------------------------------------- associated function or constant `new` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]    --> src/group/crdt/mod.rs:388:9
[INFO] [stdout]     |
[INFO] [stdout] 386 | impl<ID, OP, M, C> GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |                    ----------------------------
[INFO] [stdout] 387 | where
[INFO] [stdout] 388 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 389 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]             candidate #1: `IndexType`
[INFO] [stdout]             candidate #2: `Nullable`
[INFO] [stdout]             candidate #3: `crypto_common::KeyInit`
[INFO] [stdout]             candidate #4: `crypto_common::KeyIvInit`
[INFO] [stdout]             candidate #5: `curve25519_dalek::traits::VartimePrecomputedMultiscalarMul`
[INFO] [stdout]             candidate #6: `digest::VariableOutput`
[INFO] [stdout]             candidate #7: `digest::core_api::VariableOutputCore`
[INFO] [stdout]             candidate #8: `digest::digest::Digest`
[INFO] [stdout]             candidate #9: `rand::distributions::uniform::UniformSampler`
[INFO] [stdout]             candidate #10: `typenum::marker_traits::Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:785:28
[INFO] [stdout]     |
[INFO] [stdout] 785 |         let y_final = sync(y, &[op0, op1, op2, op3, op4]);
[INFO] [stdout]     |                            ^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:785:28
[INFO] [stdout]     |
[INFO] [stdout] 785 |         let y_final = sync(y, &[op0, op1, op2, op3, op4]);
[INFO] [stdout]     |                            ^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:785:23
[INFO] [stdout]     |
[INFO] [stdout] 785 |         let y_final = sync(y, &[op0, op1, op2, op3, op4]);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:785:23
[INFO] [stdout]     |
[INFO] [stdout] 785 |         let y_final = sync(y, &[op0, op1, op2, op3, op4]);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:786:24
[INFO] [stdout]     |
[INFO] [stdout] 786 |         assert_members(&y_final, G1, &expected);
[INFO] [stdout]     |                        ^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:786:24
[INFO] [stdout]     |
[INFO] [stdout] 786 |         assert_members(&y_final, G1, &expected);
[INFO] [stdout]     |                        ^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:814:17
[INFO] [stdout]     |
[INFO] [stdout] 814 |         let y = TestGroupState::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:814:17
[INFO] [stdout]     |
[INFO] [stdout] 814 |         let y = TestGroupState::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `new` exists for struct `GroupCrdtState<char, u32, TestOperation, ()>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:814:33
[INFO] [stdout]     |
[INFO] [stdout] 814 |         let y = TestGroupState::new();
[INFO] [stdout]     |                                 ^^^ associated function or constant cannot be called on `GroupCrdtState<char, u32, TestOperation, ()>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/group/crdt/mod.rs:363:1
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     | --------------------------------------- associated function or constant `new` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]    --> src/group/crdt/mod.rs:388:9
[INFO] [stdout]     |
[INFO] [stdout] 386 | impl<ID, OP, M, C> GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |                    ----------------------------
[INFO] [stdout] 387 | where
[INFO] [stdout] 388 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 389 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]             candidate #1: `IndexType`
[INFO] [stdout]             candidate #2: `Nullable`
[INFO] [stdout]             candidate #3: `crypto_common::KeyInit`
[INFO] [stdout]             candidate #4: `crypto_common::KeyIvInit`
[INFO] [stdout]             candidate #5: `curve25519_dalek::traits::VartimePrecomputedMultiscalarMul`
[INFO] [stdout]             candidate #6: `digest::VariableOutput`
[INFO] [stdout]             candidate #7: `digest::core_api::VariableOutputCore`
[INFO] [stdout]             candidate #8: `digest::digest::Digest`
[INFO] [stdout]             candidate #9: `rand::distributions::uniform::UniformSampler`
[INFO] [stdout]             candidate #10: `typenum::marker_traits::Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:885:24
[INFO] [stdout]     |
[INFO] [stdout] 885 |         let y_i = sync(y, &[op0, op1, op2, op3, op4, op5, op6, op7]);
[INFO] [stdout]     |                        ^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:885:24
[INFO] [stdout]     |
[INFO] [stdout] 885 |         let y_i = sync(y, &[op0, op1, op2, op3, op4, op5, op6, op7]);
[INFO] [stdout]     |                        ^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:885:19
[INFO] [stdout]     |
[INFO] [stdout] 885 |         let y_i = sync(y, &[op0, op1, op2, op3, op4, op5, op6, op7]);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:885:19
[INFO] [stdout]     |
[INFO] [stdout] 885 |         let y_i = sync(y, &[op0, op1, op2, op3, op4, op5, op6, op7]);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:886:24
[INFO] [stdout]     |
[INFO] [stdout] 886 |         assert_members(&y_i, G0, &expected_members);
[INFO] [stdout]     |                        ^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:886:24
[INFO] [stdout]     |
[INFO] [stdout] 886 |         assert_members(&y_i, G0, &expected_members);
[INFO] [stdout]     |                        ^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:905:17
[INFO] [stdout]     |
[INFO] [stdout] 905 |         let y = TestGroupState::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:905:17
[INFO] [stdout]     |
[INFO] [stdout] 905 |         let y = TestGroupState::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `new` exists for struct `GroupCrdtState<char, u32, TestOperation, ()>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:905:33
[INFO] [stdout]     |
[INFO] [stdout] 905 |         let y = TestGroupState::new();
[INFO] [stdout]     |                                 ^^^ associated function or constant cannot be called on `GroupCrdtState<char, u32, TestOperation, ()>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/group/crdt/mod.rs:363:1
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     | --------------------------------------- associated function or constant `new` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]    --> src/group/crdt/mod.rs:388:9
[INFO] [stdout]     |
[INFO] [stdout] 386 | impl<ID, OP, M, C> GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |                    ----------------------------
[INFO] [stdout] 387 | where
[INFO] [stdout] 388 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 389 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]             candidate #1: `IndexType`
[INFO] [stdout]             candidate #2: `Nullable`
[INFO] [stdout]             candidate #3: `crypto_common::KeyInit`
[INFO] [stdout]             candidate #4: `crypto_common::KeyIvInit`
[INFO] [stdout]             candidate #5: `curve25519_dalek::traits::VartimePrecomputedMultiscalarMul`
[INFO] [stdout]             candidate #6: `digest::VariableOutput`
[INFO] [stdout]             candidate #7: `digest::core_api::VariableOutputCore`
[INFO] [stdout]             candidate #8: `digest::digest::Digest`
[INFO] [stdout]             candidate #9: `rand::distributions::uniform::UniformSampler`
[INFO] [stdout]             candidate #10: `typenum::marker_traits::Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:938:28
[INFO] [stdout]     |
[INFO] [stdout] 938 |         let y_final = sync(y, &[op0, op1, op2, op3]);
[INFO] [stdout]     |                            ^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:938:28
[INFO] [stdout]     |
[INFO] [stdout] 938 |         let y_final = sync(y, &[op0, op1, op2, op3]);
[INFO] [stdout]     |                            ^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:938:23
[INFO] [stdout]     |
[INFO] [stdout] 938 |         let y_final = sync(y, &[op0, op1, op2, op3]);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:938:23
[INFO] [stdout]     |
[INFO] [stdout] 938 |         let y_final = sync(y, &[op0, op1, op2, op3]);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:939:24
[INFO] [stdout]     |
[INFO] [stdout] 939 |         assert_members(&y_final, G1, &expected);
[INFO] [stdout]     |                        ^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:939:24
[INFO] [stdout]     |
[INFO] [stdout] 939 |         assert_members(&y_final, G1, &expected);
[INFO] [stdout]     |                        ^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:944:17
[INFO] [stdout]     |
[INFO] [stdout] 944 |         let y = TestGroupState::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:944:17
[INFO] [stdout]     |
[INFO] [stdout] 944 |         let y = TestGroupState::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `new` exists for struct `GroupCrdtState<char, u32, TestOperation, ()>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:944:33
[INFO] [stdout]     |
[INFO] [stdout] 944 |         let y = TestGroupState::new();
[INFO] [stdout]     |                                 ^^^ associated function or constant cannot be called on `GroupCrdtState<char, u32, TestOperation, ()>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/group/crdt/mod.rs:363:1
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     | --------------------------------------- associated function or constant `new` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]    --> src/group/crdt/mod.rs:388:9
[INFO] [stdout]     |
[INFO] [stdout] 386 | impl<ID, OP, M, C> GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |                    ----------------------------
[INFO] [stdout] 387 | where
[INFO] [stdout] 388 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 389 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]             candidate #1: `IndexType`
[INFO] [stdout]             candidate #2: `Nullable`
[INFO] [stdout]             candidate #3: `crypto_common::KeyInit`
[INFO] [stdout]             candidate #4: `crypto_common::KeyIvInit`
[INFO] [stdout]             candidate #5: `curve25519_dalek::traits::VartimePrecomputedMultiscalarMul`
[INFO] [stdout]             candidate #6: `digest::VariableOutput`
[INFO] [stdout]             candidate #7: `digest::core_api::VariableOutputCore`
[INFO] [stdout]             candidate #8: `digest::digest::Digest`
[INFO] [stdout]             candidate #9: `rand::distributions::uniform::UniformSampler`
[INFO] [stdout]             candidate #10: `typenum::marker_traits::Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:993:24
[INFO] [stdout]     |
[INFO] [stdout] 993 |         let y_i = sync(y, &[op0, op1, op2, op3]);
[INFO] [stdout]     |                        ^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:993:24
[INFO] [stdout]     |
[INFO] [stdout] 993 |         let y_i = sync(y, &[op0, op1, op2, op3]);
[INFO] [stdout]     |                        ^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:993:19
[INFO] [stdout]     |
[INFO] [stdout] 993 |         let y_i = sync(y, &[op0, op1, op2, op3]);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:993:19
[INFO] [stdout]     |
[INFO] [stdout] 993 |         let y_i = sync(y, &[op0, op1, op2, op3]);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:994:24
[INFO] [stdout]     |
[INFO] [stdout] 994 |         assert_members(&y_i, G1, &expected);
[INFO] [stdout]     |                        ^^^^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/group/resolver.rs:994:24
[INFO] [stdout]     |
[INFO] [stdout] 994 |         assert_members(&y_i, G1, &expected);
[INFO] [stdout]     |                        ^^^^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/test_utils/mod.rs:157:5
[INFO] [stdout]     |
[INFO] [stdout] 157 | /     ops.iter().fold(y, |g, op| {
[INFO] [stdout] 158 | |         GroupCrdt::<MemberId, MessageId, TestOperation, Conditions, TestResolver>::process(g, op)
[INFO] [stdout] 159 | |             .unwrap()
[INFO] [stdout] 160 | |     })
[INFO] [stdout]     | |______^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/test_utils/mod.rs:157:5
[INFO] [stdout]     |
[INFO] [stdout] 157 | /     ops.iter().fold(y, |g, op| {
[INFO] [stdout] 158 | |         GroupCrdt::<MemberId, MessageId, TestOperation, Conditions, TestResolver>::process(g, op)
[INFO] [stdout] 159 | |             .unwrap()
[INFO] [stdout] 160 | |     })
[INFO] [stdout]     | |______^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `char: Author` is not satisfied
[INFO] [stdout]    --> src/test_utils/mod.rs:157:25
[INFO] [stdout]     |
[INFO] [stdout] 157 |     ops.iter().fold(y, |g, op| {
[INFO] [stdout]     |                         ^ the trait `Author` is not implemented for `char`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Author` is implemented for `VerifyingKey`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/identity.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl Author for VerifyingKey {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] 364 | where
[INFO] [stdout] 365 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: OperationId` is not satisfied
[INFO] [stdout]    --> src/test_utils/mod.rs:157:25
[INFO] [stdout]     |
[INFO] [stdout] 157 |     ops.iter().fold(y, |g, op| {
[INFO] [stdout]     |                         ^ the trait `OperationId` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `OperationId` is implemented for `p2panda_core::Hash`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/p2panda-core-0.7.1/src/hash.rs:153:1
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl OperationId for Hash {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `GroupCrdtState`
[INFO] [stdout]    --> src/group/crdt/mod.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |            -------------- required by a bound in this struct
[INFO] [stdout] ...
[INFO] [stdout] 366 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ required by this bound in `GroupCrdtState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the associated function or constant `process` exists for struct `GroupCrdt<char, u32, TestOperation, (), StrongRemove<char, u32, TestOperation, ()>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/test_utils/mod.rs:158:84
[INFO] [stdout]     |
[INFO] [stdout] 158 |         GroupCrdt::<MemberId, MessageId, TestOperation, Conditions, TestResolver>::process(g, op)
[INFO] [stdout]     |                                                                                    ^^^^^^^ associated function or constant cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/group/crdt/mod.rs:490:1
[INFO] [stdout]     |
[INFO] [stdout] 490 | pub struct GroupCrdt<ID, OP, M, C, RS> {
[INFO] [stdout]     | -------------------------------------- associated function or constant `process` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]    --> src/group/crdt/mod.rs:496:9
[INFO] [stdout]     |
[INFO] [stdout] 494 | impl<ID, OP, M, C, RS> GroupCrdt<ID, OP, M, C, RS>
[INFO] [stdout]     |                        ---------------------------
[INFO] [stdout] 495 | where
[INFO] [stdout] 496 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 497 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Resolver` defines an item `process`, perhaps you need to implement it
[INFO] [stdout]    --> src/traits/resolver.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub trait Resolver<ID, OP, M, C>
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `members` exists for reference `&GroupCrdtState<char, u32, TestOperation, ()>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/test_utils/mod.rs:168:24
[INFO] [stdout]     |
[INFO] [stdout] 168 |     let mut actual = y.members(group_id);
[INFO] [stdout]     |                        ^^^^^^^ method cannot be called on `&GroupCrdtState<char, u32, TestOperation, ()>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `char: Author`
[INFO] [stdout]       `u32: OperationId`
[INFO] [stdout]    --> src/group/crdt/mod.rs:388:9
[INFO] [stdout]     |
[INFO] [stdout] 386 | impl<ID, OP, M, C> GroupCrdtState<ID, OP, M, C>
[INFO] [stdout]     |                    ----------------------------
[INFO] [stdout] 387 | where
[INFO] [stdout] 388 |     ID: Author,
[INFO] [stdout]     |         ^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 389 |     OP: OperationId + Ord,
[INFO] [stdout]     |         ^^^^^^^^^^^ unsatisfied trait bound introduced here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0432, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `p2panda-auth` (lib test) due to 288 previous errors
[INFO] running `Command { std: "docker" "inspect" "3b0391bf4d4fb4c223063af44729863dd1f4db59edf3af6ec3c734c605d1d9c0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3b0391bf4d4fb4c223063af44729863dd1f4db59edf3af6ec3c734c605d1d9c0", kill_on_drop: false }`
[INFO] [stdout] 3b0391bf4d4fb4c223063af44729863dd1f4db59edf3af6ec3c734c605d1d9c0
