[INFO] fetching crate yggdrasil-rt 0.1.3...
[INFO] testing yggdrasil-rt-0.1.3 against try#db823df02fd0c2cf67b43025ac3fef3f2d743245 for pr-150681
[INFO] extracting crate yggdrasil-rt 0.1.3 into /workspace/builds/worker-1-tc2/source
[INFO] started tweaking crates.io crate yggdrasil-rt 0.1.3
[INFO] finished tweaking crates.io crate yggdrasil-rt 0.1.3
[INFO] tweaked toml for crates.io crate yggdrasil-rt 0.1.3 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate yggdrasil-rt 0.1.3 on toolchain db823df02fd0c2cf67b43025ac3fef3f2d743245
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]      Locking 12 packages to latest compatible versions
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e3c87efff72780db344a8a800e401ace87d2dac93f932292b90073b1182a58d1
[INFO] running `Command { std: "docker" "start" "-a" "e3c87efff72780db344a8a800e401ace87d2dac93f932292b90073b1182a58d1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e3c87efff72780db344a8a800e401ace87d2dac93f932292b90073b1182a58d1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e3c87efff72780db344a8a800e401ace87d2dac93f932292b90073b1182a58d1", kill_on_drop: false }`
[INFO] [stdout] e3c87efff72780db344a8a800e401ace87d2dac93f932292b90073b1182a58d1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] adc1c358435f2a31ee4883d59f2bce60f1b9cf03b7ca205eaed07a07d25ca9b1
[INFO] running `Command { std: "docker" "start" "-a" "adc1c358435f2a31ee4883d59f2bce60f1b9cf03b7ca205eaed07a07d25ca9b1", kill_on_drop: false }`
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]    Compiling daachorse v1.0.0
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling yggdrasil-rt v0.1.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/iterators/token_pair/mod.rs:45:75
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub unsafe fn new<R: YggdrasilRule>(queue: Rc<Vec<TokenQueue<R>>>, input: &str, start: usize) -> TokenPair<R> {
[INFO] [stdout]    |                                                                           ^^^^                   ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                                                           |
[INFO] [stdout]    |                                                                           the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub unsafe fn new<R: YggdrasilRule>(queue: Rc<Vec<TokenQueue<R>>>, input: &str, start: usize) -> TokenPair<'_, R> {
[INFO] [stdout]    |                                                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:230:28
[INFO] [stdout]     |
[INFO] [stdout] 230 |     pub fn find_first_rule(&self, rule: R) -> Option<TokenPair<R>> {
[INFO] [stdout]     |                            ^^^^^                     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 230 |     pub fn find_first_rule(&self, rule: R) -> Option<TokenPair<'_, R>> {
[INFO] [stdout]     |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:240:27
[INFO] [stdout]     |
[INFO] [stdout] 240 |     pub fn find_first_tag(&self, tag: &str) -> Option<TokenPair<R>> {
[INFO] [stdout]     |                           ^^^^^                       ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 240 |     pub fn find_first_tag(&self, tag: &str) -> Option<TokenPair<'_, R>> {
[INFO] [stdout]     |                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/iterators/token_stream/mod.rs:22:75
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub unsafe fn new<R: YggdrasilRule>(queue: Rc<Vec<TokenQueue<R>>>, input: &str, start: usize, end: usize) -> TokenStream<R> {
[INFO] [stdout]    |                                                                           ^^^^ the lifetime is elided here   ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub unsafe fn new<R: YggdrasilRule>(queue: Rc<Vec<TokenQueue<R>>>, input: &str, start: usize, end: usize) -> TokenStream<'_, R> {
[INFO] [stdout]    |                                                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/iterators/tokens.rs:24:68
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn new<R: YggdrasilRule>(queue: Rc<Vec<TokenQueue<R>>>, input: &str, start: usize, end: usize) -> Tokens<R> {
[INFO] [stdout]    |                                                                    ^^^^ the lifetime is elided here   ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn new<R: YggdrasilRule>(queue: Rc<Vec<TokenQueue<R>>>, input: &str, start: usize, end: usize) -> Tokens<'_, R> {
[INFO] [stdout]    |                                                                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]  --> src/language/mod.rs:8:25
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn parse_lex(input: &str, rule: Self::Rule) -> Result<TokenStream<Self::Rule>, YggdrasilError<Self::Rule>> {
[INFO] [stdout]   |                         ^^^^ the lifetime is elided here  ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]   |
[INFO] [stdout]   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn parse_lex(input: &str, rule: Self::Rule) -> Result<TokenStream<'_, Self::Rule>, YggdrasilError<Self::Rule>> {
[INFO] [stdout]   |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/language/mod.rs:12:25
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn parse_cst(input: &str, rule: Self::Rule) -> Result<TokenTree<Self::Rule>, YggdrasilError<Self::Rule>>;
[INFO] [stdout]    |                         ^^^^ the lifetime is elided here  ^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn parse_cst(input: &str, rule: Self::Rule) -> Result<TokenTree<'_, Self::Rule>, YggdrasilError<Self::Rule>>;
[INFO] [stdout]    |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/input/adapt_vec.rs:21:35
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn build<'i>(&'i self) -> SequenceView<impl Iterator<Item = Character> + 'i> {
[INFO] [stdout]    |                       --          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--^
[INFO] [stdout]    |                       |           |                                              |
[INFO] [stdout]    |                       |           |                                              the same lifetime is named here
[INFO] [stdout]    |                       |           the same lifetime is hidden here
[INFO] [stdout]    |                       the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'i`
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn build<'i>(&'i self) -> SequenceView<'i, impl Iterator<Item = Character> + 'i> {
[INFO] [stdout]    |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.58s
[INFO] running `Command { std: "docker" "inspect" "adc1c358435f2a31ee4883d59f2bce60f1b9cf03b7ca205eaed07a07d25ca9b1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "adc1c358435f2a31ee4883d59f2bce60f1b9cf03b7ca205eaed07a07d25ca9b1", kill_on_drop: false }`
[INFO] [stdout] adc1c358435f2a31ee4883d59f2bce60f1b9cf03b7ca205eaed07a07d25ca9b1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 806b8c569e1def8bdb9fe546e980ffb42df6311e10a003e9314eabc9fa474716
[INFO] running `Command { std: "docker" "start" "-a" "806b8c569e1def8bdb9fe546e980ffb42df6311e10a003e9314eabc9fa474716", kill_on_drop: false }`
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/iterators/token_pair/mod.rs:45:75
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub unsafe fn new<R: YggdrasilRule>(queue: Rc<Vec<TokenQueue<R>>>, input: &str, start: usize) -> TokenPair<R> {
[INFO] [stdout]    |                                                                           ^^^^                   ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                                                           |
[INFO] [stdout]    |                                                                           the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub unsafe fn new<R: YggdrasilRule>(queue: Rc<Vec<TokenQueue<R>>>, input: &str, start: usize) -> TokenPair<'_, R> {
[INFO] [stdout]    |                                                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:230:28
[INFO] [stdout]     |
[INFO] [stdout] 230 |     pub fn find_first_rule(&self, rule: R) -> Option<TokenPair<R>> {
[INFO] [stdout]     |                            ^^^^^                     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 230 |     pub fn find_first_rule(&self, rule: R) -> Option<TokenPair<'_, R>> {
[INFO] [stdout]     |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:240:27
[INFO] [stdout]     |
[INFO] [stdout] 240 |     pub fn find_first_tag(&self, tag: &str) -> Option<TokenPair<R>> {
[INFO] [stdout]     |                           ^^^^^                       ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 240 |     pub fn find_first_tag(&self, tag: &str) -> Option<TokenPair<'_, R>> {
[INFO] [stdout]     |                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/iterators/token_stream/mod.rs:22:75
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub unsafe fn new<R: YggdrasilRule>(queue: Rc<Vec<TokenQueue<R>>>, input: &str, start: usize, end: usize) -> TokenStream<R> {
[INFO] [stdout]    |                                                                           ^^^^ the lifetime is elided here   ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub unsafe fn new<R: YggdrasilRule>(queue: Rc<Vec<TokenQueue<R>>>, input: &str, start: usize, end: usize) -> TokenStream<'_, R> {
[INFO] [stdout]    |                                                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/iterators/tokens.rs:24:68
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn new<R: YggdrasilRule>(queue: Rc<Vec<TokenQueue<R>>>, input: &str, start: usize, end: usize) -> Tokens<R> {
[INFO] [stdout]    |                                                                    ^^^^ the lifetime is elided here   ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn new<R: YggdrasilRule>(queue: Rc<Vec<TokenQueue<R>>>, input: &str, start: usize, end: usize) -> Tokens<'_, R> {
[INFO] [stdout]    |                                                                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]  --> src/language/mod.rs:8:25
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn parse_lex(input: &str, rule: Self::Rule) -> Result<TokenStream<Self::Rule>, YggdrasilError<Self::Rule>> {
[INFO] [stdout]   |                         ^^^^ the lifetime is elided here  ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]   |
[INFO] [stdout]   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn parse_lex(input: &str, rule: Self::Rule) -> Result<TokenStream<'_, Self::Rule>, YggdrasilError<Self::Rule>> {
[INFO] [stdout]   |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/language/mod.rs:12:25
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn parse_cst(input: &str, rule: Self::Rule) -> Result<TokenTree<Self::Rule>, YggdrasilError<Self::Rule>>;
[INFO] [stdout]    |                         ^^^^ the lifetime is elided here  ^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn parse_cst(input: &str, rule: Self::Rule) -> Result<TokenTree<'_, Self::Rule>, YggdrasilError<Self::Rule>>;
[INFO] [stdout]    |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/input/adapt_vec.rs:21:35
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn build<'i>(&'i self) -> SequenceView<impl Iterator<Item = Character> + 'i> {
[INFO] [stdout]    |                       --          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--^
[INFO] [stdout]    |                       |           |                                              |
[INFO] [stdout]    |                       |           |                                              the same lifetime is named here
[INFO] [stdout]    |                       |           the same lifetime is hidden here
[INFO] [stdout]    |                       the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'i`
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn build<'i>(&'i self) -> SequenceView<'i, impl Iterator<Item = Character> + 'i> {
[INFO] [stdout]    |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling yggdrasil-rt v0.1.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variant `a` should have an upper camel case name
[INFO] [stdout]  --> tests/suffix.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     a,
[INFO] [stdout]   |     ^ help: convert the identifier to upper camel case: `A`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `a` is never constructed
[INFO] [stdout]  --> tests/suffix.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | enum Rule {
[INFO] [stdout]   |      ---- variant in this enum
[INFO] [stdout] 7 |     a,
[INFO] [stdout]   |     ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Rule` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> tests/suffix.rs:18:20
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn repeat_a(input: &str) -> Either<Box<State<Rule>>> {
[INFO] [stdout]    |                    ^^^^                ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn repeat_a(input: &str) -> Either<Box<State<'_, Rule>>> {
[INFO] [stdout]    |                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> tests/suffix.rs:18:20
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn repeat_a(input: &str) -> Either<Box<State<Rule>>> {
[INFO] [stdout]    |                    ^^^^                ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn repeat_a(input: &str) -> Either<Box<State<'_, Rule>>> {
[INFO] [stdout]    |                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/iterators/token_pair/mod.rs:45:75
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub unsafe fn new<R: YggdrasilRule>(queue: Rc<Vec<TokenQueue<R>>>, input: &str, start: usize) -> TokenPair<R> {
[INFO] [stdout]    |                                                                           ^^^^                   ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                                                           |
[INFO] [stdout]    |                                                                           the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub unsafe fn new<R: YggdrasilRule>(queue: Rc<Vec<TokenQueue<R>>>, input: &str, start: usize) -> TokenPair<'_, R> {
[INFO] [stdout]    |                                                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:230:28
[INFO] [stdout]     |
[INFO] [stdout] 230 |     pub fn find_first_rule(&self, rule: R) -> Option<TokenPair<R>> {
[INFO] [stdout]     |                            ^^^^^                     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 230 |     pub fn find_first_rule(&self, rule: R) -> Option<TokenPair<'_, R>> {
[INFO] [stdout]     |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:240:27
[INFO] [stdout]     |
[INFO] [stdout] 240 |     pub fn find_first_tag(&self, tag: &str) -> Option<TokenPair<R>> {
[INFO] [stdout]     |                           ^^^^^                       ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 240 |     pub fn find_first_tag(&self, tag: &str) -> Option<TokenPair<'_, R>> {
[INFO] [stdout]     |                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/iterators/token_stream/mod.rs:22:75
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub unsafe fn new<R: YggdrasilRule>(queue: Rc<Vec<TokenQueue<R>>>, input: &str, start: usize, end: usize) -> TokenStream<R> {
[INFO] [stdout]    |                                                                           ^^^^ the lifetime is elided here   ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub unsafe fn new<R: YggdrasilRule>(queue: Rc<Vec<TokenQueue<R>>>, input: &str, start: usize, end: usize) -> TokenStream<'_, R> {
[INFO] [stdout]    |                                                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/iterators/tokens.rs:24:68
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn new<R: YggdrasilRule>(queue: Rc<Vec<TokenQueue<R>>>, input: &str, start: usize, end: usize) -> Tokens<R> {
[INFO] [stdout]    |                                                                    ^^^^ the lifetime is elided here   ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn new<R: YggdrasilRule>(queue: Rc<Vec<TokenQueue<R>>>, input: &str, start: usize, end: usize) -> Tokens<'_, R> {
[INFO] [stdout]    |                                                                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]  --> src/language/mod.rs:8:25
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn parse_lex(input: &str, rule: Self::Rule) -> Result<TokenStream<Self::Rule>, YggdrasilError<Self::Rule>> {
[INFO] [stdout]   |                         ^^^^ the lifetime is elided here  ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]   |
[INFO] [stdout]   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn parse_lex(input: &str, rule: Self::Rule) -> Result<TokenStream<'_, Self::Rule>, YggdrasilError<Self::Rule>> {
[INFO] [stdout]   |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/language/mod.rs:12:25
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn parse_cst(input: &str, rule: Self::Rule) -> Result<TokenTree<Self::Rule>, YggdrasilError<Self::Rule>>;
[INFO] [stdout]    |                         ^^^^ the lifetime is elided here  ^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn parse_cst(input: &str, rule: Self::Rule) -> Result<TokenTree<'_, Self::Rule>, YggdrasilError<Self::Rule>>;
[INFO] [stdout]    |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/input/adapt_vec.rs:21:35
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn build<'i>(&'i self) -> SequenceView<impl Iterator<Item = Character> + 'i> {
[INFO] [stdout]    |                       --          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--^
[INFO] [stdout]    |                       |           |                                              |
[INFO] [stdout]    |                       |           |                                              the same lifetime is named here
[INFO] [stdout]    |                       |           the same lifetime is hidden here
[INFO] [stdout]    |                       the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'i`
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn build<'i>(&'i self) -> SequenceView<'i, impl Iterator<Item = Character> + 'i> {
[INFO] [stdout]    |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.31s
[INFO] running `Command { std: "docker" "inspect" "806b8c569e1def8bdb9fe546e980ffb42df6311e10a003e9314eabc9fa474716", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "806b8c569e1def8bdb9fe546e980ffb42df6311e10a003e9314eabc9fa474716", kill_on_drop: false }`
[INFO] [stdout] 806b8c569e1def8bdb9fe546e980ffb42df6311e10a003e9314eabc9fa474716
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] a9f7793beabd85b74775fadb317710ae6f66409a5760b38fddb7afd0f66deb74
[INFO] running `Command { std: "docker" "start" "-a" "a9f7793beabd85b74775fadb317710ae6f66409a5760b38fddb7afd0f66deb74", kill_on_drop: false }`
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/iterators/token_pair/mod.rs:45:75
[INFO] [stderr]    |
[INFO] [stderr] 45 | pub unsafe fn new<R: YggdrasilRule>(queue: Rc<Vec<TokenQueue<R>>>, input: &str, start: usize) -> TokenPair<R> {
[INFO] [stderr]    |                                                                           ^^^^                   ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                                                                           |
[INFO] [stderr]    |                                                                           the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 45 | pub unsafe fn new<R: YggdrasilRule>(queue: Rc<Vec<TokenQueue<R>>>, input: &str, start: usize) -> TokenPair<'_, R> {
[INFO] [stderr]    |                                                                                                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/iterators/token_pair/mod.rs:230:28
[INFO] [stderr]     |
[INFO] [stderr] 230 |     pub fn find_first_rule(&self, rule: R) -> Option<TokenPair<R>> {
[INFO] [stderr]     |                            ^^^^^                     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                            |
[INFO] [stderr]     |                            the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 230 |     pub fn find_first_rule(&self, rule: R) -> Option<TokenPair<'_, R>> {
[INFO] [stderr]     |                                                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/iterators/token_pair/mod.rs:240:27
[INFO] [stderr]     |
[INFO] [stderr] 240 |     pub fn find_first_tag(&self, tag: &str) -> Option<TokenPair<R>> {
[INFO] [stderr]     |                           ^^^^^                       ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                           |
[INFO] [stderr]     |                           the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 240 |     pub fn find_first_tag(&self, tag: &str) -> Option<TokenPair<'_, R>> {
[INFO] [stderr]     |                                                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/iterators/token_stream/mod.rs:22:75
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub unsafe fn new<R: YggdrasilRule>(queue: Rc<Vec<TokenQueue<R>>>, input: &str, start: usize, end: usize) -> TokenStream<R> {
[INFO] [stderr]    |                                                                           ^^^^ the lifetime is elided here   ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub unsafe fn new<R: YggdrasilRule>(queue: Rc<Vec<TokenQueue<R>>>, input: &str, start: usize, end: usize) -> TokenStream<'_, R> {
[INFO] [stderr]    |                                                                                                                          +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/iterators/tokens.rs:24:68
[INFO] [stderr]    |
[INFO] [stderr] 24 | pub fn new<R: YggdrasilRule>(queue: Rc<Vec<TokenQueue<R>>>, input: &str, start: usize, end: usize) -> Tokens<R> {
[INFO] [stderr]    |                                                                    ^^^^ the lifetime is elided here   ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 24 | pub fn new<R: YggdrasilRule>(queue: Rc<Vec<TokenQueue<R>>>, input: &str, start: usize, end: usize) -> Tokens<'_, R> {
[INFO] [stderr]    |                                                                                                              +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]  --> src/language/mod.rs:8:25
[INFO] [stderr]   |
[INFO] [stderr] 8 |     fn parse_lex(input: &str, rule: Self::Rule) -> Result<TokenStream<Self::Rule>, YggdrasilError<Self::Rule>> {
[INFO] [stderr]   |                         ^^^^ the lifetime is elided here  ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]   |
[INFO] [stderr]   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]   |
[INFO] [stderr] 8 |     fn parse_lex(input: &str, rule: Self::Rule) -> Result<TokenStream<'_, Self::Rule>, YggdrasilError<Self::Rule>> {
[INFO] [stderr]   |                                                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/language/mod.rs:12:25
[INFO] [stderr]    |
[INFO] [stderr] 12 |     fn parse_cst(input: &str, rule: Self::Rule) -> Result<TokenTree<Self::Rule>, YggdrasilError<Self::Rule>>;
[INFO] [stderr]    |                         ^^^^ the lifetime is elided here  ^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 12 |     fn parse_cst(input: &str, rule: Self::Rule) -> Result<TokenTree<'_, Self::Rule>, YggdrasilError<Self::Rule>>;
[INFO] [stderr]    |                                                                     +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stderr]   --> src/input/adapt_vec.rs:21:35
[INFO] [stderr]    |
[INFO] [stderr] 21 |     pub fn build<'i>(&'i self) -> SequenceView<impl Iterator<Item = Character> + 'i> {
[INFO] [stderr]    |                       --          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--^
[INFO] [stderr]    |                       |           |                                              |
[INFO] [stderr]    |                       |           |                                              the same lifetime is named here
[INFO] [stderr]    |                       |           the same lifetime is hidden here
[INFO] [stderr]    |                       the lifetime is named here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: consistently use `'i`
[INFO] [stderr]    |
[INFO] [stderr] 21 |     pub fn build<'i>(&'i self) -> SequenceView<'i, impl Iterator<Item = Character> + 'i> {
[INFO] [stderr]    |                                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: `yggdrasil-rt` (lib) generated 8 warnings (run `cargo fix --lib -p yggdrasil-rt` to apply 8 suggestions)
[INFO] [stderr] warning: `yggdrasil-rt` (lib test) generated 8 warnings (8 duplicates)
[INFO] [stderr] warning: variant `a` should have an upper camel case name
[INFO] [stderr]  --> tests/suffix.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 |     a,
[INFO] [stderr]   |     ^ help: convert the identifier to upper camel case: `A`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variant `a` is never constructed
[INFO] [stderr]  --> tests/suffix.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | enum Rule {
[INFO] [stderr]   |      ---- variant in this enum
[INFO] [stderr] 7 |     a,
[INFO] [stderr]   |     ^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `Rule` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> tests/suffix.rs:18:20
[INFO] [stderr]    |
[INFO] [stderr] 18 | fn repeat_a(input: &str) -> Either<Box<State<Rule>>> {
[INFO] [stderr]    |                    ^^^^                ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                    |
[INFO] [stderr]    |                    the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 18 | fn repeat_a(input: &str) -> Either<Box<State<'_, Rule>>> {
[INFO] [stderr]    |                                              +++
[INFO] [stderr] 
[INFO] [stderr] warning: `yggdrasil-rt` (test "suffix") generated 3 warnings (run `cargo fix --test "suffix" -p yggdrasil-rt` to apply 1 suggestion)
[INFO] [stderr] warning: `yggdrasil-rt` (test "main") generated 1 warning (1 duplicate)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.01s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/yggdrasil_rt-495b201d8cc0b947)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/concat.rs (/opt/rustwide/target/debug/deps/concat-4f667c63bc6dc19e)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/main.rs (/opt/rustwide/target/debug/deps/main-20effd23c419d227)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test ready ... ok
[INFO] [stdout] test stack::restore_without_snapshot ... ok
[INFO] [stdout] test stack::snapshot_pop_push_restore ... ok
[INFO] [stdout] test stack::snapshot_pop_restore ... ok
[INFO] [stdout] test stack::snapshot_pop_clear ... ok
[INFO] [stdout] test stack::snapshot_push_clear ... ok
[INFO] [stdout] test stack::snapshot_push_pop_restore ... ok
[INFO] [stdout] test stack::snapshot_twice ... ok
[INFO] [stdout] test stack::snapshot_with_empty ... ok
[INFO] [stdout] test stack::stack_ops ... ok
[INFO] [stdout] test suffix::test ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/stack.rs (/opt/rustwide/target/debug/deps/stack-c1af9e4ac33f82a1)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test restore_without_snapshot ... ok
[INFO] [stdout] test snapshot_pop_clear ... ok
[INFO] [stdout] test snapshot_push_clear ... ok
[INFO] [stdout] test snapshot_pop_restore ... ok
[INFO] [stdout] test snapshot_pop_push_restore ... ok
[INFO] [stdout] test snapshot_twice ... ok
[INFO] [stdout] test snapshot_push_pop_restore ... ok
[INFO] [stdout] test snapshot_with_empty ... ok
[INFO] [stdout] test stack_ops ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/suffix.rs (/opt/rustwide/target/debug/deps/suffix-b69a7b79b1786098)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test test ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests yggdrasil_rt
[INFO] [stdout] 
[INFO] [stdout] running 62 tests
[INFO] [stdout] test src/errors/mod.rs - errors::YggdrasilError<R>::get_local_path (line 168) ... FAILED
[INFO] [stdout] test src/errors/mod.rs - errors::YggdrasilError<R>::new_from_span (line 85) ... FAILED
[INFO] [stdout] test src/errors/mod.rs - errors::YggdrasilError<R>::renamed_rules (line 206) ... FAILED
[INFO] [stdout] test src/iterators/token_pair/mod.rs - iterators::token_pair::TokenPair<'i,R>::get_rule (line 57) ... FAILED
[INFO] [stdout] test src/iterators/token_pair/mod.rs - iterators::token_pair::TokenPair<'i,R>::has_child (line 326) ... FAILED
[INFO] [stdout] test src/iterators/token_pair/mod.rs - iterators::token_pair::TokenPair<'i,R>::into_inner (line 203) ... FAILED
[INFO] [stdout] test src/iterators/token_pair/mod.rs - iterators::token_pair::TokenPair<'i,R>::tokens (line 362) ... FAILED
[INFO] [stdout] test src/iterators/token_stream/mod.rs - iterators::token_stream::TokenStream<'i,R>::tokens (line 31) ... FAILED
[INFO] [stdout] test src/iterators/token_pair/mod.rs - iterators::token_pair::TokenPair<'i,R>::get_input (line 130) ... FAILED
[INFO] [stdout] test src/iterators/token_tree/mod.rs - iterators::token_tree::TokenTree<'i,R>::flatten (line 150) ... FAILED
[INFO] [stdout] test src/iterators/token_pair/mod.rs - iterators::token_pair::TokenPair<'i,R>::get_span (line 161) ... FAILED
[INFO] [stdout] test src/iterators/token_tree/mod.rs - iterators::token_tree::TokenTree<'i,R>::concat (line 121) ... FAILED
[INFO] [stdout] test src/iterators/token_pair/mod.rs - iterators::token_pair::TokenPair<'i,R>::as_str (line 89) ... FAILED
[INFO] [stdout] test src/errors/mod.rs - errors::YggdrasilError<R>::with_path (line 138) ... FAILED
[INFO] [stdout] test src/iterators/token_tree/mod.rs - iterators::token_tree::TokenTree<'i,R>::as_str (line 48) ... FAILED
[INFO] [stdout] test src/iterators/token_tree/mod.rs - iterators::token_tree::TokenTree<'i,R>::find_tagged (line 183) ... FAILED
[INFO] [stdout] test src/parser_state.rs - parser_state::State<'i,R>::new (line 115) ... FAILED
[INFO] [stdout] test src/parser_state.rs - parser_state::State<'i,R>::end_of_input (line 687) ... FAILED
[INFO] [stdout] test src/iterators/token_tree/mod.rs - iterators::token_tree::TokenTree<'i,R>::tokens (line 232) ... FAILED
[INFO] [stdout] test src/parser_state.rs - parser_state::State<'i,R>::match_range (line 566) ... FAILED
[INFO] [stdout] test src/parser_state.rs - parser_state::State<'i,R>::match_regex (line 596) ... FAILED
[INFO] [stdout] test src/parser_state.rs - parser_state::State<'i,R>::optional (line 444) ... FAILED
[INFO] [stdout] test src/parser_state.rs - parser_state::State<'i,R>::match_string (line 518) ... FAILED
[INFO] [stdout] test src/parser_state.rs - parser_state::State<'i,R>::match_char_if (line 478) ... FAILED
[INFO] [stdout] test src/parser_state.rs - parser_state::State<'i,R>::position (line 136) ... FAILED
[INFO] [stdout] test src/iterators/token_tree/mod.rs - iterators::token_tree::TokenTree<'i,R>::get_input (line 89) ... FAILED
[INFO] [stdout] test src/parser_state.rs - parser_state::State<'i,R>::rest_of_line (line 713) ... FAILED
[INFO] [stdout] test src/parser_state.rs - parser_state::State<'i,R>::repeat (line 389) ... FAILED
[INFO] [stdout] test src/parser_state.rs - parser_state::State<'i,R>::sequence (line 344) ... FAILED
[INFO] [stdout] test src/parser_state.rs - parser_state::State<'i,R>::skip (line 632) ... FAILED
[INFO] [stdout] test src/parser_state.rs - parser_state::State<'i,R>::stack_match_peek (line 955) ... FAILED
[INFO] [stdout] test src/parser_state.rs - parser_state::State<'i,R>::stack_drop (line 1021) ... FAILED
[INFO] [stdout] test src/parser_state.rs - parser_state::State<'i,R>::start_of_input (line 660) ... FAILED
[INFO] [stdout] test src/parser_state.rs - parser_state::State<'i,R>::stack_match_pop (line 980) ... FAILED
[INFO] [stdout] test src/parser_state.rs - parser_state::State<'i,R>::stack_peek (line 846) ... FAILED
[INFO] [stdout] test src/parser_state.rs - parser_state::state (line 70) ... FAILED
[INFO] [stdout] test src/parser_state.rs - parser_state::State<'i,R>::stack_pop (line 872) ... FAILED
[INFO] [stdout] test src/parser_state.rs - parser_state::State<'i,R>::stack_push (line 811) ... FAILED
[INFO] [stdout] test src/parser_state.rs - parser_state::State<'i,R>::stack_match_peek_slice (line 896) ... FAILED
[INFO] [stdout] test src/parser_state.rs - parser_state::State<'i,R>::tag_node (line 245) ... FAILED
[INFO] [stdout] test src/position.rs - position::Position<'i>::line_column (line 116) ... FAILED
[INFO] [stdout] test src/position.rs - position::Position<'i>::line_of (line 178) ... FAILED
[INFO] [stdout] test src/span.rs - span::TextSpan<'i>::as_str (line 206) ... FAILED
[INFO] [stdout] test src/span.rs - span::TextSpan<'i>::lines (line 251) ... FAILED
[INFO] [stdout] test src/parser_state.rs - parser_state::State<'i,R>::lookahead (line 739) ... ok
[INFO] [stdout] test src/parser_state.rs - parser_state::State<'i,R>::restore_on_err (line 1049) ... ok
[INFO] [stdout] test src/position.rs - position::Position<'i>::offset (line 68) ... ok
[INFO] [stdout] test src/span.rs - span::TextSpan<'i>::lines_span (line 274) ... FAILED
[INFO] [stdout] test src/span.rs - span::TextSpan<'i>::end (line 110) ... ok
[INFO] [stdout] test src/position.rs - position::Position<'i>::span (line 88) ... ok
[INFO] [stdout] test src/position.rs - position::Position<'i>::new (line 38) ... ok
[INFO] [stdout] test src/position.rs - position::Position<'i>::from_start (line 53) ... ok
[INFO] [stdout] test src/parser_state.rs - parser_state::State<'i,R>::rule (line 159) ... ok
[INFO] [stdout] test src/span.rs - span::TextSpan<'i>::end_pos (line 165) ... ok
[INFO] [stdout] test src/span.rs - span::TextSpan<'i>::get (line 63) ... ok
[INFO] [stdout] test src/span.rs - span::TextSpan<'i>::get_range (line 128) ... ok
[INFO] [stdout] test src/span.rs - span::TextSpan<'i>::split (line 184) ... ok
[INFO] [stdout] test src/span.rs - span::TextSpan<'i>::new (line 51) ... ok
[INFO] [stdout] test src/span.rs - span::TextSpan<'i>::get_input (line 234) ... ok
[INFO] [stdout] test src/span.rs - span::merge_spans (line 334) ... ok
[INFO] [stdout] test src/span.rs - span::TextSpan<'i>::start_pos (line 146) ... ok
[INFO] [stdout] test src/span.rs - span::TextSpan<'i>::start (line 92) ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/errors/mod.rs - errors::YggdrasilError<R>::get_local_path (line 168) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `yggdrasil_rt::error`
[INFO] [stdout]    --> src/errors/mod.rs:170:19
[INFO] [stdout]     |
[INFO] [stdout] 170 | use yggdrasil_rt::error::{YggdrasilError, ErrorKind};
[INFO] [stdout]     |                   ^^^^^ could not find `error` in `yggdrasil_rt`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/errors/mod.rs - errors::YggdrasilError<R>::new_from_span (line 85) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `yggdrasil_rt::error`
[INFO] [stdout]   --> src/errors/mod.rs:87:19
[INFO] [stdout]    |
[INFO] [stdout] 87 | use yggdrasil_rt::error::{YggdrasilError, ErrorKind};
[INFO] [stdout]    |                   ^^^^^ could not find `error` in `yggdrasil_rt`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/errors/mod.rs - errors::YggdrasilError<R>::renamed_rules (line 206) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `yggdrasil_rt::error`
[INFO] [stdout]    --> src/errors/mod.rs:208:19
[INFO] [stdout]     |
[INFO] [stdout] 208 | use yggdrasil_rt::error::{YggdrasilError, ErrorKind};
[INFO] [stdout]     |                   ^^^^^ could not find `error` in `yggdrasil_rt`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/iterators/token_pair/mod.rs - iterators::token_pair::TokenPair<'i,R>::get_rule (line 57) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:70:11
[INFO] [stdout]     |
[INFO] [stdout]  70 |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout]     |           ^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:63:1
[INFO] [stdout]     |
[INFO] [stdout]  63 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State::<'i, R>::rule`
[INFO] [stdout]    --> src/parser_state.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State::<'i, R>::rule`
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn rule<F>(mut self: Box<Self>, rule: R, f: F) -> Either<Box<Self>>
[INFO] [stdout]     |            ---- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]   --> src/iterators/token_pair/mod.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 68 |   let pair = yggdrasil_rt::state(input, |state| {
[INFO] [stdout]    |  ____________^
[INFO] [stdout] 69 | |     // generating Token pair with Rule::a ...
[INFO] [stdout] 70 | |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout] 71 | | })
[INFO] [stdout]    | |__^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]   --> src/iterators/token_pair/mod.rs:63:1
[INFO] [stdout]    |
[INFO] [stdout] 63 | enum Rule {
[INFO] [stdout]    | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `state`
[INFO] [stdout]   --> src/parser_state.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub fn state<'i, R, F>(input: &'i str, f: F) -> Result<TokenTree<'i, R>, YggdrasilError<R>>
[INFO] [stdout]    |        ----- required by a bound in this function
[INFO] [stdout] ...
[INFO] [stdout] 79 |     R: YggdrasilRule,
[INFO] [stdout]    |        ^^^^^^^^^^^^^ required by this bound in `state`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]   --> src/iterators/token_pair/mod.rs:70:26
[INFO] [stdout]    |
[INFO] [stdout] 70 |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout]    |                          ^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]   --> src/iterators/token_pair/mod.rs:63:1
[INFO] [stdout]    |
[INFO] [stdout] 63 | enum Rule {
[INFO] [stdout]    | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]   --> src/parser_state.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct State<'i, R>
[INFO] [stdout]    |            ----- required by a bound in this struct
[INFO] [stdout] 54 | where
[INFO] [stdout] 55 |     R: YggdrasilRule,
[INFO] [stdout]    |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]   --> src/iterators/token_pair/mod.rs:70:29
[INFO] [stdout]    |
[INFO] [stdout] 70 |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout]    |                             ^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]   --> src/iterators/token_pair/mod.rs:63:1
[INFO] [stdout]    |
[INFO] [stdout] 63 | enum Rule {
[INFO] [stdout]    | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]   --> src/parser_state.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct State<'i, R>
[INFO] [stdout]    |            ----- required by a bound in this struct
[INFO] [stdout] 54 | where
[INFO] [stdout] 55 |     R: YggdrasilRule,
[INFO] [stdout]    |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]   --> src/iterators/token_pair/mod.rs:70:29
[INFO] [stdout]    |
[INFO] [stdout] 70 |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout]    |                             ^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]   --> src/iterators/token_pair/mod.rs:63:1
[INFO] [stdout]    |
[INFO] [stdout] 63 | enum Rule {
[INFO] [stdout]    | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]   --> src/parser_state.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct State<'i, R>
[INFO] [stdout]    |            ----- required by a bound in this struct
[INFO] [stdout] 54 | where
[INFO] [stdout] 55 |     R: YggdrasilRule,
[INFO] [stdout]    |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `next` exists for struct `TokenTree<'_, Rule>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/iterators/token_pair/mod.rs:73:2
[INFO] [stdout]    |
[INFO] [stdout] 63 |   enum Rule {
[INFO] [stdout]    |   --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 68 |   let pair = yggdrasil_rt::state(input, |state| {
[INFO] [stdout]    |  ____________-
[INFO] [stdout] 69 | |     // generating Token pair with Rule::a ...
[INFO] [stdout] 70 | |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout] 71 | | })
[INFO] [stdout] 72 | | .unwrap()
[INFO] [stdout] 73 | | .next()
[INFO] [stdout]    | |_-^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/iterators/token_tree/mod.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 |   pub struct TokenTree<'i, R> {
[INFO] [stdout]    |   --------------------------- doesn't satisfy `TokenTree<'_, Rule>: Iterator`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `Rule: YggdrasilRule`
[INFO] [stdout]            which is required by `TokenTree<'_, Rule>: Iterator`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]   --> src/lib.rs:57:1
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 6 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/iterators/token_pair/mod.rs - iterators::token_pair::TokenPair<'i,R>::has_child (line 326) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:339:11
[INFO] [stdout]     |
[INFO] [stdout] 339 |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout]     |           ^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:332:1
[INFO] [stdout]     |
[INFO] [stdout] 332 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State::<'i, R>::rule`
[INFO] [stdout]    --> src/parser_state.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State::<'i, R>::rule`
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn rule<F>(mut self: Box<Self>, rule: R, f: F) -> Either<Box<Self>>
[INFO] [stdout]     |            ---- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:337:12
[INFO] [stdout]     |
[INFO] [stdout] 337 |   let pair = yggdrasil_rt::state(input, |state| {
[INFO] [stdout]     |  ____________^
[INFO] [stdout] 338 | |     // generating Token pair with Rule::a ...
[INFO] [stdout] 339 | |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout] 340 | | })
[INFO] [stdout]     | |__^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:332:1
[INFO] [stdout]     |
[INFO] [stdout] 332 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `state`
[INFO] [stdout]    --> src/parser_state.rs:79:8
[INFO] [stdout]     |
[INFO] [stdout]  76 | pub fn state<'i, R, F>(input: &'i str, f: F) -> Result<TokenTree<'i, R>, YggdrasilError<R>>
[INFO] [stdout]     |        ----- required by a bound in this function
[INFO] [stdout] ...
[INFO] [stdout]  79 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `state`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:339:26
[INFO] [stdout]     |
[INFO] [stdout] 339 |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout]     |                          ^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:332:1
[INFO] [stdout]     |
[INFO] [stdout] 332 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:339:29
[INFO] [stdout]     |
[INFO] [stdout] 339 |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout]     |                             ^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:332:1
[INFO] [stdout]     |
[INFO] [stdout] 332 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:339:29
[INFO] [stdout]     |
[INFO] [stdout] 339 |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout]     |                             ^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:332:1
[INFO] [stdout]     |
[INFO] [stdout] 332 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `next` exists for struct `TokenTree<'_, Rule>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:342:2
[INFO] [stdout]     |
[INFO] [stdout] 332 |   enum Rule {
[INFO] [stdout]     |   --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 337 |   let pair = yggdrasil_rt::state(input, |state| {
[INFO] [stdout]     |  ____________-
[INFO] [stdout] 338 | |     // generating Token pair with Rule::a ...
[INFO] [stdout] 339 | |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout] 340 | | })
[INFO] [stdout] 341 | | .unwrap()
[INFO] [stdout] 342 | | .next()
[INFO] [stdout]     | |_-^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/iterators/token_tree/mod.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 |   pub struct TokenTree<'i, R> {
[INFO] [stdout]     |   --------------------------- doesn't satisfy `TokenTree<'_, Rule>: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout]             which is required by `TokenTree<'_, Rule>: Iterator`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 6 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/iterators/token_pair/mod.rs - iterators::token_pair::TokenPair<'i,R>::into_inner (line 203) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:216:11
[INFO] [stdout]     |
[INFO] [stdout] 216 |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout]     |           ^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:209:1
[INFO] [stdout]     |
[INFO] [stdout] 209 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State::<'i, R>::rule`
[INFO] [stdout]    --> src/parser_state.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State::<'i, R>::rule`
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn rule<F>(mut self: Box<Self>, rule: R, f: F) -> Either<Box<Self>>
[INFO] [stdout]     |            ---- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:214:12
[INFO] [stdout]     |
[INFO] [stdout] 214 |   let pair = yggdrasil_rt::state(input, |state| {
[INFO] [stdout]     |  ____________^
[INFO] [stdout] 215 | |     // generating Token pair with Rule::a ...
[INFO] [stdout] 216 | |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout] 217 | | })
[INFO] [stdout]     | |__^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:209:1
[INFO] [stdout]     |
[INFO] [stdout] 209 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `state`
[INFO] [stdout]    --> src/parser_state.rs:79:8
[INFO] [stdout]     |
[INFO] [stdout]  76 | pub fn state<'i, R, F>(input: &'i str, f: F) -> Result<TokenTree<'i, R>, YggdrasilError<R>>
[INFO] [stdout]     |        ----- required by a bound in this function
[INFO] [stdout] ...
[INFO] [stdout]  79 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `state`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:216:26
[INFO] [stdout]     |
[INFO] [stdout] 216 |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout]     |                          ^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:209:1
[INFO] [stdout]     |
[INFO] [stdout] 209 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:216:29
[INFO] [stdout]     |
[INFO] [stdout] 216 |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout]     |                             ^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:209:1
[INFO] [stdout]     |
[INFO] [stdout] 209 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:216:29
[INFO] [stdout]     |
[INFO] [stdout] 216 |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout]     |                             ^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:209:1
[INFO] [stdout]     |
[INFO] [stdout] 209 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `next` exists for struct `TokenTree<'_, Rule>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:219:2
[INFO] [stdout]     |
[INFO] [stdout] 209 |   enum Rule {
[INFO] [stdout]     |   --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 214 |   let pair = yggdrasil_rt::state(input, |state| {
[INFO] [stdout]     |  ____________-
[INFO] [stdout] 215 | |     // generating Token pair with Rule::a ...
[INFO] [stdout] 216 | |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout] 217 | | })
[INFO] [stdout] 218 | | .unwrap()
[INFO] [stdout] 219 | | .next()
[INFO] [stdout]     | |_-^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/iterators/token_tree/mod.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 |   pub struct TokenTree<'i, R> {
[INFO] [stdout]     |   --------------------------- doesn't satisfy `TokenTree<'_, Rule>: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout]             which is required by `TokenTree<'_, Rule>: Iterator`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 6 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/iterators/token_pair/mod.rs - iterators::token_pair::TokenPair<'i,R>::tokens (line 362) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:375:11
[INFO] [stdout]     |
[INFO] [stdout] 375 |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout]     |           ^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:368:1
[INFO] [stdout]     |
[INFO] [stdout] 368 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State::<'i, R>::rule`
[INFO] [stdout]    --> src/parser_state.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State::<'i, R>::rule`
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn rule<F>(mut self: Box<Self>, rule: R, f: F) -> Either<Box<Self>>
[INFO] [stdout]     |            ---- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:373:12
[INFO] [stdout]     |
[INFO] [stdout] 373 |   let pair = yggdrasil_rt::state(input, |state| {
[INFO] [stdout]     |  ____________^
[INFO] [stdout] 374 | |     // generating Token pair with Rule::a ...
[INFO] [stdout] 375 | |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout] 376 | | })
[INFO] [stdout]     | |__^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:368:1
[INFO] [stdout]     |
[INFO] [stdout] 368 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `state`
[INFO] [stdout]    --> src/parser_state.rs:79:8
[INFO] [stdout]     |
[INFO] [stdout]  76 | pub fn state<'i, R, F>(input: &'i str, f: F) -> Result<TokenTree<'i, R>, YggdrasilError<R>>
[INFO] [stdout]     |        ----- required by a bound in this function
[INFO] [stdout] ...
[INFO] [stdout]  79 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `state`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:375:26
[INFO] [stdout]     |
[INFO] [stdout] 375 |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout]     |                          ^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:368:1
[INFO] [stdout]     |
[INFO] [stdout] 368 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:375:29
[INFO] [stdout]     |
[INFO] [stdout] 375 |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout]     |                             ^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:368:1
[INFO] [stdout]     |
[INFO] [stdout] 368 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:375:29
[INFO] [stdout]     |
[INFO] [stdout] 375 |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout]     |                             ^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:368:1
[INFO] [stdout]     |
[INFO] [stdout] 368 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `next` exists for struct `TokenTree<'_, Rule>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:378:2
[INFO] [stdout]     |
[INFO] [stdout] 368 |   enum Rule {
[INFO] [stdout]     |   --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 373 |   let pair = yggdrasil_rt::state(input, |state| {
[INFO] [stdout]     |  ____________-
[INFO] [stdout] 374 | |     // generating Token pair with Rule::a ...
[INFO] [stdout] 375 | |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout] 376 | | })
[INFO] [stdout] 377 | | .unwrap()
[INFO] [stdout] 378 | | .next()
[INFO] [stdout]     | |_-^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/iterators/token_tree/mod.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 |   pub struct TokenTree<'i, R> {
[INFO] [stdout]     |   --------------------------- doesn't satisfy `TokenTree<'_, Rule>: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout]             which is required by `TokenTree<'_, Rule>: Iterator`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 6 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/iterators/token_stream/mod.rs - iterators::token_stream::TokenStream<'i,R>::tokens (line 31) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_stream/mod.rs:44:11
[INFO] [stdout]     |
[INFO] [stdout]  44 |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout]     |           ^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_stream/mod.rs:37:1
[INFO] [stdout]     |
[INFO] [stdout]  37 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State::<'i, R>::rule`
[INFO] [stdout]    --> src/parser_state.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State::<'i, R>::rule`
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn rule<F>(mut self: Box<Self>, rule: R, f: F) -> Either<Box<Self>>
[INFO] [stdout]     |            ---- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]   --> src/iterators/token_stream/mod.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |   let pairs = yggdrasil_rt::state(input, |state| {
[INFO] [stdout]    |  _____________^
[INFO] [stdout] 43 | |     // generating Token pair with Rule::a ...
[INFO] [stdout] 44 | |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout] 45 | | })
[INFO] [stdout]    | |__^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]   --> src/iterators/token_stream/mod.rs:37:1
[INFO] [stdout]    |
[INFO] [stdout] 37 | enum Rule {
[INFO] [stdout]    | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `state`
[INFO] [stdout]   --> src/parser_state.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub fn state<'i, R, F>(input: &'i str, f: F) -> Result<TokenTree<'i, R>, YggdrasilError<R>>
[INFO] [stdout]    |        ----- required by a bound in this function
[INFO] [stdout] ...
[INFO] [stdout] 79 |     R: YggdrasilRule,
[INFO] [stdout]    |        ^^^^^^^^^^^^^ required by this bound in `state`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]   --> src/iterators/token_stream/mod.rs:44:26
[INFO] [stdout]    |
[INFO] [stdout] 44 |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout]    |                          ^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]   --> src/iterators/token_stream/mod.rs:37:1
[INFO] [stdout]    |
[INFO] [stdout] 37 | enum Rule {
[INFO] [stdout]    | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]   --> src/parser_state.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct State<'i, R>
[INFO] [stdout]    |            ----- required by a bound in this struct
[INFO] [stdout] 54 | where
[INFO] [stdout] 55 |     R: YggdrasilRule,
[INFO] [stdout]    |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]   --> src/iterators/token_stream/mod.rs:44:29
[INFO] [stdout]    |
[INFO] [stdout] 44 |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout]    |                             ^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]   --> src/iterators/token_stream/mod.rs:37:1
[INFO] [stdout]    |
[INFO] [stdout] 37 | enum Rule {
[INFO] [stdout]    | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]   --> src/parser_state.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct State<'i, R>
[INFO] [stdout]    |            ----- required by a bound in this struct
[INFO] [stdout] 54 | where
[INFO] [stdout] 55 |     R: YggdrasilRule,
[INFO] [stdout]    |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]   --> src/iterators/token_stream/mod.rs:44:29
[INFO] [stdout]    |
[INFO] [stdout] 44 |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout]    |                             ^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]   --> src/iterators/token_stream/mod.rs:37:1
[INFO] [stdout]    |
[INFO] [stdout] 37 | enum Rule {
[INFO] [stdout]    | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]   --> src/parser_state.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct State<'i, R>
[INFO] [stdout]    |            ----- required by a bound in this struct
[INFO] [stdout] 54 | where
[INFO] [stdout] 55 |     R: YggdrasilRule,
[INFO] [stdout]    |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `flatten` exists for struct `TokenTree<'_, Rule>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/iterators/token_stream/mod.rs:47:28
[INFO] [stdout]    |
[INFO] [stdout] 37 | enum Rule {
[INFO] [stdout]    | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 47 | let tokens: Vec<_> = pairs.flatten().tokens().collect();
[INFO] [stdout]    |                            ^^^^^^^ method cannot be called on `TokenTree<'_, Rule>` due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/iterators/token_tree/mod.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct TokenTree<'i, R> {
[INFO] [stdout]    | --------------------------- doesn't satisfy `TokenTree<'_, Rule>: Iterator`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `Rule: YggdrasilRule`
[INFO] [stdout]            `Rule: YggdrasilRule`
[INFO] [stdout]            which is required by `TokenTree<'_, Rule>: Iterator`
[INFO] [stdout]            `TokenTree<'_, Rule>: Iterator`
[INFO] [stdout]            which is required by `&mut TokenTree<'_, Rule>: Iterator`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]   --> src/lib.rs:57:1
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 6 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/iterators/token_pair/mod.rs - iterators::token_pair::TokenPair<'i,R>::get_input (line 130) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:145:11
[INFO] [stdout]     |
[INFO] [stdout] 145 |     state.rule(Rule::ab, |s| s.match_string("ab", false))
[INFO] [stdout]     |           ^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:136:1
[INFO] [stdout]     |
[INFO] [stdout] 136 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State::<'i, R>::rule`
[INFO] [stdout]    --> src/parser_state.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State::<'i, R>::rule`
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn rule<F>(mut self: Box<Self>, rule: R, f: F) -> Either<Box<Self>>
[INFO] [stdout]     |            ---- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:143:12
[INFO] [stdout]     |
[INFO] [stdout] 143 |   let pair = yggdrasil_rt::state(input, |state| {
[INFO] [stdout]     |  ____________^
[INFO] [stdout] 144 | |     // generating Token pair with Rule::ab ...
[INFO] [stdout] 145 | |     state.rule(Rule::ab, |s| s.match_string("ab", false))
[INFO] [stdout] 146 | | })
[INFO] [stdout]     | |__^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:136:1
[INFO] [stdout]     |
[INFO] [stdout] 136 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `state`
[INFO] [stdout]    --> src/parser_state.rs:79:8
[INFO] [stdout]     |
[INFO] [stdout]  76 | pub fn state<'i, R, F>(input: &'i str, f: F) -> Result<TokenTree<'i, R>, YggdrasilError<R>>
[INFO] [stdout]     |        ----- required by a bound in this function
[INFO] [stdout] ...
[INFO] [stdout]  79 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `state`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `match_string` exists for struct `Box<State<'_, Rule>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:145:32
[INFO] [stdout]     |
[INFO] [stdout] 136 | enum Rule {
[INFO] [stdout]     | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 145 |     state.rule(Rule::ab, |s| s.match_string("ab", false))
[INFO] [stdout]     |                                ^^^^^^^^^^^^ method cannot be called on `Box<State<'_, Rule>>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:145:27
[INFO] [stdout]     |
[INFO] [stdout] 145 |     state.rule(Rule::ab, |s| s.match_string("ab", false))
[INFO] [stdout]     |                           ^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:136:1
[INFO] [stdout]     |
[INFO] [stdout] 136 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `next` exists for struct `TokenTree<'_, Rule>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:148:2
[INFO] [stdout]     |
[INFO] [stdout] 136 |   enum Rule {
[INFO] [stdout]     |   --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 143 |   let pair = yggdrasil_rt::state(input, |state| {
[INFO] [stdout]     |  ____________-
[INFO] [stdout] 144 | |     // generating Token pair with Rule::ab ...
[INFO] [stdout] 145 | |     state.rule(Rule::ab, |s| s.match_string("ab", false))
[INFO] [stdout] 146 | | })
[INFO] [stdout] 147 | | .unwrap()
[INFO] [stdout] 148 | | .next()
[INFO] [stdout]     | |_-^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/iterators/token_tree/mod.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 |   pub struct TokenTree<'i, R> {
[INFO] [stdout]     |   --------------------------- doesn't satisfy `TokenTree<'_, Rule>: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout]             which is required by `TokenTree<'_, Rule>: Iterator`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/iterators/token_tree/mod.rs - iterators::token_tree::TokenTree<'i,R>::flatten (line 150) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:164:11
[INFO] [stdout]     |
[INFO] [stdout] 164 |     state.rule(Rule::a, |state| {
[INFO] [stdout]     |           ^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:156:1
[INFO] [stdout]     |
[INFO] [stdout] 156 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State::<'i, R>::rule`
[INFO] [stdout]    --> src/parser_state.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State::<'i, R>::rule`
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn rule<F>(mut self: Box<Self>, rule: R, f: F) -> Either<Box<Self>>
[INFO] [stdout]     |            ---- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:162:13
[INFO] [stdout]     |
[INFO] [stdout] 162 |   let pairs = yggdrasil_rt::state(input, |state| {
[INFO] [stdout]     |  _____________^
[INFO] [stdout] 163 | |     // generating nested Token pair with Rule::b inside Rule::a
[INFO] [stdout] 164 | |     state.rule(Rule::a, |state| {
[INFO] [stdout] 165 | |         state.rule(Rule::b, |s| Ok(s))
[INFO] [stdout] 166 | |     })
[INFO] [stdout] 167 | | })
[INFO] [stdout]     | |__^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:156:1
[INFO] [stdout]     |
[INFO] [stdout] 156 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `state`
[INFO] [stdout]    --> src/parser_state.rs:79:8
[INFO] [stdout]     |
[INFO] [stdout]  76 | pub fn state<'i, R, F>(input: &'i str, f: F) -> Result<TokenTree<'i, R>, YggdrasilError<R>>
[INFO] [stdout]     |        ----- required by a bound in this function
[INFO] [stdout] ...
[INFO] [stdout]  79 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `state`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `rule` exists for struct `Box<State<'_, Rule>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:165:15
[INFO] [stdout]     |
[INFO] [stdout] 156 | enum Rule {
[INFO] [stdout]     | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 165 |         state.rule(Rule::b, |s| Ok(s))
[INFO] [stdout]     |               ^^^^ method cannot be called on `Box<State<'_, Rule>>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:164:26
[INFO] [stdout]     |
[INFO] [stdout] 164 |     state.rule(Rule::a, |state| {
[INFO] [stdout]     |                          ^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:156:1
[INFO] [stdout]     |
[INFO] [stdout] 156 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `flatten` exists for struct `TokenTree<'_, Rule>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:169:28
[INFO] [stdout]     |
[INFO] [stdout] 156 | enum Rule {
[INFO] [stdout]     | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 169 | let tokens: Vec<_> = pairs.flatten().tokens().collect();
[INFO] [stdout]     |                            ^^^^^^^ method cannot be called on `TokenTree<'_, Rule>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/iterators/token_tree/mod.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 | pub struct TokenTree<'i, R> {
[INFO] [stdout]     | --------------------------- doesn't satisfy `TokenTree<'_, Rule>: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout]             which is required by `TokenTree<'_, Rule>: Iterator`
[INFO] [stdout]             `TokenTree<'_, Rule>: Iterator`
[INFO] [stdout]             which is required by `&mut TokenTree<'_, Rule>: Iterator`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/iterators/token_pair/mod.rs - iterators::token_pair::TokenPair<'i,R>::get_span (line 161) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:174:11
[INFO] [stdout]     |
[INFO] [stdout] 174 |     state.rule(Rule::ab, |s| s.match_string("ab", false))
[INFO] [stdout]     |           ^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:167:1
[INFO] [stdout]     |
[INFO] [stdout] 167 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State::<'i, R>::rule`
[INFO] [stdout]    --> src/parser_state.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State::<'i, R>::rule`
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn rule<F>(mut self: Box<Self>, rule: R, f: F) -> Either<Box<Self>>
[INFO] [stdout]     |            ---- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:172:12
[INFO] [stdout]     |
[INFO] [stdout] 172 |   let pair = yggdrasil_rt::state(input, |state| {
[INFO] [stdout]     |  ____________^
[INFO] [stdout] 173 | |     // generating Token pair with Rule::ab ...
[INFO] [stdout] 174 | |     state.rule(Rule::ab, |s| s.match_string("ab", false))
[INFO] [stdout] 175 | | })
[INFO] [stdout]     | |__^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:167:1
[INFO] [stdout]     |
[INFO] [stdout] 167 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `state`
[INFO] [stdout]    --> src/parser_state.rs:79:8
[INFO] [stdout]     |
[INFO] [stdout]  76 | pub fn state<'i, R, F>(input: &'i str, f: F) -> Result<TokenTree<'i, R>, YggdrasilError<R>>
[INFO] [stdout]     |        ----- required by a bound in this function
[INFO] [stdout] ...
[INFO] [stdout]  79 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `state`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `match_string` exists for struct `Box<State<'_, Rule>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:174:32
[INFO] [stdout]     |
[INFO] [stdout] 167 | enum Rule {
[INFO] [stdout]     | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 174 |     state.rule(Rule::ab, |s| s.match_string("ab", false))
[INFO] [stdout]     |                                ^^^^^^^^^^^^ method cannot be called on `Box<State<'_, Rule>>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:174:27
[INFO] [stdout]     |
[INFO] [stdout] 174 |     state.rule(Rule::ab, |s| s.match_string("ab", false))
[INFO] [stdout]     |                           ^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:167:1
[INFO] [stdout]     |
[INFO] [stdout] 167 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `next` exists for struct `TokenTree<'_, Rule>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:177:2
[INFO] [stdout]     |
[INFO] [stdout] 167 |   enum Rule {
[INFO] [stdout]     |   --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 172 |   let pair = yggdrasil_rt::state(input, |state| {
[INFO] [stdout]     |  ____________-
[INFO] [stdout] 173 | |     // generating Token pair with Rule::ab ...
[INFO] [stdout] 174 | |     state.rule(Rule::ab, |s| s.match_string("ab", false))
[INFO] [stdout] 175 | | })
[INFO] [stdout] 176 | | .unwrap()
[INFO] [stdout] 177 | | .next()
[INFO] [stdout]     | |_-^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/iterators/token_tree/mod.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 |   pub struct TokenTree<'i, R> {
[INFO] [stdout]     |   --------------------------- doesn't satisfy `TokenTree<'_, Rule>: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout]             which is required by `TokenTree<'_, Rule>: Iterator`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/iterators/token_tree/mod.rs - iterators::token_tree::TokenTree<'i,R>::concat (line 121) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:135:11
[INFO] [stdout]     |
[INFO] [stdout] 135 |     state.rule(Rule::a, |s| s.match_string("a")).and_then(|s| s.skip(1))
[INFO] [stdout]     |           ^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:127:1
[INFO] [stdout]     |
[INFO] [stdout] 127 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State::<'i, R>::rule`
[INFO] [stdout]    --> src/parser_state.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State::<'i, R>::rule`
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn rule<F>(mut self: Box<Self>, rule: R, f: F) -> Either<Box<Self>>
[INFO] [stdout]     |            ---- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:133:13
[INFO] [stdout]     |
[INFO] [stdout] 133 |   let pairs = yggdrasil_rt::state(input, |state| {
[INFO] [stdout]     |  _____________^
[INFO] [stdout] 134 | |     // generating Token pairs with Rule::a and Rule::b ...
[INFO] [stdout] 135 | |     state.rule(Rule::a, |s| s.match_string("a")).and_then(|s| s.skip(1))
[INFO] [stdout] 136 | |         .and_then(|s| s.rule(Rule::b, |s| s.match_string("b")))
[INFO] [stdout] 137 | | })
[INFO] [stdout]     | |__^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:127:1
[INFO] [stdout]     |
[INFO] [stdout] 127 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `state`
[INFO] [stdout]    --> src/parser_state.rs:79:8
[INFO] [stdout]     |
[INFO] [stdout]  76 | pub fn state<'i, R, F>(input: &'i str, f: F) -> Result<TokenTree<'i, R>, YggdrasilError<R>>
[INFO] [stdout]     |        ----- required by a bound in this function
[INFO] [stdout] ...
[INFO] [stdout]  79 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `state`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `match_string` exists for struct `Box<State<'_, Rule>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:135:31
[INFO] [stdout]     |
[INFO] [stdout] 127 | enum Rule {
[INFO] [stdout]     | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 135 |     state.rule(Rule::a, |s| s.match_string("a")).and_then(|s| s.skip(1))
[INFO] [stdout]     |                               ^^^^^^^^^^^^ method cannot be called on `Box<State<'_, Rule>>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:135:26
[INFO] [stdout]     |
[INFO] [stdout] 135 |     state.rule(Rule::a, |s| s.match_string("a")).and_then(|s| s.skip(1))
[INFO] [stdout]     |                          ^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:127:1
[INFO] [stdout]     |
[INFO] [stdout] 127 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:135:5
[INFO] [stdout]     |
[INFO] [stdout] 135 |     state.rule(Rule::a, |s| s.match_string("a")).and_then(|s| s.skip(1))
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:127:1
[INFO] [stdout]     |
[INFO] [stdout] 127 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `skip` exists for struct `Box<State<'_, Rule>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:135:65
[INFO] [stdout]     |
[INFO] [stdout] 127 | enum Rule {
[INFO] [stdout]     | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 135 |     state.rule(Rule::a, |s| s.match_string("a")).and_then(|s| s.skip(1))
[INFO] [stdout]     |                                                                 ^^^^ method cannot be called on `Box<State<'_, Rule>>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/parser_state.rs:53:1
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     | ----------------------- doesn't satisfy `State<'_, Rule>: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout]             `State<'_, Rule>: Iterator`
[INFO] [stdout]             which is required by `Box<State<'_, Rule>>: Iterator`
[INFO] [stdout]             `Box<State<'_, Rule>>: Iterator`
[INFO] [stdout]             which is required by `&mut Box<State<'_, Rule>>: Iterator`
[INFO] [stdout]             `State<'_, Rule>: Iterator`
[INFO] [stdout]             which is required by `&mut State<'_, Rule>: Iterator`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:135:60
[INFO] [stdout]     |
[INFO] [stdout] 135 |     state.rule(Rule::a, |s| s.match_string("a")).and_then(|s| s.skip(1))
[INFO] [stdout]     |                                                            ^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:127:1
[INFO] [stdout]     |
[INFO] [stdout] 127 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:135:5
[INFO] [stdout]     |
[INFO] [stdout] 135 | /     state.rule(Rule::a, |s| s.match_string("a")).and_then(|s| s.skip(1))
[INFO] [stdout] 136 | |         .and_then(|s| s.rule(Rule::b, |s| s.match_string("b")))
[INFO] [stdout]     | |_______________________________________________________________^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:127:1
[INFO] [stdout]     |
[INFO] [stdout] 127 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:136:20
[INFO] [stdout]     |
[INFO] [stdout] 136 |         .and_then(|s| s.rule(Rule::b, |s| s.match_string("b")))
[INFO] [stdout]     |                    ^  - type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 136 |         .and_then(|s: /* Type */| s.rule(Rule::b, |s| s.match_string("b")))
[INFO] [stdout]     |                     ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:136:40
[INFO] [stdout]     |
[INFO] [stdout] 136 |         .and_then(|s| s.rule(Rule::b, |s| s.match_string("b")))
[INFO] [stdout]     |                                        ^  - type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 136 |         .and_then(|s| s.rule(Rule::b, |s: /* Type */| s.match_string("b")))
[INFO] [stdout]     |                                         ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `concat` exists for struct `TokenTree<'_, Rule>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:140:18
[INFO] [stdout]     |
[INFO] [stdout] 127 | enum Rule {
[INFO] [stdout]     | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 140 | assert_eq!(pairs.concat(), "ab");
[INFO] [stdout]     |                  ^^^^^^ method cannot be called on `TokenTree<'_, Rule>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 11 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0282, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/iterators/token_pair/mod.rs - iterators::token_pair::TokenPair<'i,R>::as_str (line 89) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:102:11
[INFO] [stdout]     |
[INFO] [stdout] 102 |     state.rule(Rule::ab, |s| s.match_string("ab", false))
[INFO] [stdout]     |           ^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:95:1
[INFO] [stdout]     |
[INFO] [stdout]  95 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State::<'i, R>::rule`
[INFO] [stdout]    --> src/parser_state.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State::<'i, R>::rule`
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn rule<F>(mut self: Box<Self>, rule: R, f: F) -> Either<Box<Self>>
[INFO] [stdout]     |            ---- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:100:12
[INFO] [stdout]     |
[INFO] [stdout] 100 |   let pair = yggdrasil_rt::state(input, |state| {
[INFO] [stdout]     |  ____________^
[INFO] [stdout] 101 | |     // generating Token pair with Rule::ab ...
[INFO] [stdout] 102 | |     state.rule(Rule::ab, |s| s.match_string("ab", false))
[INFO] [stdout] 103 | | })
[INFO] [stdout]     | |__^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:95:1
[INFO] [stdout]     |
[INFO] [stdout]  95 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `state`
[INFO] [stdout]    --> src/parser_state.rs:79:8
[INFO] [stdout]     |
[INFO] [stdout]  76 | pub fn state<'i, R, F>(input: &'i str, f: F) -> Result<TokenTree<'i, R>, YggdrasilError<R>>
[INFO] [stdout]     |        ----- required by a bound in this function
[INFO] [stdout] ...
[INFO] [stdout]  79 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `state`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `match_string` exists for struct `Box<State<'_, Rule>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:102:32
[INFO] [stdout]     |
[INFO] [stdout]  95 | enum Rule {
[INFO] [stdout]     | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 102 |     state.rule(Rule::ab, |s| s.match_string("ab", false))
[INFO] [stdout]     |                                ^^^^^^^^^^^^ method cannot be called on `Box<State<'_, Rule>>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:102:27
[INFO] [stdout]     |
[INFO] [stdout] 102 |     state.rule(Rule::ab, |s| s.match_string("ab", false))
[INFO] [stdout]     |                           ^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:95:1
[INFO] [stdout]     |
[INFO] [stdout]  95 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `next` exists for struct `TokenTree<'_, Rule>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/iterators/token_pair/mod.rs:105:2
[INFO] [stdout]     |
[INFO] [stdout]  95 |   enum Rule {
[INFO] [stdout]     |   --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 100 |   let pair = yggdrasil_rt::state(input, |state| {
[INFO] [stdout]     |  ____________-
[INFO] [stdout] 101 | |     // generating Token pair with Rule::ab ...
[INFO] [stdout] 102 | |     state.rule(Rule::ab, |s| s.match_string("ab", false))
[INFO] [stdout] 103 | | })
[INFO] [stdout] 104 | | .unwrap()
[INFO] [stdout] 105 | | .next()
[INFO] [stdout]     | |_-^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/iterators/token_tree/mod.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 |   pub struct TokenTree<'i, R> {
[INFO] [stdout]     |   --------------------------- doesn't satisfy `TokenTree<'_, Rule>: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout]             which is required by `TokenTree<'_, Rule>: Iterator`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/errors/mod.rs - errors::YggdrasilError<R>::with_path (line 138) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `ErrorKind`
[INFO] [stdout]    --> src/errors/mod.rs:152:5
[INFO] [stdout]     |
[INFO] [stdout] 152 |     ErrorKind::ParsingError {
[INFO] [stdout]     |     ^^^^^^^^^ use of undeclared type `ErrorKind`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this enum
[INFO] [stdout]     |
[INFO] [stdout] 137 + use std::io::ErrorKind;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `new_from_offset` found for struct `YggdrasilError<R>` in the current scope
[INFO] [stdout]    --> src/errors/mod.rs:151:17
[INFO] [stdout]     |
[INFO] [stdout] 151 | YggdrasilError::new_from_offset(
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^ function or associated item not found in `YggdrasilError<_>`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `YggdrasilError<_>` consider using one of the following associated functions:
[INFO] [stdout]       YggdrasilError::<R>::new_from_span
[INFO] [stdout]       YggdrasilError::<R>::invalid_node
[INFO] [stdout]       YggdrasilError::<R>::missing_rule
[INFO] [stdout]       YggdrasilError::<R>::custom_error
[INFO] [stdout]    --> src/errors/mod.rs:109:5
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub fn new_from_span(variant: YggdrasilErrorKind<R>, span: TextSpan<'_>) -> YggdrasilError<R> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn invalid_node(expect: R, span: TextSpan) -> YggdrasilError<R> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn missing_rule(expect: R, span: TextSpan) -> YggdrasilError<R> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn custom_error<S: Display>(message: S, span: TextSpan) -> YggdrasilError<R> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: there is an associated function `new_from_span` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 151 - YggdrasilError::new_from_offset(
[INFO] [stdout] 151 + YggdrasilError::new_from_span(
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0433, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/iterators/token_tree/mod.rs - iterators::token_tree::TokenTree<'i,R>::as_str (line 48) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:62:11
[INFO] [stdout]     |
[INFO] [stdout]  62 |     state.rule(Rule::a, |s| s.match_string("a", false)).and_then(|s| s.skip(1))
[INFO] [stdout]     |           ^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:54:1
[INFO] [stdout]     |
[INFO] [stdout]  54 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State::<'i, R>::rule`
[INFO] [stdout]    --> src/parser_state.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State::<'i, R>::rule`
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn rule<F>(mut self: Box<Self>, rule: R, f: F) -> Either<Box<Self>>
[INFO] [stdout]     |            ---- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]   --> src/iterators/token_tree/mod.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |   let pairs = state(input, |state| {
[INFO] [stdout]    |  _____________^
[INFO] [stdout] 61 | |     // generating Token pairs with Rule::a and Rule::b ...
[INFO] [stdout] 62 | |     state.rule(Rule::a, |s| s.match_string("a", false)).and_then(|s| s.skip(1))
[INFO] [stdout] 63 | |         .and_then(|s| s.rule(Rule::b, |s| s.match_string("b")))
[INFO] [stdout] 64 | | })
[INFO] [stdout]    | |__^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]   --> src/iterators/token_tree/mod.rs:54:1
[INFO] [stdout]    |
[INFO] [stdout] 54 | enum Rule {
[INFO] [stdout]    | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `state`
[INFO] [stdout]   --> src/parser_state.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub fn state<'i, R, F>(input: &'i str, f: F) -> Result<TokenTree<'i, R>, YggdrasilError<R>>
[INFO] [stdout]    |        ----- required by a bound in this function
[INFO] [stdout] ...
[INFO] [stdout] 79 |     R: YggdrasilRule,
[INFO] [stdout]    |        ^^^^^^^^^^^^^ required by this bound in `state`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `match_string` exists for struct `Box<State<'_, Rule>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/iterators/token_tree/mod.rs:62:31
[INFO] [stdout]    |
[INFO] [stdout] 54 | enum Rule {
[INFO] [stdout]    | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 62 |     state.rule(Rule::a, |s| s.match_string("a", false)).and_then(|s| s.skip(1))
[INFO] [stdout]    |                               ^^^^^^^^^^^^ method cannot be called on `Box<State<'_, Rule>>` due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `Rule: YggdrasilRule`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]   --> src/lib.rs:57:1
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]   --> src/iterators/token_tree/mod.rs:62:26
[INFO] [stdout]    |
[INFO] [stdout] 62 |     state.rule(Rule::a, |s| s.match_string("a", false)).and_then(|s| s.skip(1))
[INFO] [stdout]    |                          ^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]   --> src/iterators/token_tree/mod.rs:54:1
[INFO] [stdout]    |
[INFO] [stdout] 54 | enum Rule {
[INFO] [stdout]    | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]   --> src/parser_state.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct State<'i, R>
[INFO] [stdout]    |            ----- required by a bound in this struct
[INFO] [stdout] 54 | where
[INFO] [stdout] 55 |     R: YggdrasilRule,
[INFO] [stdout]    |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]   --> src/iterators/token_tree/mod.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     state.rule(Rule::a, |s| s.match_string("a", false)).and_then(|s| s.skip(1))
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]   --> src/iterators/token_tree/mod.rs:54:1
[INFO] [stdout]    |
[INFO] [stdout] 54 | enum Rule {
[INFO] [stdout]    | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]   --> src/parser_state.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct State<'i, R>
[INFO] [stdout]    |            ----- required by a bound in this struct
[INFO] [stdout] 54 | where
[INFO] [stdout] 55 |     R: YggdrasilRule,
[INFO] [stdout]    |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `skip` exists for struct `Box<State<'_, Rule>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/iterators/token_tree/mod.rs:62:72
[INFO] [stdout]    |
[INFO] [stdout] 54 | enum Rule {
[INFO] [stdout]    | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 62 |     state.rule(Rule::a, |s| s.match_string("a", false)).and_then(|s| s.skip(1))
[INFO] [stdout]    |                                                                        ^^^^ method cannot be called on `Box<State<'_, Rule>>` due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/parser_state.rs:53:1
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct State<'i, R>
[INFO] [stdout]    | ----------------------- doesn't satisfy `State<'_, Rule>: Iterator`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `Rule: YggdrasilRule`
[INFO] [stdout]            `State<'_, Rule>: Iterator`
[INFO] [stdout]            which is required by `Box<State<'_, Rule>>: Iterator`
[INFO] [stdout]            `Box<State<'_, Rule>>: Iterator`
[INFO] [stdout]            which is required by `&mut Box<State<'_, Rule>>: Iterator`
[INFO] [stdout]            `State<'_, Rule>: Iterator`
[INFO] [stdout]            which is required by `&mut State<'_, Rule>: Iterator`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]   --> src/lib.rs:57:1
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]   --> src/iterators/token_tree/mod.rs:62:67
[INFO] [stdout]    |
[INFO] [stdout] 62 |     state.rule(Rule::a, |s| s.match_string("a", false)).and_then(|s| s.skip(1))
[INFO] [stdout]    |                                                                   ^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]   --> src/iterators/token_tree/mod.rs:54:1
[INFO] [stdout]    |
[INFO] [stdout] 54 | enum Rule {
[INFO] [stdout]    | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]   --> src/parser_state.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct State<'i, R>
[INFO] [stdout]    |            ----- required by a bound in this struct
[INFO] [stdout] 54 | where
[INFO] [stdout] 55 |     R: YggdrasilRule,
[INFO] [stdout]    |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]   --> src/iterators/token_tree/mod.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 | /     state.rule(Rule::a, |s| s.match_string("a", false)).and_then(|s| s.skip(1))
[INFO] [stdout] 63 | |         .and_then(|s| s.rule(Rule::b, |s| s.match_string("b")))
[INFO] [stdout]    | |_______________________________________________________________^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]   --> src/iterators/token_tree/mod.rs:54:1
[INFO] [stdout]    |
[INFO] [stdout] 54 | enum Rule {
[INFO] [stdout]    | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]   --> src/parser_state.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct State<'i, R>
[INFO] [stdout]    |            ----- required by a bound in this struct
[INFO] [stdout] 54 | where
[INFO] [stdout] 55 |     R: YggdrasilRule,
[INFO] [stdout]    |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/iterators/token_tree/mod.rs:63:20
[INFO] [stdout]    |
[INFO] [stdout] 63 |         .and_then(|s| s.rule(Rule::b, |s| s.match_string("b")))
[INFO] [stdout]    |                    ^  - type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 63 |         .and_then(|s: /* Type */| s.rule(Rule::b, |s| s.match_string("b")))
[INFO] [stdout]    |                     ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/iterators/token_tree/mod.rs:63:40
[INFO] [stdout]    |
[INFO] [stdout] 63 |         .and_then(|s| s.rule(Rule::b, |s| s.match_string("b")))
[INFO] [stdout]    |                                        ^  - type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 63 |         .and_then(|s| s.rule(Rule::b, |s: /* Type */| s.match_string("b")))
[INFO] [stdout]    |                                         ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `as_str` exists for struct `TokenTree<'_, Rule>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/iterators/token_tree/mod.rs:67:18
[INFO] [stdout]    |
[INFO] [stdout] 54 | enum Rule {
[INFO] [stdout]    | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 67 | assert_eq!(pairs.as_str(), "a b");
[INFO] [stdout]    |                  ^^^^^^ method cannot be called on `TokenTree<'_, Rule>` due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `Rule: YggdrasilRule`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]   --> src/lib.rs:57:1
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 11 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0282, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/iterators/token_tree/mod.rs - iterators::token_tree::TokenTree<'i,R>::find_tagged (line 183) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:193:27
[INFO] [stdout]     |
[INFO] [stdout] 193 | fn mark_branch(state: Box<State<'_, Rule>>) -> Either<Box<State<'_, Rule>>> {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:188:1
[INFO] [stdout]     |
[INFO] [stdout] 188 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:200:16
[INFO] [stdout]     |
[INFO] [stdout] 200 |     state: Box<State<'a, Rule>>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:188:1
[INFO] [stdout]     |
[INFO] [stdout] 188 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:214:22
[INFO] [stdout]     |
[INFO] [stdout] 214 | fn number(state: Box<State<'_, Rule>>) -> Either<Box<State<'_, Rule>>> {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:188:1
[INFO] [stdout]     |
[INFO] [stdout] 188 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:219:13
[INFO] [stdout]     |
[INFO] [stdout] 219 | let pairs = state(input, mark_branch).unwrap();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:188:1
[INFO] [stdout]     |
[INFO] [stdout] 188 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `state`
[INFO] [stdout]    --> src/parser_state.rs:79:8
[INFO] [stdout]     |
[INFO] [stdout]  76 | pub fn state<'i, R, F>(input: &'i str, f: F) -> Result<TokenTree<'i, R>, YggdrasilError<R>>
[INFO] [stdout]     |        ----- required by a bound in this function
[INFO] [stdout] ...
[INFO] [stdout]  79 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `state`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:219:13
[INFO] [stdout]     |
[INFO] [stdout] 219 | let pairs = state(input, mark_branch).unwrap();
[INFO] [stdout]     |             ^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:188:1
[INFO] [stdout]     |
[INFO] [stdout] 188 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `find_tagged` exists for struct `TokenTree<'_, Rule>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:220:30
[INFO] [stdout]     |
[INFO] [stdout] 188 | enum Rule {
[INFO] [stdout]     | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 220 | let mut left_numbers = pairs.find_tagged("lhs");
[INFO] [stdout]     |                              ^^^^^^^^^^^ method cannot be called on `TokenTree<'_, Rule>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:194:10
[INFO] [stdout]     |
[INFO] [stdout] 194 |     expr(state, Rule::mul, "*")
[INFO] [stdout]     |          ^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:188:1
[INFO] [stdout]     |
[INFO] [stdout] 188 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:194:5
[INFO] [stdout]     |
[INFO] [stdout] 194 |     expr(state, Rule::mul, "*")
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:188:1
[INFO] [stdout]     |
[INFO] [stdout] 188 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `tag_node` exists for struct `Box<State<'_, Rule>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:195:33
[INFO] [stdout]     |
[INFO] [stdout] 188 | enum Rule {
[INFO] [stdout]     | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 195 |         .and_then(|state| state.tag_node("mul"))
[INFO] [stdout]     |                                 ^^^^^^^^ method cannot be called on `Box<State<'_, Rule>>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:195:20
[INFO] [stdout]     |
[INFO] [stdout] 195 |         .and_then(|state| state.tag_node("mul"))
[INFO] [stdout]     |                    ^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:188:1
[INFO] [stdout]     |
[INFO] [stdout] 188 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:194:5
[INFO] [stdout]     |
[INFO] [stdout] 194 | /     expr(state, Rule::mul, "*")
[INFO] [stdout] 195 | |         .and_then(|state| state.tag_node("mul"))
[INFO] [stdout] 196 | |         .or_else(|state| expr(state, Rule::add, "+"))
[INFO] [stdout]     | |_____________________________________________________^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:188:1
[INFO] [stdout]     |
[INFO] [stdout] 188 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:196:19
[INFO] [stdout]     |
[INFO] [stdout] 196 |         .or_else(|state| expr(state, Rule::add, "+"))
[INFO] [stdout]     |                   ^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:188:1
[INFO] [stdout]     |
[INFO] [stdout] 188 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:194:5
[INFO] [stdout]     |
[INFO] [stdout] 194 | /     expr(state, Rule::mul, "*")
[INFO] [stdout] 195 | |         .and_then(|state| state.tag_node("mul"))
[INFO] [stdout]     | |________________________________________________^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:188:1
[INFO] [stdout]     |
[INFO] [stdout] 188 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:194:5
[INFO] [stdout]     |
[INFO] [stdout] 194 | /     expr(state, Rule::mul, "*")
[INFO] [stdout] 195 | |         .and_then(|state| state.tag_node("mul"))
[INFO] [stdout] 196 | |         .or_else(|state| expr(state, Rule::add, "+"))
[INFO] [stdout] 197 | |         .and_then(|state| state.tag_node("add"))
[INFO] [stdout]     | |________________________________________________^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:188:1
[INFO] [stdout]     |
[INFO] [stdout] 188 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `tag_node` exists for struct `Box<State<'_, Rule>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:197:33
[INFO] [stdout]     |
[INFO] [stdout] 188 | enum Rule {
[INFO] [stdout]     | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 197 |         .and_then(|state| state.tag_node("add"))
[INFO] [stdout]     |                                 ^^^^^^^^ method cannot be called on `Box<State<'_, Rule>>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:197:20
[INFO] [stdout]     |
[INFO] [stdout] 197 |         .and_then(|state| state.tag_node("add"))
[INFO] [stdout]     |                    ^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:188:1
[INFO] [stdout]     |
[INFO] [stdout] 188 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `rule` exists for struct `Box<State<'a, Rule>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:204:11
[INFO] [stdout]     |
[INFO] [stdout] 188 | enum Rule {
[INFO] [stdout]     | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 204 |     state.rule(r, |state| {
[INFO] [stdout]     |     ------^^^^ method cannot be called on `Box<State<'a, Rule>>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:204:20
[INFO] [stdout]     |
[INFO] [stdout] 204 |     state.rule(r, |state| {
[INFO] [stdout]     |                    ^^^^^
[INFO] [stdout] 205 |         state.sequence(|state| {
[INFO] [stdout]     |         ----- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 204 |     state.rule(r, |state: /* Type */| {
[INFO] [stdout]     |                         ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:206:20
[INFO] [stdout]     |
[INFO] [stdout] 206 |             number(state)
[INFO] [stdout]     |                    ^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:188:1
[INFO] [stdout]     |
[INFO] [stdout] 188 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:205:25
[INFO] [stdout]     |
[INFO] [stdout] 205 |         state.sequence(|state| {
[INFO] [stdout]     |                         ^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:188:1
[INFO] [stdout]     |
[INFO] [stdout] 188 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:206:13
[INFO] [stdout]     |
[INFO] [stdout] 206 |             number(state)
[INFO] [stdout]     |             ^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:188:1
[INFO] [stdout]     |
[INFO] [stdout] 188 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `tag_node` exists for struct `Box<State<'_, Rule>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:207:41
[INFO] [stdout]     |
[INFO] [stdout] 188 | enum Rule {
[INFO] [stdout]     | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 207 |                 .and_then(|state| state.tag_node("lhs"))
[INFO] [stdout]     |                                         ^^^^^^^^ method cannot be called on `Box<State<'_, Rule>>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:207:28
[INFO] [stdout]     |
[INFO] [stdout] 207 |                 .and_then(|state| state.tag_node("lhs"))
[INFO] [stdout]     |                            ^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:188:1
[INFO] [stdout]     |
[INFO] [stdout] 188 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:206:13
[INFO] [stdout]     |
[INFO] [stdout] 206 | /             number(state)
[INFO] [stdout] 207 | |                 .and_then(|state| state.tag_node("lhs"))
[INFO] [stdout] 208 | |                 .and_then(|state| state.match_string(o))
[INFO] [stdout]     | |________________________________________________________^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:188:1
[INFO] [stdout]     |
[INFO] [stdout] 188 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:208:28
[INFO] [stdout]     |
[INFO] [stdout] 208 |                 .and_then(|state| state.match_string(o))
[INFO] [stdout]     |                            ^^^^^  ----- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 208 |                 .and_then(|state: /* Type */| state.match_string(o))
[INFO] [stdout]     |                                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:206:13
[INFO] [stdout]     |
[INFO] [stdout] 206 | /             number(state)
[INFO] [stdout] 207 | |                 .and_then(|state| state.tag_node("lhs"))
[INFO] [stdout] 208 | |                 .and_then(|state| state.match_string(o))
[INFO] [stdout] 209 | |                 .and_then(number)
[INFO] [stdout]     | |_________________________________^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:188:1
[INFO] [stdout]     |
[INFO] [stdout] 188 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:206:13
[INFO] [stdout]     |
[INFO] [stdout] 206 | /             number(state)
[INFO] [stdout] 207 | |                 .and_then(|state| state.tag_node("lhs"))
[INFO] [stdout] 208 | |                 .and_then(|state| state.match_string(o))
[INFO] [stdout] 209 | |                 .and_then(number)
[INFO] [stdout] 210 | |                 .and_then(|state| state.tag_node("rhs"))
[INFO] [stdout]     | |________________________________________________________^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:188:1
[INFO] [stdout]     |
[INFO] [stdout] 188 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `tag_node` exists for struct `Box<State<'_, Rule>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:210:41
[INFO] [stdout]     |
[INFO] [stdout] 188 | enum Rule {
[INFO] [stdout]     | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 210 |                 .and_then(|state| state.tag_node("rhs"))
[INFO] [stdout]     |                                         ^^^^^^^^ method cannot be called on `Box<State<'_, Rule>>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:210:28
[INFO] [stdout]     |
[INFO] [stdout] 210 |                 .and_then(|state| state.tag_node("rhs"))
[INFO] [stdout]     |                            ^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:188:1
[INFO] [stdout]     |
[INFO] [stdout] 188 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `rule` exists for struct `Box<State<'_, Rule>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:215:11
[INFO] [stdout]     |
[INFO] [stdout] 188 | enum Rule {
[INFO] [stdout]     | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 215 |     state.rule(Rule::number, |state| state.match_range('0'..'9'))
[INFO] [stdout]     |           ^^^^ method cannot be called on `Box<State<'_, Rule>>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:215:31
[INFO] [stdout]     |
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] [stdout] 215 |     state.rule(Rule::number, |state| state.match_range('0'..'9'))
[INFO] [stdout]     |                               ^^^^^  ----- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 215 |     state.rule(Rule::number, |state: /* Type */| state.match_range('0'..'9'))
[INFO] [stdout]     |                                    ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 31 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0282, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/parser_state.rs - parser_state::State<'i,R>::new (line 115) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `&str: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/parser_state.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout] 119 | let state: Box<State<&str>> = State::new(input);
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^ the trait `YggdrasilRule` is not implemented for `&str`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&str: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/parser_state.rs:119:31
[INFO] [stdout]     |
[INFO] [stdout] 119 | let state: Box<State<&str>> = State::new(input);
[INFO] [stdout]     |                               ^^^^^ the trait `YggdrasilRule` is not implemented for `&str`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&str: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/parser_state.rs:119:31
[INFO] [stdout]     |
[INFO] [stdout] 119 | let state: Box<State<&str>> = State::new(input);
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^ the trait `YggdrasilRule` is not implemented for `&str`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `State::<'i, R>::new`
[INFO] [stdout]    --> src/parser_state.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State::<'i, R>::new`
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn new(input: &'i str) -> Box<Self> {
[INFO] [stdout]     |            --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/parser_state.rs - parser_state::State<'i,R>::end_of_input (line 687) stdout ----
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/parser_state.rs:701:15
[INFO] [stdout]     |
[INFO] [stdout] 701 | state = state.match_string("ab").unwrap();
[INFO] [stdout]     |               ^^^^^^^^^^^^------ argument #2 of type `bool` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/parser_state.rs:537:12
[INFO] [stdout]     |
[INFO] [stdout] 537 |     pub fn match_string(mut self: Box<Self>, string: &str, insensitive: bool) -> Either<Box<Self>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 701 | state = state.match_string("ab", /* bool */).unwrap();
[INFO] [stdout]     |                                ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0061`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/iterators/token_tree/mod.rs - iterators::token_tree::TokenTree<'i,R>::tokens (line 232) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:245:11
[INFO] [stdout]     |
[INFO] [stdout] 245 |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout]     |           ^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:238:1
[INFO] [stdout]     |
[INFO] [stdout] 238 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State::<'i, R>::rule`
[INFO] [stdout]    --> src/parser_state.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State::<'i, R>::rule`
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn rule<F>(mut self: Box<Self>, rule: R, f: F) -> Either<Box<Self>>
[INFO] [stdout]     |            ---- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:243:13
[INFO] [stdout]     |
[INFO] [stdout] 243 |   let pairs = yggdrasil_rt::state(input, |state| {
[INFO] [stdout]     |  _____________^
[INFO] [stdout] 244 | |     // generating Token pair with Rule::a ...
[INFO] [stdout] 245 | |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout] 246 | | })
[INFO] [stdout]     | |__^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:238:1
[INFO] [stdout]     |
[INFO] [stdout] 238 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `state`
[INFO] [stdout]    --> src/parser_state.rs:79:8
[INFO] [stdout]     |
[INFO] [stdout]  76 | pub fn state<'i, R, F>(input: &'i str, f: F) -> Result<TokenTree<'i, R>, YggdrasilError<R>>
[INFO] [stdout]     |        ----- required by a bound in this function
[INFO] [stdout] ...
[INFO] [stdout]  79 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `state`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:245:26
[INFO] [stdout]     |
[INFO] [stdout] 245 |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout]     |                          ^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:238:1
[INFO] [stdout]     |
[INFO] [stdout] 238 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:245:29
[INFO] [stdout]     |
[INFO] [stdout] 245 |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout]     |                             ^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:238:1
[INFO] [stdout]     |
[INFO] [stdout] 238 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:245:29
[INFO] [stdout]     |
[INFO] [stdout] 245 |     state.rule(Rule::a, |s| Ok(s))
[INFO] [stdout]     |                             ^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:238:1
[INFO] [stdout]     |
[INFO] [stdout] 238 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `tokens` exists for struct `TokenTree<'_, Rule>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:248:28
[INFO] [stdout]     |
[INFO] [stdout] 238 | enum Rule {
[INFO] [stdout]     | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 248 | let tokens: Vec<_> = pairs.tokens().collect();
[INFO] [stdout]     |                            ^^^^^^ method cannot be called on `TokenTree<'_, Rule>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 6 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/parser_state.rs - parser_state::State<'i,R>::match_range (line 566) stdout ----
[INFO] [stdout] error[E0599]: no method named `pos` found for reference `&Position<'_>` in the current scope
[INFO] [stdout]    --> src/parser_state.rs:578:39
[INFO] [stdout]     |
[INFO] [stdout] 578 | assert_eq!(result.unwrap().position().pos(), 1);
[INFO] [stdout]     |                                       ^^^ method not found in `&Position<'_>`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `pos` found for reference `&Position<'_>` in the current scope
[INFO] [stdout]    --> src/parser_state.rs:583:43
[INFO] [stdout]     |
[INFO] [stdout] 583 | assert_eq!(result.unwrap_err().position().pos(), 0);
[INFO] [stdout]     |                                           ^^^ method not found in `&Position<'_>`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0599`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/parser_state.rs - parser_state::State<'i,R>::match_regex (line 596) stdout ----
[INFO] [stdout] error[E0407]: method `all_rules` is not a member of trait `YggdrasilRule`
[INFO] [stdout]    --> src/parser_state.rs:600:4
[INFO] [stdout]     |
[INFO] [stdout] 600 | /    fn all_rules() -> &'static [Self] {
[INFO] [stdout] 601 | |        &[]
[INFO] [stdout] 602 | |    }
[INFO] [stdout]     | |____^ not a member of trait `YggdrasilRule`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `pos` found for reference `&Position<'_>` in the current scope
[INFO] [stdout]    --> src/parser_state.rs:616:39
[INFO] [stdout]     |
[INFO] [stdout] 616 | assert_eq!(result.unwrap().position().pos(), 1);
[INFO] [stdout]     |                                       ^^^ method not found in `&Position<'_>`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `pos` found for reference `&Position<'_>` in the current scope
[INFO] [stdout]    --> src/parser_state.rs:621:43
[INFO] [stdout]     |
[INFO] [stdout] 621 | assert_eq!(result.unwrap_err().position().pos(), 0);
[INFO] [stdout]     |                                           ^^^ method not found in `&Position<'_>`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0407, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0407`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/parser_state.rs - parser_state::State<'i,R>::optional (line 444) stdout ----
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/parser_state.rs:456:35
[INFO] [stdout]     |
[INFO] [stdout] 456 | let result = state.optional(|s| s.match_string("ab"));
[INFO] [stdout]     |                                   ^^^^^^^^^^^^------ argument #2 of type `bool` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/parser_state.rs:537:12
[INFO] [stdout]     |
[INFO] [stdout] 537 |     pub fn match_string(mut self: Box<Self>, string: &str, insensitive: bool) -> Either<Box<Self>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 456 | let result = state.optional(|s| s.match_string("ab", /* bool */));
[INFO] [stdout]     |                                                    ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/parser_state.rs:460:35
[INFO] [stdout]     |
[INFO] [stdout] 460 | let result = state.optional(|s| s.match_string("ac"));
[INFO] [stdout]     |                                   ^^^^^^^^^^^^------ argument #2 of type `bool` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/parser_state.rs:537:12
[INFO] [stdout]     |
[INFO] [stdout] 537 |     pub fn match_string(mut self: Box<Self>, string: &str, insensitive: bool) -> Either<Box<Self>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 460 | let result = state.optional(|s| s.match_string("ac", /* bool */));
[INFO] [stdout]     |                                                    ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0061`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/parser_state.rs - parser_state::State<'i,R>::match_string (line 518) stdout ----
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/parser_state.rs:528:24
[INFO] [stdout]     |
[INFO] [stdout] 528 | let mut result = state.match_string("ab");
[INFO] [stdout]     |                        ^^^^^^^^^^^^------ argument #2 of type `bool` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/parser_state.rs:537:12
[INFO] [stdout]     |
[INFO] [stdout] 537 |     pub fn match_string(mut self: Box<Self>, string: &str, insensitive: bool) -> Either<Box<Self>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 528 | let mut result = state.match_string("ab", /* bool */);
[INFO] [stdout]     |                                         ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `pos` found for reference `&Position<'_>` in the current scope
[INFO] [stdout]    --> src/parser_state.rs:530:39
[INFO] [stdout]     |
[INFO] [stdout] 530 | assert_eq!(result.unwrap().position().pos(), 2);
[INFO] [stdout]     |                                       ^^^ method not found in `&Position<'_>`
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/parser_state.rs:533:16
[INFO] [stdout]     |
[INFO] [stdout] 533 | result = state.match_string("ac");
[INFO] [stdout]     |                ^^^^^^^^^^^^------ argument #2 of type `bool` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/parser_state.rs:537:12
[INFO] [stdout]     |
[INFO] [stdout] 537 |     pub fn match_string(mut self: Box<Self>, string: &str, insensitive: bool) -> Either<Box<Self>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 533 | result = state.match_string("ac", /* bool */);
[INFO] [stdout]     |                                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `pos` found for reference `&Position<'_>` in the current scope
[INFO] [stdout]    --> src/parser_state.rs:535:43
[INFO] [stdout]     |
[INFO] [stdout] 535 | assert_eq!(result.unwrap_err().position().pos(), 0);
[INFO] [stdout]     |                                           ^^^ method not found in `&Position<'_>`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/parser_state.rs - parser_state::State<'i,R>::match_char_if (line 478) stdout ----
[INFO] [stdout] error[E0407]: method `all_rules` is not a member of trait `YggdrasilRule`
[INFO] [stdout]    --> src/parser_state.rs:482:4
[INFO] [stdout]     |
[INFO] [stdout] 482 | /    fn all_rules() -> &'static [Self] {
[INFO] [stdout] 483 | |        &[]
[INFO] [stdout] 484 | |    }
[INFO] [stdout]     | |____^ not a member of trait `YggdrasilRule`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_char_by` found for struct `Box<State<'_, Rule>>` in the current scope
[INFO] [stdout]    --> src/parser_state.rs:496:20
[INFO] [stdout]     |
[INFO] [stdout] 496 | let result = state.match_char_by(|c| c.is_ascii());
[INFO] [stdout]     |                    ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `match_char_if` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 496 - let result = state.match_char_by(|c| c.is_ascii());
[INFO] [stdout] 496 + let result = state.match_char_if(|c| c.is_ascii());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/parser_state.rs:496:35
[INFO] [stdout]     |
[INFO] [stdout] 496 | let result = state.match_char_by(|c| c.is_ascii());
[INFO] [stdout]     |                                   ^  - type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 496 | let result = state.match_char_by(|c: /* Type */| c.is_ascii());
[INFO] [stdout]     |                                    ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_char_by` found for struct `Box<State<'_, Rule>>` in the current scope
[INFO] [stdout]    --> src/parser_state.rs:502:20
[INFO] [stdout]     |
[INFO] [stdout] 502 | let result = state.match_char_by(|c| c.is_ascii());
[INFO] [stdout]     |                    ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `match_char_if` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 502 - let result = state.match_char_by(|c| c.is_ascii());
[INFO] [stdout] 502 + let result = state.match_char_if(|c| c.is_ascii());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/parser_state.rs:502:35
[INFO] [stdout]     |
[INFO] [stdout] 502 | let result = state.match_char_by(|c| c.is_ascii());
[INFO] [stdout]     |                                   ^  - type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 502 | let result = state.match_char_by(|c: /* Type */| c.is_ascii());
[INFO] [stdout]     |                                    ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0282, E0407, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/parser_state.rs - parser_state::State<'i,R>::position (line 136) stdout ----
[INFO] [stdout] error[E0599]: no method named `pos` found for reference `&Position<'_>` in the current scope
[INFO] [stdout]    --> src/parser_state.rs:149:21
[INFO] [stdout]     |
[INFO] [stdout] 149 | assert_eq!(position.pos(), 0);
[INFO] [stdout]     |                     ^^^ method not found in `&Position<'_>`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0599`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/iterators/token_tree/mod.rs - iterators::token_tree::TokenTree<'i,R>::get_input (line 89) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:105:11
[INFO] [stdout]     |
[INFO] [stdout] 105 |     state.rule(Rule::a, |s| s.match_string("a")).and_then(|s| s.skip(1))
[INFO] [stdout]     |           ^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:95:1
[INFO] [stdout]     |
[INFO] [stdout]  95 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State::<'i, R>::rule`
[INFO] [stdout]    --> src/parser_state.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State::<'i, R>::rule`
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn rule<F>(mut self: Box<Self>, rule: R, f: F) -> Either<Box<Self>>
[INFO] [stdout]     |            ---- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 |   let pairs = yggdrasil_rt::state(input, |state| {
[INFO] [stdout]     |  _____________^
[INFO] [stdout] 104 | |     // generating Token pairs with Rule::a and Rule::b ...
[INFO] [stdout] 105 | |     state.rule(Rule::a, |s| s.match_string("a")).and_then(|s| s.skip(1))
[INFO] [stdout] 106 | |         .and_then(|s| s.rule(Rule::b, |s| s.match_string("b")))
[INFO] [stdout] 107 | | })
[INFO] [stdout]     | |__^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:95:1
[INFO] [stdout]     |
[INFO] [stdout]  95 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `state`
[INFO] [stdout]    --> src/parser_state.rs:79:8
[INFO] [stdout]     |
[INFO] [stdout]  76 | pub fn state<'i, R, F>(input: &'i str, f: F) -> Result<TokenTree<'i, R>, YggdrasilError<R>>
[INFO] [stdout]     |        ----- required by a bound in this function
[INFO] [stdout] ...
[INFO] [stdout]  79 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `state`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `match_string` exists for struct `Box<State<'_, Rule>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:105:31
[INFO] [stdout]     |
[INFO] [stdout]  95 | enum Rule {
[INFO] [stdout]     | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 105 |     state.rule(Rule::a, |s| s.match_string("a")).and_then(|s| s.skip(1))
[INFO] [stdout]     |                               ^^^^^^^^^^^^ method cannot be called on `Box<State<'_, Rule>>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:105:26
[INFO] [stdout]     |
[INFO] [stdout] 105 |     state.rule(Rule::a, |s| s.match_string("a")).and_then(|s| s.skip(1))
[INFO] [stdout]     |                          ^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:95:1
[INFO] [stdout]     |
[INFO] [stdout]  95 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 105 |     state.rule(Rule::a, |s| s.match_string("a")).and_then(|s| s.skip(1))
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:95:1
[INFO] [stdout]     |
[INFO] [stdout]  95 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `skip` exists for struct `Box<State<'_, Rule>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:105:65
[INFO] [stdout]     |
[INFO] [stdout]  95 | enum Rule {
[INFO] [stdout]     | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 105 |     state.rule(Rule::a, |s| s.match_string("a")).and_then(|s| s.skip(1))
[INFO] [stdout]     |                                                                 ^^^^ method cannot be called on `Box<State<'_, Rule>>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/parser_state.rs:53:1
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     | ----------------------- doesn't satisfy `State<'_, Rule>: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout]             `State<'_, Rule>: Iterator`
[INFO] [stdout]             which is required by `Box<State<'_, Rule>>: Iterator`
[INFO] [stdout]             `Box<State<'_, Rule>>: Iterator`
[INFO] [stdout]             which is required by `&mut Box<State<'_, Rule>>: Iterator`
[INFO] [stdout]             `State<'_, Rule>: Iterator`
[INFO] [stdout]             which is required by `&mut State<'_, Rule>: Iterator`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:105:60
[INFO] [stdout]     |
[INFO] [stdout] 105 |     state.rule(Rule::a, |s| s.match_string("a")).and_then(|s| s.skip(1))
[INFO] [stdout]     |                                                            ^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:95:1
[INFO] [stdout]     |
[INFO] [stdout]  95 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 105 | /     state.rule(Rule::a, |s| s.match_string("a")).and_then(|s| s.skip(1))
[INFO] [stdout] 106 | |         .and_then(|s| s.rule(Rule::b, |s| s.match_string("b")))
[INFO] [stdout]     | |_______________________________________________________________^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:95:1
[INFO] [stdout]     |
[INFO] [stdout]  95 | enum Rule {
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:106:20
[INFO] [stdout]     |
[INFO] [stdout] 106 |         .and_then(|s| s.rule(Rule::b, |s| s.match_string("b")))
[INFO] [stdout]     |                    ^  - type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 106 |         .and_then(|s: /* Type */| s.rule(Rule::b, |s| s.match_string("b")))
[INFO] [stdout]     |                     ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:106:40
[INFO] [stdout]     |
[INFO] [stdout] 106 |         .and_then(|s| s.rule(Rule::b, |s| s.match_string("b")))
[INFO] [stdout]     |                                        ^  - type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 106 |         .and_then(|s| s.rule(Rule::b, |s: /* Type */| s.match_string("b")))
[INFO] [stdout]     |                                         ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `as_str` exists for struct `TokenTree<'_, Rule>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:110:18
[INFO] [stdout]     |
[INFO] [stdout]  95 | enum Rule {
[INFO] [stdout]     | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 110 | assert_eq!(pairs.as_str(), "a b");
[INFO] [stdout]     |                  ^^^^^^ method cannot be called on `TokenTree<'_, Rule>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `get_input` exists for struct `TokenTree<'_, Rule>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/iterators/token_tree/mod.rs:111:25
[INFO] [stdout]     |
[INFO] [stdout]  95 | enum Rule {
[INFO] [stdout]     | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 111 | assert_eq!(input, pairs.get_input());
[INFO] [stdout]     |                         ^^^^^^^^^ method cannot be called on `TokenTree<'_, Rule>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 12 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0282, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/parser_state.rs - parser_state::State<'i,R>::rest_of_line (line 713) stdout ----
[INFO] [stdout] error[E0599]: no method named `pos` found for reference `&Position<'_>` in the current scope
[INFO] [stdout]    --> src/parser_state.rs:725:24
[INFO] [stdout]     |
[INFO] [stdout] 725 | assert!(out.position().pos() == 2);
[INFO] [stdout]     |                        ^^^ method not found in `&Position<'_>`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0599`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/parser_state.rs - parser_state::State<'i,R>::repeat (line 389) stdout ----
[INFO] [stdout] error[E0599]: no method named `match_string_exact` found for struct `Box<State<'_, Rule>>` in the current scope
[INFO] [stdout]    --> src/parser_state.rs:401:43
[INFO] [stdout]     |
[INFO] [stdout] 401 | let mut result = state.repeat(0..9, |s| s.match_string_exact("a"));
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `match_string` with a similar name, but with different arguments
[INFO] [stdout]    --> src/parser_state.rs:537:5
[INFO] [stdout]     |
[INFO] [stdout] 537 |     pub fn match_string(mut self: Box<Self>, string: &str, insensitive: bool) -> Either<Box<Self>> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `match_string_exact` found for struct `Box<State<'_, Rule>>` in the current scope
[INFO] [stdout]    --> src/parser_state.rs:407:43
[INFO] [stdout]     |
[INFO] [stdout] 407 | let mut result = state.repeat(0..9, |s| s.match_string_exact("a"));
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `match_string` with a similar name, but with different arguments
[INFO] [stdout]    --> src/parser_state.rs:537:5
[INFO] [stdout]     |
[INFO] [stdout] 537 |     pub fn match_string(mut self: Box<Self>, string: &str, insensitive: bool) -> Either<Box<Self>> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0599`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/parser_state.rs - parser_state::State<'i,R>::sequence (line 344) stdout ----
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/parser_state.rs:357:65
[INFO] [stdout]     |
[INFO] [stdout] 357 |         .sequence(|s| s.rule(Rule::a, |s| Ok(s)).and_then(|s| s.match_string("b")))
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^^----- argument #2 of type `bool` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/parser_state.rs:537:12
[INFO] [stdout]     |
[INFO] [stdout] 537 |     pub fn match_string(mut self: Box<Self>, string: &str, insensitive: bool) -> Either<Box<Self>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 357 |         .sequence(|s| s.rule(Rule::a, |s| Ok(s)).and_then(|s| s.match_string("b", /* bool */)))
[INFO] [stdout]     |                                                                                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0061`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/parser_state.rs - parser_state::State<'i,R>::skip (line 632) stdout ----
[INFO] [stdout] error[E0599]: no method named `pos` found for reference `&Position<'_>` in the current scope
[INFO] [stdout]    --> src/parser_state.rs:644:39
[INFO] [stdout]     |
[INFO] [stdout] 644 | assert_eq!(result.unwrap().position().pos(), 1);
[INFO] [stdout]     |                                       ^^^ method not found in `&Position<'_>`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `pos` found for reference `&Position<'_>` in the current scope
[INFO] [stdout]    --> src/parser_state.rs:649:43
[INFO] [stdout]     |
[INFO] [stdout] 649 | assert_eq!(result.unwrap_err().position().pos(), 0);
[INFO] [stdout]     |                                           ^^^ method not found in `&Position<'_>`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0599`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/parser_state.rs - parser_state::State<'i,R>::stack_match_peek (line 955) stdout ----
[INFO] [stdout] error[E0599]: no method named `pos` found for reference `&Position<'_>` in the current scope
[INFO] [stdout]    --> src/parser_state.rs:970:39
[INFO] [stdout]     |
[INFO] [stdout] 970 | assert_eq!(result.unwrap().position().pos(), 4);
[INFO] [stdout]     |                                       ^^^ method not found in `&Position<'_>`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0599`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/parser_state.rs - parser_state::State<'i,R>::stack_drop (line 1021) stdout ----
[INFO] [stdout] error[E0599]: no method named `pos` found for reference `&Position<'_>` in the current scope
[INFO] [stdout]     --> src/parser_state.rs:1035:39
[INFO] [stdout]      |
[INFO] [stdout] 1035 | assert_eq!(result.unwrap().position().pos(), 1);
[INFO] [stdout]      |                                       ^^^ method not found in `&Position<'_>`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0599`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/parser_state.rs - parser_state::State<'i,R>::start_of_input (line 660) stdout ----
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/parser_state.rs:674:15
[INFO] [stdout]     |
[INFO] [stdout] 674 | state = state.match_string("ab").unwrap();
[INFO] [stdout]     |               ^^^^^^^^^^^^------ argument #2 of type `bool` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/parser_state.rs:537:12
[INFO] [stdout]     |
[INFO] [stdout] 537 |     pub fn match_string(mut self: Box<Self>, string: &str, insensitive: bool) -> Either<Box<Self>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 674 | state = state.match_string("ab", /* bool */).unwrap();
[INFO] [stdout]     |                                ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0061`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/parser_state.rs - parser_state::State<'i,R>::stack_match_pop (line 980) stdout ----
[INFO] [stdout] error[E0599]: no method named `pos` found for reference `&Position<'_>` in the current scope
[INFO] [stdout]    --> src/parser_state.rs:995:39
[INFO] [stdout]     |
[INFO] [stdout] 995 | assert_eq!(result.unwrap().position().pos(), 4);
[INFO] [stdout]     |                                       ^^^ method not found in `&Position<'_>`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0599`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/parser_state.rs - parser_state::State<'i,R>::stack_peek (line 846) stdout ----
[INFO] [stdout] error[E0599]: no method named `pos` found for reference `&Position<'_>` in the current scope
[INFO] [stdout]    --> src/parser_state.rs:860:39
[INFO] [stdout]     |
[INFO] [stdout] 860 | assert_eq!(result.unwrap().position().pos(), 2);
[INFO] [stdout]     |                                       ^^^ method not found in `&Position<'_>`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0599`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/parser_state.rs - parser_state::state (line 70) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `(): YggdrasilRule` is not satisfied
[INFO] [stdout]   --> src/parser_state.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 74 | state::<(), _>(input, |s| Ok(s)).unwrap();
[INFO] [stdout]    |         ^^ the trait `YggdrasilRule` is not implemented for `()`
[INFO] [stdout]    |
[INFO] [stdout] note: required by a bound in `state`
[INFO] [stdout]   --> src/parser_state.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub fn state<'i, R, F>(input: &'i str, f: F) -> Result<TokenTree<'i, R>, YggdrasilError<R>>
[INFO] [stdout]    |        ----- required by a bound in this function
[INFO] [stdout] ...
[INFO] [stdout] 79 |     R: YggdrasilRule,
[INFO] [stdout]    |        ^^^^^^^^^^^^^ required by this bound in `state`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `(): YggdrasilRule` is not satisfied
[INFO] [stdout]   --> src/parser_state.rs:74:24
[INFO] [stdout]    |
[INFO] [stdout] 74 | state::<(), _>(input, |s| Ok(s)).unwrap();
[INFO] [stdout]    |                        ^ the trait `YggdrasilRule` is not implemented for `()`
[INFO] [stdout]    |
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]   --> src/parser_state.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct State<'i, R>
[INFO] [stdout]    |            ----- required by a bound in this struct
[INFO] [stdout] 54 | where
[INFO] [stdout] 55 |     R: YggdrasilRule,
[INFO] [stdout]    |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `(): YggdrasilRule` is not satisfied
[INFO] [stdout]   --> src/parser_state.rs:74:27
[INFO] [stdout]    |
[INFO] [stdout] 74 | state::<(), _>(input, |s| Ok(s)).unwrap();
[INFO] [stdout]    |                           ^^ the trait `YggdrasilRule` is not implemented for `()`
[INFO] [stdout]    |
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]   --> src/parser_state.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct State<'i, R>
[INFO] [stdout]    |            ----- required by a bound in this struct
[INFO] [stdout] 54 | where
[INFO] [stdout] 55 |     R: YggdrasilRule,
[INFO] [stdout]    |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `(): YggdrasilRule` is not satisfied
[INFO] [stdout]   --> src/parser_state.rs:74:27
[INFO] [stdout]    |
[INFO] [stdout] 74 | state::<(), _>(input, |s| Ok(s)).unwrap();
[INFO] [stdout]    |                           ^^^^^ the trait `YggdrasilRule` is not implemented for `()`
[INFO] [stdout]    |
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]   --> src/parser_state.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct State<'i, R>
[INFO] [stdout]    |            ----- required by a bound in this struct
[INFO] [stdout] 54 | where
[INFO] [stdout] 55 |     R: YggdrasilRule,
[INFO] [stdout]    |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/parser_state.rs - parser_state::State<'i,R>::stack_pop (line 872) stdout ----
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/parser_state.rs:883:36
[INFO] [stdout]     |
[INFO] [stdout] 883 |     state.stack_push(|state| state.match_string("a")).and_then(|state| state.stack_pop());
[INFO] [stdout]     |                                    ^^^^^^^^^^^^----- argument #2 of type `bool` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/parser_state.rs:537:12
[INFO] [stdout]     |
[INFO] [stdout] 537 |     pub fn match_string(mut self: Box<Self>, string: &str, insensitive: bool) -> Either<Box<Self>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 883 |     state.stack_push(|state| state.match_string("a", /* bool */)).and_then(|state| state.stack_pop());
[INFO] [stdout]     |                                                    ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `pos` found for reference `&Position<'_>` in the current scope
[INFO] [stdout]    --> src/parser_state.rs:885:39
[INFO] [stdout]     |
[INFO] [stdout] 885 | assert_eq!(result.unwrap().position().pos(), 2);
[INFO] [stdout]     |                                       ^^^ method not found in `&Position<'_>`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/parser_state.rs - parser_state::State<'i,R>::stack_push (line 811) stdout ----
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/parser_state.rs:821:49
[INFO] [stdout]     |
[INFO] [stdout] 821 | let mut result = state.stack_push(|state| state.match_string("a"));
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^----- argument #2 of type `bool` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/parser_state.rs:537:12
[INFO] [stdout]     |
[INFO] [stdout] 537 |     pub fn match_string(mut self: Box<Self>, string: &str, insensitive: bool) -> Either<Box<Self>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 821 | let mut result = state.stack_push(|state| state.match_string("a", /* bool */));
[INFO] [stdout]     |                                                                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `pos` found for reference `&Position<'_>` in the current scope
[INFO] [stdout]    --> src/parser_state.rs:823:39
[INFO] [stdout]     |
[INFO] [stdout] 823 | assert_eq!(result.unwrap().position().pos(), 1);
[INFO] [stdout]     |                                       ^^^ method not found in `&Position<'_>`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/parser_state.rs - parser_state::State<'i,R>::stack_match_peek_slice (line 896) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `MatchDir`
[INFO] [stdout]    --> src/parser_state.rs:912:61
[INFO] [stdout]     |
[INFO] [stdout] 912 |     .and_then(|state| state.stack_match_peek_slice(2, None, MatchDir::BottomToTop))
[INFO] [stdout]     |                                                             ^^^^^^^^ use of undeclared type `MatchDir`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `MatchDir`
[INFO] [stdout]    --> src/parser_state.rs:914:65
[INFO] [stdout]     |
[INFO] [stdout] 914 |     .and_then(|state| state.stack_match_peek_slice(1, Some(-1), MatchDir::TopToBottom));
[INFO] [stdout]     |                                                                 ^^^^^^^^ use of undeclared type `MatchDir`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `pos` found for reference `&Position<'_>` in the current scope
[INFO] [stdout]    --> src/parser_state.rs:916:39
[INFO] [stdout]     |
[INFO] [stdout] 916 | assert_eq!(result.unwrap().position().pos(), 10);
[INFO] [stdout]     |                                       ^^^ method not found in `&Position<'_>`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0433, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/parser_state.rs - parser_state::State<'i,R>::tag_node (line 245) stdout ----
[INFO] [stdout] error[E0407]: method `all_rules` is not a member of trait `YggdrasilRule`
[INFO] [stdout]    --> src/parser_state.rs:250:4
[INFO] [stdout]     |
[INFO] [stdout] 250 | /    fn all_rules() -> &'static [Self] {
[INFO] [stdout] 251 | |        &[]
[INFO] [stdout] 252 | |    }
[INFO] [stdout]     | |____^ not a member of trait `YggdrasilRule`
[INFO] [stdout] 
[INFO] [stdout] error[E0603]: module `iterators` is private
[INFO] [stdout]    --> src/parser_state.rs:248:19
[INFO] [stdout]     |
[INFO] [stdout] 248 | use yggdrasil_rt::iterators::TokenPair;
[INFO] [stdout]     |                   ^^^^^^^^^ private module
[INFO] [stdout]     |
[INFO] [stdout] note: the module `iterators` is defined here
[INFO] [stdout]    --> src/lib.rs:37:1
[INFO] [stdout]     |
[INFO] [stdout]  37 | mod iterators;
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: can't compare `&str` with `Option<&str>`
[INFO] [stdout]    --> src/parser_state.rs:279:63
[INFO] [stdout]     |
[INFO] [stdout] 279 | let find: Vec<TokenPair<Rule>> = pairs.filter(|s| s.get_tag() == Some("c")).collect();
[INFO] [stdout]     |                                                               ^^ no implementation for `&str == Option<&str>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PartialEq<Option<&str>>` is not implemented for `&str`
[INFO] [stdout]     = help: the following other types implement trait `PartialEq<Rhs>`:
[INFO] [stdout]               `&str` implements `PartialEq<ByteStr>`
[INFO] [stdout]               `&str` implements `PartialEq<ByteString>`
[INFO] [stdout]               `&str` implements `PartialEq<Cow<'_, str>>`
[INFO] [stdout]               `&str` implements `PartialEq<OsString>`
[INFO] [stdout]               `&str` implements `PartialEq<String>`
[INFO] [stdout]               `str` implements `PartialEq<ByteStr>`
[INFO] [stdout]               `str` implements `PartialEq<ByteString>`
[INFO] [stdout]               `str` implements `PartialEq<Cow<'_, str>>`
[INFO] [stdout]             and 6 others
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0407, E0603.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/position.rs - position::Position<'i>::line_column (line 116) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/position.rs:124:16
[INFO] [stdout]     |
[INFO] [stdout] 124 | let mut state: Box<yggdrasil_rt::State<'_, Rule>> = yggdrasil_rt::State::new(input);
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/position.rs:121:1
[INFO] [stdout]     |
[INFO] [stdout] 121 | enum Rule {}
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `match_string` exists for struct `Box<State<'_, Rule>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/position.rs:125:24
[INFO] [stdout]     |
[INFO] [stdout] 121 | enum Rule {}
[INFO] [stdout]     | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 125 | let mut result = state.match_string("\na");
[INFO] [stdout]     |                        ^^^^^^^^^^^^ method cannot be called on `Box<State<'_, Rule>>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/position.rs:124:53
[INFO] [stdout]     |
[INFO] [stdout] 124 | let mut state: Box<yggdrasil_rt::State<'_, Rule>> = yggdrasil_rt::State::new(input);
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/position.rs:121:1
[INFO] [stdout]     |
[INFO] [stdout] 121 | enum Rule {}
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/position.rs:124:53
[INFO] [stdout]     |
[INFO] [stdout] 124 | let mut state: Box<yggdrasil_rt::State<'_, Rule>> = yggdrasil_rt::State::new(input);
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/position.rs:121:1
[INFO] [stdout]     |
[INFO] [stdout] 121 | enum Rule {}
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State::<'i, R>::new`
[INFO] [stdout]    --> src/parser_state.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State::<'i, R>::new`
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn new(input: &'i str) -> Box<Self> {
[INFO] [stdout]     |            --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/position.rs - position::Position<'i>::line_of (line 178) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/position.rs:186:16
[INFO] [stdout]     |
[INFO] [stdout] 186 | let mut state: Box<yggdrasil_rt::State<'_, Rule>> = yggdrasil_rt::State::new(input);
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/position.rs:183:1
[INFO] [stdout]     |
[INFO] [stdout] 183 | enum Rule {}
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `match_string` exists for struct `Box<State<'_, Rule>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/position.rs:187:24
[INFO] [stdout]     |
[INFO] [stdout] 183 | enum Rule {}
[INFO] [stdout]     | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 187 | let mut result = state.match_string("\na");
[INFO] [stdout]     |                        ^^^^^^^^^^^^ method cannot be called on `Box<State<'_, Rule>>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/position.rs:186:53
[INFO] [stdout]     |
[INFO] [stdout] 186 | let mut state: Box<yggdrasil_rt::State<'_, Rule>> = yggdrasil_rt::State::new(input);
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/position.rs:183:1
[INFO] [stdout]     |
[INFO] [stdout] 183 | enum Rule {}
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/position.rs:186:53
[INFO] [stdout]     |
[INFO] [stdout] 186 | let mut state: Box<yggdrasil_rt::State<'_, Rule>> = yggdrasil_rt::State::new(input);
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/position.rs:183:1
[INFO] [stdout]     |
[INFO] [stdout] 183 | enum Rule {}
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State::<'i, R>::new`
[INFO] [stdout]    --> src/parser_state.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State::<'i, R>::new`
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn new(input: &'i str) -> Box<Self> {
[INFO] [stdout]     |            --- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/span.rs - span::TextSpan<'i>::as_str (line 206) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/span.rs:214:16
[INFO] [stdout]     |
[INFO] [stdout] 214 | let mut state: Box<yggdrasil_rt::State<'_, Rule>> =
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/span.rs:211:1
[INFO] [stdout]     |
[INFO] [stdout] 211 | enum Rule {}
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `position` exists for struct `Box<State<'_, Rule>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/span.rs:216:23
[INFO] [stdout]     |
[INFO] [stdout] 211 | enum Rule {}
[INFO] [stdout]     | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 216 | let start_pos = state.position().clone();
[INFO] [stdout]     |                       ^^^^^^^^ private field, not a method
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/parser_state.rs:53:1
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     | ----------------------- doesn't satisfy `State<'_, Rule>: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `State<'_, Rule>: Iterator`
[INFO] [stdout]             which is required by `Box<State<'_, Rule>>: Iterator`
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/span.rs:215:5
[INFO] [stdout]     |
[INFO] [stdout] 215 |     yggdrasil_rt::State::new(input).skip(1).unwrap();
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/span.rs:211:1
[INFO] [stdout]     |
[INFO] [stdout] 211 | enum Rule {}
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/span.rs:215:45
[INFO] [stdout]     |
[INFO] [stdout] 215 |     yggdrasil_rt::State::new(input).skip(1).unwrap();
[INFO] [stdout]     |                                             ^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/span.rs:211:1
[INFO] [stdout]     |
[INFO] [stdout] 211 | enum Rule {}
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] help: the trait `Debug` is implemented for `Box<T, A>`
[INFO] [stdout]    --> /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/alloc/src/boxed.rs:2163:0
[INFO] [stdout]     = note: required for `State<'_, Rule>` to implement `Debug`
[INFO] [stdout]     = note: 1 redundant requirement hidden
[INFO] [stdout]     = note: required for `Box<State<'_, Rule>>` to implement `Debug`
[INFO] [stdout] note: required by a bound in `Result::<T, E>::unwrap`
[INFO] [stdout]    --> /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/result.rs:1227:4
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/span.rs:215:37
[INFO] [stdout]     |
[INFO] [stdout] 215 |     yggdrasil_rt::State::new(input).skip(1).unwrap();
[INFO] [stdout]     |                                     ^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/span.rs:211:1
[INFO] [stdout]     |
[INFO] [stdout] 211 | enum Rule {}
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State::<'i, R>::skip`
[INFO] [stdout]    --> src/parser_state.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State::<'i, R>::skip`
[INFO] [stdout] ...
[INFO] [stdout] 651 |     pub fn skip(mut self: Box<Self>, n: usize) -> Either<Box<Self>> {
[INFO] [stdout]     |            ---- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/span.rs:215:5
[INFO] [stdout]     |
[INFO] [stdout] 215 |     yggdrasil_rt::State::new(input).skip(1).unwrap();
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/span.rs:211:1
[INFO] [stdout]     |
[INFO] [stdout] 211 | enum Rule {}
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `match_string` exists for struct `Box<State<'_, Rule>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/span.rs:217:15
[INFO] [stdout]     |
[INFO] [stdout] 211 | enum Rule {}
[INFO] [stdout]     | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 217 | state = state.match_string("b").unwrap();
[INFO] [stdout]     |               ^^^^^^^^^^^^ method cannot be called on `Box<State<'_, Rule>>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `position` exists for struct `Box<State<'_, Rule>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/span.rs:218:34
[INFO] [stdout]     |
[INFO] [stdout] 211 | enum Rule {}
[INFO] [stdout]     | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 218 | let span = start_pos.span(&state.position().clone());
[INFO] [stdout]     |                                  ^^^^^^^^ private field, not a method
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/parser_state.rs:53:1
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     | ----------------------- doesn't satisfy `State<'_, Rule>: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `State<'_, Rule>: Iterator`
[INFO] [stdout]             which is required by `Box<State<'_, Rule>>: Iterator`
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 8 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/span.rs - span::TextSpan<'i>::lines (line 251) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/span.rs:259:16
[INFO] [stdout]     |
[INFO] [stdout] 259 | let mut state: Box<yggdrasil_rt::State<'_, Rule>> =
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/span.rs:256:1
[INFO] [stdout]     |
[INFO] [stdout] 256 | enum Rule {}
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `position` exists for struct `Box<State<'_, Rule>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/span.rs:261:23
[INFO] [stdout]     |
[INFO] [stdout] 256 | enum Rule {}
[INFO] [stdout]     | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 261 | let start_pos = state.position().clone();
[INFO] [stdout]     |                       ^^^^^^^^ private field, not a method
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/parser_state.rs:53:1
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     | ----------------------- doesn't satisfy `State<'_, Rule>: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `State<'_, Rule>: Iterator`
[INFO] [stdout]             which is required by `Box<State<'_, Rule>>: Iterator`
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/span.rs:260:5
[INFO] [stdout]     |
[INFO] [stdout] 260 |     yggdrasil_rt::State::new(input).skip(2).unwrap();
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/span.rs:256:1
[INFO] [stdout]     |
[INFO] [stdout] 256 | enum Rule {}
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/span.rs:260:45
[INFO] [stdout]     |
[INFO] [stdout] 260 |     yggdrasil_rt::State::new(input).skip(2).unwrap();
[INFO] [stdout]     |                                             ^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/span.rs:256:1
[INFO] [stdout]     |
[INFO] [stdout] 256 | enum Rule {}
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] help: the trait `Debug` is implemented for `Box<T, A>`
[INFO] [stdout]    --> /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/alloc/src/boxed.rs:2163:0
[INFO] [stdout]     = note: required for `State<'_, Rule>` to implement `Debug`
[INFO] [stdout]     = note: 1 redundant requirement hidden
[INFO] [stdout]     = note: required for `Box<State<'_, Rule>>` to implement `Debug`
[INFO] [stdout] note: required by a bound in `Result::<T, E>::unwrap`
[INFO] [stdout]    --> /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/result.rs:1227:4
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/span.rs:260:37
[INFO] [stdout]     |
[INFO] [stdout] 260 |     yggdrasil_rt::State::new(input).skip(2).unwrap();
[INFO] [stdout]     |                                     ^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/span.rs:256:1
[INFO] [stdout]     |
[INFO] [stdout] 256 | enum Rule {}
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State::<'i, R>::skip`
[INFO] [stdout]    --> src/parser_state.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State::<'i, R>::skip`
[INFO] [stdout] ...
[INFO] [stdout] 651 |     pub fn skip(mut self: Box<Self>, n: usize) -> Either<Box<Self>> {
[INFO] [stdout]     |            ---- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/span.rs:260:5
[INFO] [stdout]     |
[INFO] [stdout] 260 |     yggdrasil_rt::State::new(input).skip(2).unwrap();
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/span.rs:256:1
[INFO] [stdout]     |
[INFO] [stdout] 256 | enum Rule {}
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `match_string` exists for struct `Box<State<'_, Rule>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/span.rs:262:15
[INFO] [stdout]     |
[INFO] [stdout] 256 | enum Rule {}
[INFO] [stdout]     | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 262 | state = state.match_string("b\nc").unwrap();
[INFO] [stdout]     |               ^^^^^^^^^^^^ method cannot be called on `Box<State<'_, Rule>>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `position` exists for struct `Box<State<'_, Rule>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/span.rs:263:34
[INFO] [stdout]     |
[INFO] [stdout] 256 | enum Rule {}
[INFO] [stdout]     | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 263 | let span = start_pos.span(&state.position().clone());
[INFO] [stdout]     |                                  ^^^^^^^^ private field, not a method
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/parser_state.rs:53:1
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     | ----------------------- doesn't satisfy `State<'_, Rule>: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `State<'_, Rule>: Iterator`
[INFO] [stdout]             which is required by `Box<State<'_, Rule>>: Iterator`
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 8 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/span.rs - span::TextSpan<'i>::lines_span (line 274) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/span.rs:283:16
[INFO] [stdout]     |
[INFO] [stdout] 283 | let mut state: Box<yggdrasil_rt::State<'_, Rule>> =
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/span.rs:280:1
[INFO] [stdout]     |
[INFO] [stdout] 280 | enum Rule {}
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `position` exists for struct `Box<State<'_, Rule>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/span.rs:285:23
[INFO] [stdout]     |
[INFO] [stdout] 280 | enum Rule {}
[INFO] [stdout]     | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 285 | let start_pos = state.position().clone();
[INFO] [stdout]     |                       ^^^^^^^^ private field, not a method
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/parser_state.rs:53:1
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     | ----------------------- doesn't satisfy `State<'_, Rule>: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `State<'_, Rule>: Iterator`
[INFO] [stdout]             which is required by `Box<State<'_, Rule>>: Iterator`
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/span.rs:284:5
[INFO] [stdout]     |
[INFO] [stdout] 284 |     yggdrasil_rt::State::new(input).skip(2).unwrap();
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/span.rs:280:1
[INFO] [stdout]     |
[INFO] [stdout] 280 | enum Rule {}
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/span.rs:284:45
[INFO] [stdout]     |
[INFO] [stdout] 284 |     yggdrasil_rt::State::new(input).skip(2).unwrap();
[INFO] [stdout]     |                                             ^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/span.rs:280:1
[INFO] [stdout]     |
[INFO] [stdout] 280 | enum Rule {}
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] help: the trait `Debug` is implemented for `Box<T, A>`
[INFO] [stdout]    --> /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/alloc/src/boxed.rs:2163:0
[INFO] [stdout]     = note: required for `State<'_, Rule>` to implement `Debug`
[INFO] [stdout]     = note: 1 redundant requirement hidden
[INFO] [stdout]     = note: required for `Box<State<'_, Rule>>` to implement `Debug`
[INFO] [stdout] note: required by a bound in `Result::<T, E>::unwrap`
[INFO] [stdout]    --> /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/result.rs:1227:4
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/span.rs:284:37
[INFO] [stdout]     |
[INFO] [stdout] 284 |     yggdrasil_rt::State::new(input).skip(2).unwrap();
[INFO] [stdout]     |                                     ^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/span.rs:280:1
[INFO] [stdout]     |
[INFO] [stdout] 280 | enum Rule {}
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State::<'i, R>::skip`
[INFO] [stdout]    --> src/parser_state.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State::<'i, R>::skip`
[INFO] [stdout] ...
[INFO] [stdout] 651 |     pub fn skip(mut self: Box<Self>, n: usize) -> Either<Box<Self>> {
[INFO] [stdout]     |            ---- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Rule: YggdrasilRule` is not satisfied
[INFO] [stdout]    --> src/span.rs:284:5
[INFO] [stdout]     |
[INFO] [stdout] 284 |     yggdrasil_rt::State::new(input).skip(2).unwrap();
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `YggdrasilRule` is not implemented for `Rule`
[INFO] [stdout]    --> src/span.rs:280:1
[INFO] [stdout]     |
[INFO] [stdout] 280 | enum Rule {}
[INFO] [stdout]     | ^^^^^^^^^
[INFO] [stdout] note: required by a bound in `State`
[INFO] [stdout]    --> src/parser_state.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     |            ----- required by a bound in this struct
[INFO] [stdout]  54 | where
[INFO] [stdout]  55 |     R: YggdrasilRule,
[INFO] [stdout]     |        ^^^^^^^^^^^^^ required by this bound in `State`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `match_string` exists for struct `Box<State<'_, Rule>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/span.rs:286:15
[INFO] [stdout]     |
[INFO] [stdout] 280 | enum Rule {}
[INFO] [stdout]     | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 286 | state = state.match_string("b\nc").unwrap();
[INFO] [stdout]     |               ^^^^^^^^^^^^ method cannot be called on `Box<State<'_, Rule>>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `position` exists for struct `Box<State<'_, Rule>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/span.rs:287:34
[INFO] [stdout]     |
[INFO] [stdout] 280 | enum Rule {}
[INFO] [stdout]     | --------- doesn't satisfy `Rule: YggdrasilRule`
[INFO] [stdout] ...
[INFO] [stdout] 287 | let span = start_pos.span(&state.position().clone());
[INFO] [stdout]     |                                  ^^^^^^^^ private field, not a method
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/parser_state.rs:53:1
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub struct State<'i, R>
[INFO] [stdout]     | ----------------------- doesn't satisfy `State<'_, Rule>: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `State<'_, Rule>: Iterator`
[INFO] [stdout]             which is required by `Box<State<'_, Rule>>: Iterator`
[INFO] [stdout]             `Rule: YggdrasilRule`
[INFO] [stdout] note: the trait `YggdrasilRule` must be implemented
[INFO] [stdout]    --> src/lib.rs:57:1
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait YggdrasilRule: Clone + Debug + Eq + Hash + Ord {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 8 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/errors/mod.rs - errors::YggdrasilError<R>::get_local_path (line 168)
[INFO] [stdout]     src/errors/mod.rs - errors::YggdrasilError<R>::new_from_span (line 85)
[INFO] [stdout]     src/errors/mod.rs - errors::YggdrasilError<R>::renamed_rules (line 206)
[INFO] [stdout]     src/errors/mod.rs - errors::YggdrasilError<R>::with_path (line 138)
[INFO] [stdout]     src/iterators/token_pair/mod.rs - iterators::token_pair::TokenPair<'i,R>::as_str (line 89)
[INFO] [stdout]     src/iterators/token_pair/mod.rs - iterators::token_pair::TokenPair<'i,R>::get_input (line 130)
[INFO] [stdout]     src/iterators/token_pair/mod.rs - iterators::token_pair::TokenPair<'i,R>::get_rule (line 57)
[INFO] [stdout]     src/iterators/token_pair/mod.rs - iterators::token_pair::TokenPair<'i,R>::get_span (line 161)
[INFO] [stdout]     src/iterators/token_pair/mod.rs - iterators::token_pair::TokenPair<'i,R>::has_child (line 326)
[INFO] [stdout]     src/iterators/token_pair/mod.rs - iterators::token_pair::TokenPair<'i,R>::into_inner (line 203)
[INFO] [stdout]     src/iterators/token_pair/mod.rs - iterators::token_pair::TokenPair<'i,R>::tokens (line 362)
[INFO] [stdout]     src/iterators/token_stream/mod.rs - iterators::token_stream::TokenStream<'i,R>::tokens (line 31)
[INFO] [stdout]     src/iterators/token_tree/mod.rs - iterators::token_tree::TokenTree<'i,R>::as_str (line 48)
[INFO] [stdout]     src/iterators/token_tree/mod.rs - iterators::token_tree::TokenTree<'i,R>::concat (line 121)
[INFO] [stdout]     src/iterators/token_tree/mod.rs - iterators::token_tree::TokenTree<'i,R>::find_tagged (line 183)
[INFO] [stdout]     src/iterators/token_tree/mod.rs - iterators::token_tree::TokenTree<'i,R>::flatten (line 150)
[INFO] [stdout]     src/iterators/token_tree/mod.rs - iterators::token_tree::TokenTree<'i,R>::get_input (line 89)
[INFO] [stdout]     src/iterators/token_tree/mod.rs - iterators::token_tree::TokenTree<'i,R>::tokens (line 232)
[INFO] [stdout]     src/parser_state.rs - parser_state::State<'i,R>::end_of_input (line 687)
[INFO] [stdout]     src/parser_state.rs - parser_state::State<'i,R>::match_char_if (line 478)
[INFO] [stdout]     src/parser_state.rs - parser_state::State<'i,R>::match_range (line 566)
[INFO] [stdout]     src/parser_state.rs - parser_state::State<'i,R>::match_regex (line 596)
[INFO] [stdout]     src/parser_state.rs - parser_state::State<'i,R>::match_string (line 518)
[INFO] [stdout]     src/parser_state.rs - parser_state::State<'i,R>::new (line 115)
[INFO] [stdout]     src/parser_state.rs - parser_state::State<'i,R>::optional (line 444)
[INFO] [stdout]     src/parser_state.rs - parser_state::State<'i,R>::position (line 136)
[INFO] [stdout]     src/parser_state.rs - parser_state::State<'i,R>::repeat (line 389)
[INFO] [stdout]     src/parser_state.rs - parser_state::State<'i,R>::rest_of_line (line 713)
[INFO] [stdout]     src/parser_state.rs - parser_state::State<'i,R>::sequence (line 344)
[INFO] [stdout]     src/parser_state.rs - parser_state::State<'i,R>::skip (line 632)
[INFO] [stdout]     src/parser_state.rs - parser_state::State<'i,R>::stack_drop (line 1021)
[INFO] [stdout]     src/parser_state.rs - parser_state::State<'i,R>::stack_match_peek (line 955)
[INFO] [stdout]     src/parser_state.rs - parser_state::State<'i,R>::stack_match_peek_slice (line 896)
[INFO] [stdout]     src/parser_state.rs - parser_state::State<'i,R>::stack_match_pop (line 980)
[INFO] [stdout]     src/parser_state.rs - parser_state::State<'i,R>::stack_peek (line 846)
[INFO] [stdout]     src/parser_state.rs - parser_state::State<'i,R>::stack_pop (line 872)
[INFO] [stdout]     src/parser_state.rs - parser_state::State<'i,R>::stack_push (line 811)
[INFO] [stdout]     src/parser_state.rs - parser_state::State<'i,R>::start_of_input (line 660)
[INFO] [stdout]     src/parser_state.rs - parser_state::State<'i,R>::tag_node (line 245)
[INFO] [stdout]     src/parser_state.rs - parser_state::state (line 70)
[INFO] [stdout]     src/position.rs - position::Position<'i>::line_column (line 116)
[INFO] [stdout]     src/position.rs - position::Position<'i>::line_of (line 178)
[INFO] [stdout]     src/span.rs - span::TextSpan<'i>::as_str (line 206)
[INFO] [stdout]     src/span.rs - span::TextSpan<'i>::lines (line 251)
[INFO] [stdout]     src/span.rs - span::TextSpan<'i>::lines_span (line 274)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 17 passed; 45 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.05s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "a9f7793beabd85b74775fadb317710ae6f66409a5760b38fddb7afd0f66deb74", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a9f7793beabd85b74775fadb317710ae6f66409a5760b38fddb7afd0f66deb74", kill_on_drop: false }`
[INFO] [stdout] a9f7793beabd85b74775fadb317710ae6f66409a5760b38fddb7afd0f66deb74
