[INFO] cloning repository https://github.com/IamagainstI/rtsp
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/IamagainstI/rtsp" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FIamagainstI%2Frtsp", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FIamagainstI%2Frtsp'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 713ef63a6f00c932b1d0a9a2dbb341b078deefa4
[INFO] building IamagainstI/rtsp against try#334963c956d25708feab489a3816ae63f639355d for pr-135216
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FIamagainstI%2Frtsp" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/IamagainstI/rtsp on toolchain 334963c956d25708feab489a3816ae63f639355d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+334963c956d25708feab489a3816ae63f639355d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/IamagainstI/rtsp
[INFO] finished tweaking git repo https://github.com/IamagainstI/rtsp
[INFO] tweaked toml for git repo https://github.com/IamagainstI/rtsp written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/IamagainstI/rtsp already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+334963c956d25708feab489a3816ae63f639355d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+334963c956d25708feab489a3816ae63f639355d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 94e4ce68285f2437e98896378d80af7c3c8c922bddafaecf9eaf21245585b733
[INFO] running `Command { std: "docker" "start" "-a" "94e4ce68285f2437e98896378d80af7c3c8c922bddafaecf9eaf21245585b733", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "94e4ce68285f2437e98896378d80af7c3c8c922bddafaecf9eaf21245585b733", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "94e4ce68285f2437e98896378d80af7c3c8c922bddafaecf9eaf21245585b733", kill_on_drop: false }`
[INFO] [stdout] 94e4ce68285f2437e98896378d80af7c3c8c922bddafaecf9eaf21245585b733
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+334963c956d25708feab489a3816ae63f639355d" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8c8277aacebb96fa09a086ccfa4fda390428758abcaaa676caf05c15d256cd16
[INFO] running `Command { std: "docker" "start" "-a" "8c8277aacebb96fa09a086ccfa4fda390428758abcaaa676caf05c15d256cd16", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v1.4.0
[INFO] [stderr]    Compiling memchr v2.7.4
[INFO] [stderr]    Compiling iana-time-zone v0.1.61
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling bytes v1.8.0
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling hex v0.4.3
[INFO] [stderr]    Compiling byteorder v1.5.0 (https://github.com/BurntSushi/byteorder#5a82625f)
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling abstractions v0.1.0 (/opt/rustwide/workdir/abstraction)
[INFO] [stdout] warning: unused variable: `fmtp`
[INFO] [stdout]   --> abstraction/src/media/video/h265_codec.rs:21:30
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn parse_fmtp(&mut self, fmtp: &[u8]) -> Result<(), std::io::Error> {
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_fmtp`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `size_length`, `index_length`, `index_delta_length`, `samples_frequency`, and `format` are never read
[INFO] [stdout]  --> abstraction/src/media/video/h265_codec.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct H265Codec {
[INFO] [stdout]   |            --------- fields in this struct
[INFO] [stdout] 4 |     size_length: i32,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 5 |     index_length: i32,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 6 |     index_delta_length: i32,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     
[INFO] [stdout] 8 |     samples_frequency: i32,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 9 |     format: i32,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling http v1.1.0
[INFO] [stderr]    Compiling http v1.1.0 (https://github.com/hyperium/http#0136ae7f)
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling chrono v0.4.38
[INFO] [stderr]    Compiling chrono v0.4.38 (https://github.com/chronotope/chrono#7974c606)
[INFO] [stderr]    Compiling regex-automata v0.4.8
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling timespan v0.2.1
[INFO] [stderr]    Compiling timespan v0.2.1 (https://github.com/fin-ger/rust-timespan/#f26e5a86)
[INFO] [stderr]    Compiling sdp v0.1.0 (/opt/rustwide/workdir/protocols/sdp)
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `timing`
[INFO] [stdout]    --> protocols/sdp/src/media_session.rs:113:48
[INFO] [stdout]     |
[INFO] [stdout] 113 |                     b"t" => session.set_timing(timing::Timing::parse(right)?),
[INFO] [stdout]     |                                                ^^^^^^ use of undeclared crate or module `timing`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 1   + use crate::time::timing::Timing;
[INFO] [stdout]     |
[INFO] [stdout] help: if you import `Timing`, refer to it directly
[INFO] [stdout]     |
[INFO] [stdout] 113 -                     b"t" => session.set_timing(timing::Timing::parse(right)?),
[INFO] [stdout] 113 +                     b"t" => session.set_timing(Timing::parse(right)?),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `elem` in this scope
[INFO] [stdout]   --> protocols/sdp/src/bandwidth.rs:12:62
[INFO] [stdout]    |
[INFO] [stdout] 12 |         if let Some((first, second)) = data.separate_trimmed(elem, TRIM_REF) {
[INFO] [stdout]    |                                                              ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `input` in this scope
[INFO] [stdout]   --> protocols/sdp/src/time/repeat_times.rs:27:32
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let parts: Vec<&str> = input.split_whitespace().collect();
[INFO] [stdout]    |                                ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: `let` expressions in this position are unstable
[INFO] [stdout]    --> protocols/sdp/src/media_session.rs:243:8
[INFO] [stdout]     |
[INFO] [stdout] 243 |     if let Some((_, next)) = data.separate_trimmed(TRIM, TRIM_REF) &&
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
[INFO] [stdout]     = help: add `#![feature(let_chains)]` to the crate attributes to enable
[INFO] [stdout]     = note: this compiler was built on 2025-01-07; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: `let` expressions in this position are unstable
[INFO] [stdout]    --> protocols/sdp/src/media_session.rs:244:8
[INFO] [stdout]     |
[INFO] [stdout] 244 |        let Some((_type, address)) = next.separate_trimmed(TRIM, TRIM_REF) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
[INFO] [stdout]     = help: add `#![feature(let_chains)]` to the crate attributes to enable
[INFO] [stdout]     = note: this compiler was built on 2025-01-07; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: `let` expressions in this position are unstable
[INFO] [stdout]   --> protocols/sdp/src/origin.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 |         if let Some((user_name, other)) = data.separate_trimmed(b" ", TRIM_REF) && 
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
[INFO] [stdout]    = help: add `#![feature(let_chains)]` to the crate attributes to enable
[INFO] [stdout]    = note: this compiler was built on 2025-01-07; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: `let` expressions in this position are unstable
[INFO] [stdout]   --> protocols/sdp/src/origin.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 |            let Some((id, other)) = other.separate_trimmed(b" ", TRIM_REF) && 
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
[INFO] [stdout]    = help: add `#![feature(let_chains)]` to the crate attributes to enable
[INFO] [stdout]    = note: this compiler was built on 2025-01-07; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: `let` expressions in this position are unstable
[INFO] [stdout]   --> protocols/sdp/src/origin.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 |            let Some((session_id, other)) = other.separate_trimmed(b" ", TRIM_REF) && 
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
[INFO] [stdout]    = help: add `#![feature(let_chains)]` to the crate attributes to enable
[INFO] [stdout]    = note: this compiler was built on 2025-01-07; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: `let` expressions in this position are unstable
[INFO] [stdout]   --> protocols/sdp/src/origin.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 |            let Some((session_version, other)) = other.separate_trimmed(b" ", TRIM_REF) &&
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
[INFO] [stdout]    = help: add `#![feature(let_chains)]` to the crate attributes to enable
[INFO] [stdout]    = note: this compiler was built on 2025-01-07; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: `let` expressions in this position are unstable
[INFO] [stdout]   --> protocols/sdp/src/origin.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 |            let Some((network_type, other)) = other.separate_trimmed(b" ", TRIM_REF) && 
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
[INFO] [stdout]    = help: add `#![feature(let_chains)]` to the crate attributes to enable
[INFO] [stdout]    = note: this compiler was built on 2025-01-07; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: `let` expressions in this position are unstable
[INFO] [stdout]   --> protocols/sdp/src/origin.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 |            let Some((address_type, network_address)) = other.separate_trimmed(b" ", TRIM_REF) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
[INFO] [stdout]    = help: add `#![feature(let_chains)]` to the crate attributes to enable
[INFO] [stdout]    = note: this compiler was built on 2025-01-07; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime`, `TimeZone`, and `Utc`
[INFO] [stdout]  --> protocols/sdp/src/media_session.rs:6:14
[INFO] [stdout]   |
[INFO] [stdout] 6 | use chrono::{DateTime, TimeZone, Utc};
[INFO] [stdout]   |              ^^^^^^^^  ^^^^^^^^  ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `timespan::DateTimeSpan`
[INFO] [stdout]   --> protocols/sdp/src/media_session.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use timespan::DateTimeSpan;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TRIM`
[INFO] [stdout]  --> protocols/sdp/src/bandwidth.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{TRIM, TRIM_REF};
[INFO] [stdout]   |             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> protocols/sdp/src/origin.rs:5:28
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{address_type::{self, AddressType}, network_type::NetworkType, TRIM_REF};
[INFO] [stdout]   |                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TimeDelta`
[INFO] [stdout]  --> protocols/sdp/src/time/timing.rs:3:25
[INFO] [stdout]   |
[INFO] [stdout] 3 |     DateTime, Duration, TimeDelta, TimeZone, Utc
[INFO] [stdout]   |                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DateTimeSpan`
[INFO] [stdout]  --> protocols/sdp/src/time/timing.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use timespan::{DateTimeSpan, Spanable};
[INFO] [stdout]   |                ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> protocols/sdp/src/time/timing.rs:43:16
[INFO] [stdout]    |
[INFO] [stdout] 43 |             Ok((Timing { 
[INFO] [stdout]    |                ^
[INFO] [stdout] ...
[INFO] [stdout] 46 |             }))
[INFO] [stdout]    |              ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 43 ~             Ok(Timing { 
[INFO] [stdout] 44 |                 start_time: Utc.timestamp_opt(start_time - SUBTRAHEND, 0), 
[INFO] [stdout] 45 |                 stop_time: (stop_time != 0).then(|| Utc.timestamp_opt(stop_time - SUBTRAHEND, 0))  
[INFO] [stdout] 46 ~             })
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `DateTime`
[INFO] [stdout]   --> protocols/sdp/src/time/timing.rs:53:34
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn start_time(&self) -> &DateTime {
[INFO] [stdout]    |                                  ^^^^^^^^ expected 1 generic argument
[INFO] [stdout]    |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `Tz`
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.38/src/datetime/mod.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct DateTime<Tz: TimeZone> {
[INFO] [stdout]    |            ^^^^^^^^ --
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn start_time(&self) -> &DateTime<Tz> {
[INFO] [stdout]    |                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> protocols/sdp/src/media_session.rs:104:21
[INFO] [stdout]     |
[INFO] [stdout] 103 |                 match *left {
[INFO] [stdout]     |                       ----- this expression has type `[u8]`
[INFO] [stdout] 104 |                     b"v" => session.set_protocol_version(std::str::from_utf8(right)?.parse()?),
[INFO] [stdout]     |                     ^^^^ expected `[u8]`, found `&[u8; 1]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> protocols/sdp/src/media_session.rs:105:21
[INFO] [stdout]     |
[INFO] [stdout] 103 |                 match *left {
[INFO] [stdout]     |                       ----- this expression has type `[u8]`
[INFO] [stdout] 104 |                     b"v" => session.set_protocol_version(std::str::from_utf8(right)?.parse()?),
[INFO] [stdout] 105 |                     b"o" => session.set_originator_of_session(Origin::parse(right)?),
[INFO] [stdout]     |                     ^^^^ expected `[u8]`, found `&[u8; 1]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> protocols/sdp/src/media_session.rs:106:21
[INFO] [stdout]     |
[INFO] [stdout] 103 |                 match *left {
[INFO] [stdout]     |                       ----- this expression has type `[u8]`
[INFO] [stdout] ...
[INFO] [stdout] 106 |                     b"s" => session.set_session_name(String::from_utf8_lossy(right).into_owned()),
[INFO] [stdout]     |                     ^^^^ expected `[u8]`, found `&[u8; 1]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> protocols/sdp/src/media_session.rs:107:21
[INFO] [stdout]     |
[INFO] [stdout] 103 |                 match *left {
[INFO] [stdout]     |                       ----- this expression has type `[u8]`
[INFO] [stdout] ...
[INFO] [stdout] 107 |                     b"i" => session.set_media_title(Some(String::from_utf8_lossy(right).into_owned())),
[INFO] [stdout]     |                     ^^^^ expected `[u8]`, found `&[u8; 1]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> protocols/sdp/src/media_session.rs:108:21
[INFO] [stdout]     |
[INFO] [stdout] 103 |                 match *left {
[INFO] [stdout]     |                       ----- this expression has type `[u8]`
[INFO] [stdout] ...
[INFO] [stdout] 108 |                     b"u" => session.set_uri_of_description(get_uri(right)?),
[INFO] [stdout]     |                     ^^^^ expected `[u8]`, found `&[u8; 1]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> protocols/sdp/src/media_session.rs:109:21
[INFO] [stdout]     |
[INFO] [stdout] 103 |                 match *left {
[INFO] [stdout]     |                       ----- this expression has type `[u8]`
[INFO] [stdout] ...
[INFO] [stdout] 109 |                     b"e" => session.set_email_address(Some(String::from_utf8_lossy(right).into_owned())),
[INFO] [stdout]     |                     ^^^^ expected `[u8]`, found `&[u8; 1]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> protocols/sdp/src/media_session.rs:110:21
[INFO] [stdout]     |
[INFO] [stdout] 103 |                 match *left {
[INFO] [stdout]     |                       ----- this expression has type `[u8]`
[INFO] [stdout] ...
[INFO] [stdout] 110 |                     b"p" => session.set_phone_number(Some(String::from_utf8_lossy(right).into_owned())),
[INFO] [stdout]     |                     ^^^^ expected `[u8]`, found `&[u8; 1]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> protocols/sdp/src/media_session.rs:111:21
[INFO] [stdout]     |
[INFO] [stdout] 103 |                 match *left {
[INFO] [stdout]     |                       ----- this expression has type `[u8]`
[INFO] [stdout] ...
[INFO] [stdout] 111 |                     b"c" => session.set_connection_address(get_connection_address(right)?),
[INFO] [stdout]     |                     ^^^^ expected `[u8]`, found `&[u8; 1]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> protocols/sdp/src/media_session.rs:112:21
[INFO] [stdout]     |
[INFO] [stdout] 103 |                 match *left {
[INFO] [stdout]     |                       ----- this expression has type `[u8]`
[INFO] [stdout] ...
[INFO] [stdout] 112 |                     b"b" => session.set_bandwidth(Bandwidth::parse(data)?),
[INFO] [stdout]     |                     ^^^^ expected `[u8]`, found `&[u8; 1]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> protocols/sdp/src/media_session.rs:113:21
[INFO] [stdout]     |
[INFO] [stdout] 103 |                 match *left {
[INFO] [stdout]     |                       ----- this expression has type `[u8]`
[INFO] [stdout] ...
[INFO] [stdout] 113 |                     b"t" => session.set_timing(timing::Timing::parse(right)?),
[INFO] [stdout]     |                     ^^^^ expected `[u8]`, found `&[u8; 1]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> protocols/sdp/src/media_session.rs:114:21
[INFO] [stdout]     |
[INFO] [stdout] 103 |                 match *left {
[INFO] [stdout]     |                       ----- this expression has type `[u8]`
[INFO] [stdout] ...
[INFO] [stdout] 114 |                     b"m" =>
[INFO] [stdout]     |                     ^^^^ expected `[u8]`, found `&[u8; 1]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> protocols/sdp/src/media_session.rs:119:21
[INFO] [stdout]     |
[INFO] [stdout] 103 |                 match *left {
[INFO] [stdout]     |                       ----- this expression has type `[u8]`
[INFO] [stdout] ...
[INFO] [stdout] 119 |                     b"a" =>
[INFO] [stdout]     |                     ^^^^ expected `[u8]`, found `&[u8; 1]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `std::io::Error`
[INFO] [stdout]    --> protocols/sdp/src/media_session.rs:104:84
[INFO] [stdout]     |
[INFO] [stdout] 104 |                     b"v" => session.set_protocol_version(std::str::from_utf8(right)?.parse()?),
[INFO] [stdout]     |                                                                                    ^ the trait `From<Utf8Error>` is not implemented for `std::io::Error`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]     = help: the following other types implement trait `From<T>`:
[INFO] [stdout]               `std::io::Error` implements `From<ErrorKind>`
[INFO] [stdout]               `std::io::Error` implements `From<IntoInnerError<W>>`
[INFO] [stdout]               `std::io::Error` implements `From<NulError>`
[INFO] [stdout]               `std::io::Error` implements `From<TryReserveError>`
[INFO] [stdout]     = note: required for `Result<MediaSession, std::io::Error>` to implement `FromResidual<Result<Infallible, Utf8Error>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `std::io::Error`
[INFO] [stdout]    --> protocols/sdp/src/media_session.rs:104:93
[INFO] [stdout]     |
[INFO] [stdout] 104 |                     b"v" => session.set_protocol_version(std::str::from_utf8(right)?.parse()?),
[INFO] [stdout]     |                                                                                             ^ the trait `From<ParseIntError>` is not implemented for `std::io::Error`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]     = help: the following other types implement trait `From<T>`:
[INFO] [stdout]               `std::io::Error` implements `From<ErrorKind>`
[INFO] [stdout]               `std::io::Error` implements `From<IntoInnerError<W>>`
[INFO] [stdout]               `std::io::Error` implements `From<NulError>`
[INFO] [stdout]               `std::io::Error` implements `From<TryReserveError>`
[INFO] [stdout]     = note: required for `Result<MediaSession, std::io::Error>` to implement `FromResidual<Result<Infallible, ParseIntError>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `std::io::Error`
[INFO] [stdout]    --> protocols/sdp/src/media_session.rs:235:44
[INFO] [stdout]     |
[INFO] [stdout] 234 | fn get_uri(data: &[u8]) -> Result<Uri, std::io::Error> {
[INFO] [stdout]     |                            --------------------------- expected `std::io::Error` because of this
[INFO] [stdout] 235 |     let uri_str = std::str::from_utf8(data)?;
[INFO] [stdout]     |                   -------------------------^ the trait `From<Utf8Error>` is not implemented for `std::io::Error`
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this can't be annotated with `?` because it has type `Result<_, Utf8Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]     = help: the following other types implement trait `From<T>`:
[INFO] [stdout]               `std::io::Error` implements `From<ErrorKind>`
[INFO] [stdout]               `std::io::Error` implements `From<IntoInnerError<W>>`
[INFO] [stdout]               `std::io::Error` implements `From<NulError>`
[INFO] [stdout]               `std::io::Error` implements `From<TryReserveError>`
[INFO] [stdout]     = note: required for `Result<Uri, std::io::Error>` to implement `FromResidual<Result<Infallible, Utf8Error>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]    --> protocols/sdp/src/media_session.rs:246:55
[INFO] [stdout]     |
[INFO] [stdout] 241 | fn get_connection_address(data: &[u8]) -> Result<IpAddr, std::io::Error> {
[INFO] [stdout]     | ------------------------------------------------------------------------ this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 246 |         let addr_type = AddressType::from_bytes(_type)?;
[INFO] [stdout]     |                                                       ^ use `.ok_or(...)?` to provide an error compatible with `Result<IpAddr, std::io::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<IpAddr, std::io::Error>`
[INFO] [stdout]     = help: the trait `FromResidual<Result<Infallible, E>>` is implemented for `Result<T, F>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `std::io::Error`
[INFO] [stdout]    --> protocols/sdp/src/media_session.rs:247:62
[INFO] [stdout]     |
[INFO] [stdout] 241 | fn get_connection_address(data: &[u8]) -> Result<IpAddr, std::io::Error> {
[INFO] [stdout]     |                                           ------------------------------ expected `std::io::Error` because of this
[INFO] [stdout] ...
[INFO] [stdout] 247 |         let connection_address = std::str::from_utf8(address)?;
[INFO] [stdout]     |                                  ----------------------------^ the trait `From<Utf8Error>` is not implemented for `std::io::Error`
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this can't be annotated with `?` because it has type `Result<_, Utf8Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]     = help: the following other types implement trait `From<T>`:
[INFO] [stdout]               `std::io::Error` implements `From<ErrorKind>`
[INFO] [stdout]               `std::io::Error` implements `From<IntoInnerError<W>>`
[INFO] [stdout]               `std::io::Error` implements `From<NulError>`
[INFO] [stdout]               `std::io::Error` implements `From<TryReserveError>`
[INFO] [stdout]     = note: required for `Result<IpAddr, std::io::Error>` to implement `FromResidual<Result<Infallible, Utf8Error>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `std::io::Error`
[INFO] [stdout]    --> protocols/sdp/src/media_session.rs:250:83
[INFO] [stdout]     |
[INFO] [stdout] 241 | fn get_connection_address(data: &[u8]) -> Result<IpAddr, std::io::Error> {
[INFO] [stdout]     |                                           ------------------------------ expected `std::io::Error` because of this
[INFO] [stdout] ...
[INFO] [stdout] 250 |             AddressType::Ipv4 => IpAddr::V4(Ipv4Addr::from_str(connection_address)?),
[INFO] [stdout]     |                                             --------------------------------------^ the trait `From<AddrParseError>` is not implemented for `std::io::Error`
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             this can't be annotated with `?` because it has type `Result<_, AddrParseError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]     = help: the following other types implement trait `From<T>`:
[INFO] [stdout]               `std::io::Error` implements `From<ErrorKind>`
[INFO] [stdout]               `std::io::Error` implements `From<IntoInnerError<W>>`
[INFO] [stdout]               `std::io::Error` implements `From<NulError>`
[INFO] [stdout]               `std::io::Error` implements `From<TryReserveError>`
[INFO] [stdout]     = note: required for `Result<IpAddr, std::io::Error>` to implement `FromResidual<Result<Infallible, AddrParseError>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `std::io::Error`
[INFO] [stdout]    --> protocols/sdp/src/media_session.rs:251:83
[INFO] [stdout]     |
[INFO] [stdout] 241 | fn get_connection_address(data: &[u8]) -> Result<IpAddr, std::io::Error> {
[INFO] [stdout]     |                                           ------------------------------ expected `std::io::Error` because of this
[INFO] [stdout] ...
[INFO] [stdout] 251 |             AddressType::Ipv6 => IpAddr::V4(Ipv4Addr::from_str(connection_address)?),
[INFO] [stdout]     |                                             --------------------------------------^ the trait `From<AddrParseError>` is not implemented for `std::io::Error`
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             this can't be annotated with `?` because it has type `Result<_, AddrParseError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]     = help: the following other types implement trait `From<T>`:
[INFO] [stdout]               `std::io::Error` implements `From<ErrorKind>`
[INFO] [stdout]               `std::io::Error` implements `From<IntoInnerError<W>>`
[INFO] [stdout]               `std::io::Error` implements `From<NulError>`
[INFO] [stdout]               `std::io::Error` implements `From<TryReserveError>`
[INFO] [stdout]     = note: required for `Result<IpAddr, std::io::Error>` to implement `FromResidual<Result<Infallible, AddrParseError>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `std::io::Error`
[INFO] [stdout]    --> protocols/sdp/src/media_session.rs:252:138
[INFO] [stdout]     |
[INFO] [stdout] 241 | ...ata: &[u8]) -> Result<IpAddr, std::io::Error> {
[INFO] [stdout]     |                   ------------------------------ expected `std::io::Error` because of this
[INFO] [stdout] ...
[INFO] [stdout] 252 | ...(std::io::Error::new(std::io::ErrorKind::InvalidData, format!("Incorrect format {}", std::str::from_utf8(data)?))),
[INFO] [stdout]     |                                                                                         -------------------------^ the trait `From<Utf8Error>` is not implemented for `std::io::Error`
[INFO] [stdout]     |                                                                                         |
[INFO] [stdout]     |                                                                                         this can't be annotated with `?` because it has type `Result<_, Utf8Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]     = help: the following other types implement trait `From<T>`:
[INFO] [stdout]               `std::io::Error` implements `From<ErrorKind>`
[INFO] [stdout]               `std::io::Error` implements `From<IntoInnerError<W>>`
[INFO] [stdout]               `std::io::Error` implements `From<NulError>`
[INFO] [stdout]               `std::io::Error` implements `From<TryReserveError>`
[INFO] [stdout]     = note: required for `Result<IpAddr, std::io::Error>` to implement `FromResidual<Result<Infallible, Utf8Error>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> protocols/sdp/src/media_session.rs:254:9
[INFO] [stdout]     |
[INFO] [stdout] 243 | /     if let Some((_, next)) = data.separate_trimmed(TRIM, TRIM_REF) &&
[INFO] [stdout] 244 | |        let Some((_type, address)) = next.separate_trimmed(TRIM, TRIM_REF) {
[INFO] [stdout] 245 | |         
[INFO] [stdout] 246 | |         let addr_type = AddressType::from_bytes(_type)?;
[INFO] [stdout] ...   |
[INFO] [stdout] 254 | |         Ok(ip_addr)
[INFO] [stdout]     | |         ^^^^^^^^^^^ expected `()`, found `Result<IpAddr, _>`
[INFO] [stdout] 255 | |     }
[INFO] [stdout]     | |_____- expected this to be `()`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected unit type `()`
[INFO] [stdout]                     found enum `Result<IpAddr, _>`
[INFO] [stdout] help: you might have meant to return this value
[INFO] [stdout]     |
[INFO] [stdout] 254 |         return Ok(ip_addr);
[INFO] [stdout]     |         ++++++            +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `std::io::Error`
[INFO] [stdout]    --> protocols/sdp/src/media_session.rs:256:118
[INFO] [stdout]     |
[INFO] [stdout] 241 | fn get_connection_address(data: &[u8]) -> Result<IpAddr, std::io::Error> {
[INFO] [stdout]     |                                           ------------------------------ expected `std::io::Error` because of this
[INFO] [stdout] ...
[INFO] [stdout] 256 |     Err(std::io::Error::new(std::io::ErrorKind::InvalidData, format!("Incorrect format {}", std::str::from_utf8(data)?)))
[INFO] [stdout]     |                                                                                             -------------------------^ the trait `From<Utf8Error>` is not implemented for `std::io::Error`
[INFO] [stdout]     |                                                                                             |
[INFO] [stdout]     |                                                                                             this can't be annotated with `?` because it has type `Result<_, Utf8Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]     = help: the following other types implement trait `From<T>`:
[INFO] [stdout]               `std::io::Error` implements `From<ErrorKind>`
[INFO] [stdout]               `std::io::Error` implements `From<IntoInnerError<W>>`
[INFO] [stdout]               `std::io::Error` implements `From<NulError>`
[INFO] [stdout]               `std::io::Error` implements `From<TryReserveError>`
[INFO] [stdout]     = note: required for `Result<IpAddr, std::io::Error>` to implement `FromResidual<Result<Infallible, Utf8Error>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> protocols/sdp/src/bandwidth.rs:13:43
[INFO] [stdout]    |
[INFO] [stdout] 13 |             let index = String::from_utf8(first)?;
[INFO] [stdout]    |                         ----------------- ^^^^^- help: try using a conversion method: `.to_vec()`
[INFO] [stdout]    |                         |                 |
[INFO] [stdout]    |                         |                 expected `Vec<u8>`, found `&[u8]`
[INFO] [stdout]    |                         arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Vec<u8>`
[INFO] [stdout]            found reference `&[u8]`
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> /rustc/334963c956d25708feab489a3816ae63f639355d/library/alloc/src/string.rs:576:12
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `std::io::Error`
[INFO] [stdout]   --> protocols/sdp/src/bandwidth.rs:13:49
[INFO] [stdout]    |
[INFO] [stdout] 13 |             let index = String::from_utf8(first)?;
[INFO] [stdout]    |                                                 ^ the trait `From<FromUtf8Error>` is not implemented for `std::io::Error`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]    = help: the following other types implement trait `From<T>`:
[INFO] [stdout]              `std::io::Error` implements `From<ErrorKind>`
[INFO] [stdout]              `std::io::Error` implements `From<IntoInnerError<W>>`
[INFO] [stdout]              `std::io::Error` implements `From<NulError>`
[INFO] [stdout]              `std::io::Error` implements `From<TryReserveError>`
[INFO] [stdout]    = note: required for `Result<Bandwidth, std::io::Error>` to implement `FromResidual<Result<Infallible, FromUtf8Error>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `from_str` found for type `u32` in the current scope
[INFO] [stdout]   --> protocols/sdp/src/bandwidth.rs:14:32
[INFO] [stdout]    |
[INFO] [stdout] 14 |             let element = u32::from_str(second)?;
[INFO] [stdout]    |                                ^^^^^^^^ function or associated item not found in `u32`
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: there is an associated function `from_str_radix` with a similar name
[INFO] [stdout]   --> /rustc/334963c956d25708feab489a3816ae63f639355d/library/core/src/num/mod.rs:1498:1
[INFO] [stdout]    = note: this error originates in the macro `from_str_radix` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: trait `FromStr` which provides `from_str` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout] 1  + use std::str::FromStr;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> protocols/sdp/src/bandwidth.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 12 | /         if let Some((first, second)) = data.separate_trimmed(elem, TRIM_REF) {
[INFO] [stdout] 13 | |             let index = String::from_utf8(first)?;
[INFO] [stdout] 14 | |             let element = u32::from_str(second)?;
[INFO] [stdout] 15 | |             Ok(Self::new(index, element))
[INFO] [stdout]    | |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found `Result<Bandwidth, _>`
[INFO] [stdout] 16 | |         }
[INFO] [stdout]    | |_________- expected this to be `()`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected unit type `()`
[INFO] [stdout]                    found enum `Result<Bandwidth, _>`
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]    |
[INFO] [stdout] 15 |             Ok(Self::new(index, element));
[INFO] [stdout]    |                                          +
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]    |
[INFO] [stdout] 16 |         };
[INFO] [stdout]    |          +
[INFO] [stdout] help: you might have meant to return this value
[INFO] [stdout]    |
[INFO] [stdout] 15 |             return Ok(Self::new(index, element));
[INFO] [stdout]    |             ++++++                              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> protocols/sdp/src/origin.rs:18:65
[INFO] [stdout]    |
[INFO] [stdout] 18 |         if let Some((user_name, other)) = data.separate_trimmed(b" ", TRIM_REF) && 
[INFO] [stdout]    |                                                ---------------- ^^^^ expected `u8`, found `&[u8; 1]`
[INFO] [stdout]    |                                                |
[INFO] [stdout]    |                                                arguments to this method are incorrect
[INFO] [stdout]    |
[INFO] [stdout] help: the return type of this call is `&'static [u8; 1]` due to the type of the argument passed
[INFO] [stdout]   --> protocols/sdp/src/origin.rs:18:43
[INFO] [stdout]    |
[INFO] [stdout] 18 |         if let Some((user_name, other)) = data.separate_trimmed(b" ", TRIM_REF) && 
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^----^^^^^^^^^^^
[INFO] [stdout]    |                                                                 |
[INFO] [stdout]    |                                                                 this argument influences the return type of `separate_trimmed`
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> /opt/rustwide/workdir/abstraction/src/extensions/vector_extensions.rs:5:8
[INFO] [stdout]    |
[INFO] [stdout] 5  |     fn separate_trimmed(&self, elem: T, trim: &T) -> Option<(&[T], &[T])>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> protocols/sdp/src/origin.rs:19:59
[INFO] [stdout]    |
[INFO] [stdout] 19 |            let Some((id, other)) = other.separate_trimmed(b" ", TRIM_REF) && 
[INFO] [stdout]    |                                          ---------------- ^^^^ expected `u8`, found `&[u8; 1]`
[INFO] [stdout]    |                                          |
[INFO] [stdout]    |                                          arguments to this method are incorrect
[INFO] [stdout]    |
[INFO] [stdout] help: the return type of this call is `&'static [u8; 1]` due to the type of the argument passed
[INFO] [stdout]   --> protocols/sdp/src/origin.rs:19:36
[INFO] [stdout]    |
[INFO] [stdout] 19 |            let Some((id, other)) = other.separate_trimmed(b" ", TRIM_REF) && 
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^^^^^^^----^^^^^^^^^^^
[INFO] [stdout]    |                                                           |
[INFO] [stdout]    |                                                           this argument influences the return type of `separate_trimmed`
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> /opt/rustwide/workdir/abstraction/src/extensions/vector_extensions.rs:5:8
[INFO] [stdout]    |
[INFO] [stdout] 5  |     fn separate_trimmed(&self, elem: T, trim: &T) -> Option<(&[T], &[T])>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> protocols/sdp/src/origin.rs:20:67
[INFO] [stdout]    |
[INFO] [stdout] 20 |            let Some((session_id, other)) = other.separate_trimmed(b" ", TRIM_REF) && 
[INFO] [stdout]    |                                                  ---------------- ^^^^ expected `u8`, found `&[u8; 1]`
[INFO] [stdout]    |                                                  |
[INFO] [stdout]    |                                                  arguments to this method are incorrect
[INFO] [stdout]    |
[INFO] [stdout] help: the return type of this call is `&'static [u8; 1]` due to the type of the argument passed
[INFO] [stdout]   --> protocols/sdp/src/origin.rs:20:44
[INFO] [stdout]    |
[INFO] [stdout] 20 |            let Some((session_id, other)) = other.separate_trimmed(b" ", TRIM_REF) && 
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^^^^^^^^^----^^^^^^^^^^^
[INFO] [stdout]    |                                                                   |
[INFO] [stdout]    |                                                                   this argument influences the return type of `separate_trimmed`
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> /opt/rustwide/workdir/abstraction/src/extensions/vector_extensions.rs:5:8
[INFO] [stdout]    |
[INFO] [stdout] 5  |     fn separate_trimmed(&self, elem: T, trim: &T) -> Option<(&[T], &[T])>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> protocols/sdp/src/origin.rs:21:72
[INFO] [stdout]    |
[INFO] [stdout] 21 |            let Some((session_version, other)) = other.separate_trimmed(b" ", TRIM_REF) &&
[INFO] [stdout]    |                                                       ---------------- ^^^^ expected `u8`, found `&[u8; 1]`
[INFO] [stdout]    |                                                       |
[INFO] [stdout]    |                                                       arguments to this method are incorrect
[INFO] [stdout]    |
[INFO] [stdout] help: the return type of this call is `&'static [u8; 1]` due to the type of the argument passed
[INFO] [stdout]   --> protocols/sdp/src/origin.rs:21:49
[INFO] [stdout]    |
[INFO] [stdout] 21 |            let Some((session_version, other)) = other.separate_trimmed(b" ", TRIM_REF) &&
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^^^^^^^^^^----^^^^^^^^^^^
[INFO] [stdout]    |                                                                        |
[INFO] [stdout]    |                                                                        this argument influences the return type of `separate_trimmed`
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> /opt/rustwide/workdir/abstraction/src/extensions/vector_extensions.rs:5:8
[INFO] [stdout]    |
[INFO] [stdout] 5  |     fn separate_trimmed(&self, elem: T, trim: &T) -> Option<(&[T], &[T])>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> protocols/sdp/src/origin.rs:22:69
[INFO] [stdout]    |
[INFO] [stdout] 22 |            let Some((network_type, other)) = other.separate_trimmed(b" ", TRIM_REF) && 
[INFO] [stdout]    |                                                    ---------------- ^^^^ expected `u8`, found `&[u8; 1]`
[INFO] [stdout]    |                                                    |
[INFO] [stdout]    |                                                    arguments to this method are incorrect
[INFO] [stdout]    |
[INFO] [stdout] help: the return type of this call is `&'static [u8; 1]` due to the type of the argument passed
[INFO] [stdout]   --> protocols/sdp/src/origin.rs:22:46
[INFO] [stdout]    |
[INFO] [stdout] 22 |            let Some((network_type, other)) = other.separate_trimmed(b" ", TRIM_REF) && 
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^^^^^^^^^^^----^^^^^^^^^^^
[INFO] [stdout]    |                                                                     |
[INFO] [stdout]    |                                                                     this argument influences the return type of `separate_trimmed`
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> /opt/rustwide/workdir/abstraction/src/extensions/vector_extensions.rs:5:8
[INFO] [stdout]    |
[INFO] [stdout] 5  |     fn separate_trimmed(&self, elem: T, trim: &T) -> Option<(&[T], &[T])>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> protocols/sdp/src/origin.rs:23:79
[INFO] [stdout]    |
[INFO] [stdout] 23 |            let Some((address_type, network_address)) = other.separate_trimmed(b" ", TRIM_REF) {
[INFO] [stdout]    |                                                              ---------------- ^^^^ expected `u8`, found `&[u8; 1]`
[INFO] [stdout]    |                                                              |
[INFO] [stdout]    |                                                              arguments to this method are incorrect
[INFO] [stdout]    |
[INFO] [stdout] help: the return type of this call is `&'static [u8; 1]` due to the type of the argument passed
[INFO] [stdout]   --> protocols/sdp/src/origin.rs:23:56
[INFO] [stdout]    |
[INFO] [stdout] 23 |            let Some((address_type, network_address)) = other.separate_trimmed(b" ", TRIM_REF) {
[INFO] [stdout]    |                                                        ^^^^^^^^^^^^^^^^^^^^^^^----^^^^^^^^^^^
[INFO] [stdout]    |                                                                               |
[INFO] [stdout]    |                                                                               this argument influences the return type of `separate_trimmed`
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> /opt/rustwide/workdir/abstraction/src/extensions/vector_extensions.rs:5:8
[INFO] [stdout]    |
[INFO] [stdout] 5  |     fn separate_trimmed(&self, elem: T, trim: &T) -> Option<(&[T], &[T])>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `std::io::Error`
[INFO] [stdout]   --> protocols/sdp/src/origin.rs:25:75
[INFO] [stdout]    |
[INFO] [stdout] 25 |             let str_network_address = std::str::from_utf8(network_address)?;
[INFO] [stdout]    |                                                                           ^ the trait `From<Utf8Error>` is not implemented for `std::io::Error`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]    = help: the following other types implement trait `From<T>`:
[INFO] [stdout]              `std::io::Error` implements `From<ErrorKind>`
[INFO] [stdout]              `std::io::Error` implements `From<IntoInnerError<W>>`
[INFO] [stdout]              `std::io::Error` implements `From<NulError>`
[INFO] [stdout]              `std::io::Error` implements `From<TryReserveError>`
[INFO] [stdout]    = note: required for `Result<Origin, std::io::Error>` to implement `FromResidual<Result<Infallible, Utf8Error>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> protocols/sdp/src/origin.rs:26:73
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn parse(data: &[u8]) -> Result<Origin, std::io::Error> {
[INFO] [stdout]    |     ------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 26 |             let address_type_res = AddressType::from_bytes(address_type)?;
[INFO] [stdout]    |                                                                         ^ use `.ok_or(...)?` to provide an error compatible with `Result<Origin, std::io::Error>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<Origin, std::io::Error>`
[INFO] [stdout]    = help: the trait `FromResidual<Result<Infallible, E>>` is implemented for `Result<T, F>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `std::io::Error`
[INFO] [stdout]   --> protocols/sdp/src/origin.rs:29:88
[INFO] [stdout]    |
[INFO] [stdout] 29 |                 AddressType::Ipv4 => IpAddr::V4(Ipv4Addr::from_str(str_network_address)?),
[INFO] [stdout]    |                                                                                        ^ the trait `From<AddrParseError>` is not implemented for `std::io::Error`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]    = help: the following other types implement trait `From<T>`:
[INFO] [stdout]              `std::io::Error` implements `From<ErrorKind>`
[INFO] [stdout]              `std::io::Error` implements `From<IntoInnerError<W>>`
[INFO] [stdout]              `std::io::Error` implements `From<NulError>`
[INFO] [stdout]              `std::io::Error` implements `From<TryReserveError>`
[INFO] [stdout]    = note: required for `Result<Origin, std::io::Error>` to implement `FromResidual<Result<Infallible, AddrParseError>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `std::io::Error`
[INFO] [stdout]   --> protocols/sdp/src/origin.rs:30:88
[INFO] [stdout]    |
[INFO] [stdout] 30 |                 AddressType::Ipv6 => IpAddr::V6(Ipv6Addr::from_str(str_network_address)?),
[INFO] [stdout]    |                                                                                        ^ the trait `From<AddrParseError>` is not implemented for `std::io::Error`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]    = help: the following other types implement trait `From<T>`:
[INFO] [stdout]              `std::io::Error` implements `From<ErrorKind>`
[INFO] [stdout]              `std::io::Error` implements `From<IntoInnerError<W>>`
[INFO] [stdout]              `std::io::Error` implements `From<NulError>`
[INFO] [stdout]              `std::io::Error` implements `From<TryReserveError>`
[INFO] [stdout]    = note: required for `Result<Origin, std::io::Error>` to implement `FromResidual<Result<Infallible, AddrParseError>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `std::io::Error`
[INFO] [stdout]   --> protocols/sdp/src/origin.rs:34:47
[INFO] [stdout]    |
[INFO] [stdout] 34 |                 std::str::from_utf8(user_name)?.to_string(),
[INFO] [stdout]    |                                               ^ the trait `From<Utf8Error>` is not implemented for `std::io::Error`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]    = help: the following other types implement trait `From<T>`:
[INFO] [stdout]              `std::io::Error` implements `From<ErrorKind>`
[INFO] [stdout]              `std::io::Error` implements `From<IntoInnerError<W>>`
[INFO] [stdout]              `std::io::Error` implements `From<NulError>`
[INFO] [stdout]              `std::io::Error` implements `From<TryReserveError>`
[INFO] [stdout]    = note: required for `Result<Origin, std::io::Error>` to implement `FromResidual<Result<Infallible, Utf8Error>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `std::io::Error`
[INFO] [stdout]   --> protocols/sdp/src/origin.rs:35:53
[INFO] [stdout]    |
[INFO] [stdout] 35 |                 std::str::from_utf8(session_version)?.to_string(),
[INFO] [stdout]    |                                                     ^ the trait `From<Utf8Error>` is not implemented for `std::io::Error`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]    = help: the following other types implement trait `From<T>`:
[INFO] [stdout]              `std::io::Error` implements `From<ErrorKind>`
[INFO] [stdout]              `std::io::Error` implements `From<IntoInnerError<W>>`
[INFO] [stdout]              `std::io::Error` implements `From<NulError>`
[INFO] [stdout]              `std::io::Error` implements `From<TryReserveError>`
[INFO] [stdout]    = note: required for `Result<Origin, std::io::Error>` to implement `FromResidual<Result<Infallible, Utf8Error>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `std::io::Error`
[INFO] [stdout]   --> protocols/sdp/src/origin.rs:36:48
[INFO] [stdout]    |
[INFO] [stdout] 36 |                 std::str::from_utf8(session_id)?.to_string(),
[INFO] [stdout]    |                                                ^ the trait `From<Utf8Error>` is not implemented for `std::io::Error`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]    = help: the following other types implement trait `From<T>`:
[INFO] [stdout]              `std::io::Error` implements `From<ErrorKind>`
[INFO] [stdout]              `std::io::Error` implements `From<IntoInnerError<W>>`
[INFO] [stdout]              `std::io::Error` implements `From<NulError>`
[INFO] [stdout]              `std::io::Error` implements `From<TryReserveError>`
[INFO] [stdout]    = note: required for `Result<Origin, std::io::Error>` to implement `FromResidual<Result<Infallible, Utf8Error>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `separate_trimmed` found for reference `&[u8]` in the current scope
[INFO] [stdout]   --> protocols/sdp/src/time/timing.rs:39:43
[INFO] [stdout]    |
[INFO] [stdout] 39 |         if let Some((start, stop)) = data.separate_trimmed(TRIM, TRIM_REF) {
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: there is a method `separate` with a similar name, but with different arguments
[INFO] [stdout]   --> /opt/rustwide/workdir/abstraction/src/extensions/vector_extensions.rs:4:5
[INFO] [stdout]    |
[INFO] [stdout] 4  |     fn separate(&self, elem: T) -> Option<(&[T], &[T])>;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: trait `VecExt` which provides `separate_trimmed` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout] 1  + use abstractions::extensions::vector_extensions::VecExt;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `std::io::Error`
[INFO] [stdout]   --> protocols/sdp/src/time/timing.rs:40:56
[INFO] [stdout]    |
[INFO] [stdout] 40 |             let start_time = std::str::from_utf8(start)?.parse::<i64>()?;
[INFO] [stdout]    |                                                        ^ the trait `From<Utf8Error>` is not implemented for `std::io::Error`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]    = help: the following other types implement trait `From<T>`:
[INFO] [stdout]              `std::io::Error` implements `From<ErrorKind>`
[INFO] [stdout]              `std::io::Error` implements `From<IntoInnerError<W>>`
[INFO] [stdout]              `std::io::Error` implements `From<NulError>`
[INFO] [stdout]              `std::io::Error` implements `From<TryReserveError>`
[INFO] [stdout]    = note: required for `Result<Timing, std::io::Error>` to implement `FromResidual<Result<Infallible, Utf8Error>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `std::io::Error`
[INFO] [stdout]   --> protocols/sdp/src/time/timing.rs:40:72
[INFO] [stdout]    |
[INFO] [stdout] 40 |             let start_time = std::str::from_utf8(start)?.parse::<i64>()?;
[INFO] [stdout]    |                                                                        ^ the trait `From<ParseIntError>` is not implemented for `std::io::Error`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]    = help: the following other types implement trait `From<T>`:
[INFO] [stdout]              `std::io::Error` implements `From<ErrorKind>`
[INFO] [stdout]              `std::io::Error` implements `From<IntoInnerError<W>>`
[INFO] [stdout]              `std::io::Error` implements `From<NulError>`
[INFO] [stdout]              `std::io::Error` implements `From<TryReserveError>`
[INFO] [stdout]    = note: required for `Result<Timing, std::io::Error>` to implement `FromResidual<Result<Infallible, ParseIntError>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `std::io::Error`
[INFO] [stdout]   --> protocols/sdp/src/time/timing.rs:41:54
[INFO] [stdout]    |
[INFO] [stdout] 41 |             let stop_time = std::str::from_utf8(stop)?.parse::<i64>()?;
[INFO] [stdout]    |                                                      ^ the trait `From<Utf8Error>` is not implemented for `std::io::Error`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]    = help: the following other types implement trait `From<T>`:
[INFO] [stdout]              `std::io::Error` implements `From<ErrorKind>`
[INFO] [stdout]              `std::io::Error` implements `From<IntoInnerError<W>>`
[INFO] [stdout]              `std::io::Error` implements `From<NulError>`
[INFO] [stdout]              `std::io::Error` implements `From<TryReserveError>`
[INFO] [stdout]    = note: required for `Result<Timing, std::io::Error>` to implement `FromResidual<Result<Infallible, Utf8Error>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `std::io::Error`
[INFO] [stdout]   --> protocols/sdp/src/time/timing.rs:41:70
[INFO] [stdout]    |
[INFO] [stdout] 41 |             let stop_time = std::str::from_utf8(stop)?.parse::<i64>()?;
[INFO] [stdout]    |                                                                      ^ the trait `From<ParseIntError>` is not implemented for `std::io::Error`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]    = help: the following other types implement trait `From<T>`:
[INFO] [stdout]              `std::io::Error` implements `From<ErrorKind>`
[INFO] [stdout]              `std::io::Error` implements `From<IntoInnerError<W>>`
[INFO] [stdout]              `std::io::Error` implements `From<NulError>`
[INFO] [stdout]              `std::io::Error` implements `From<TryReserveError>`
[INFO] [stdout]    = note: required for `Result<Timing, std::io::Error>` to implement `FromResidual<Result<Infallible, ParseIntError>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> protocols/sdp/src/time/timing.rs:44:29
[INFO] [stdout]    |
[INFO] [stdout] 44 |                 start_time: Utc.timestamp_opt(start_time - SUBTRAHEND, 0), 
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `DateTime<Utc>`, found `LocalResult<DateTime<Utc>>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `DateTime<_>`
[INFO] [stdout]                 found enum `LocalResult<DateTime<_>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> protocols/sdp/src/time/timing.rs:45:28
[INFO] [stdout]    |
[INFO] [stdout] 45 |                 stop_time: (stop_time != 0).then(|| Utc.timestamp_opt(stop_time - SUBTRAHEND, 0))  
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Option<DateTime<Utc>>`, found `Option<LocalResult<DateTime<Utc>>>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected enum `Option<DateTime<_>>`
[INFO] [stdout]               found enum `Option<LocalResult<DateTime<_>>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> protocols/sdp/src/time/timing.rs:43:13
[INFO] [stdout]    |
[INFO] [stdout] 39 | /          if let Some((start, stop)) = data.separate_trimmed(TRIM, TRIM_REF) {
[INFO] [stdout] 40 | |              let start_time = std::str::from_utf8(start)?.parse::<i64>()?;
[INFO] [stdout] 41 | |              let stop_time = std::str::from_utf8(stop)?.parse::<i64>()?;
[INFO] [stdout] 42 | |
[INFO] [stdout] 43 | |/             Ok((Timing { 
[INFO] [stdout] 44 | ||                 start_time: Utc.timestamp_opt(start_time - SUBTRAHEND, 0), 
[INFO] [stdout] 45 | ||                 stop_time: (stop_time != 0).then(|| Utc.timestamp_opt(stop_time - SUBTRAHEND, 0))  
[INFO] [stdout] 46 | ||             }))
[INFO] [stdout]    | ||_______________^ expected `()`, found `Result<Timing, _>`
[INFO] [stdout] 47 | |          }
[INFO] [stdout]    | |__________- expected this to be `()`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected unit type `()`
[INFO] [stdout]                    found enum `Result<Timing, _>`
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]    |
[INFO] [stdout] 46 |             }));
[INFO] [stdout]    |                +
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]    |
[INFO] [stdout] 47 |         };
[INFO] [stdout]    |          +
[INFO] [stdout] help: you might have meant to return this value
[INFO] [stdout]    |
[INFO] [stdout] 43 ~             return Ok((Timing { 
[INFO] [stdout] 44 |                 start_time: Utc.timestamp_opt(start_time - SUBTRAHEND, 0), 
[INFO] [stdout] 45 |                 stop_time: (stop_time != 0).then(|| Utc.timestamp_opt(stop_time - SUBTRAHEND, 0))  
[INFO] [stdout] 46 ~             }));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `std::io::Error`
[INFO] [stdout]   --> protocols/sdp/src/time/timing.rs:48:122
[INFO] [stdout]    |
[INFO] [stdout] 48 |         Err(std::io::Error::new(std::io::ErrorKind::InvalidData, format!("Incorrect format {}", std::str::from_utf8(data)?)))
[INFO] [stdout]    |                                                                                                                          ^ the trait `From<Utf8Error>` is not implemented for `std::io::Error`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]    = help: the following other types implement trait `From<T>`:
[INFO] [stdout]              `std::io::Error` implements `From<ErrorKind>`
[INFO] [stdout]              `std::io::Error` implements `From<IntoInnerError<W>>`
[INFO] [stdout]              `std::io::Error` implements `From<NulError>`
[INFO] [stdout]              `std::io::Error` implements `From<TryReserveError>`
[INFO] [stdout]    = note: required for `Result<Timing, std::io::Error>` to implement `FromResidual<Result<Infallible, Utf8Error>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `separate_trimmed` found for reference `&[u8]` in the current scope
[INFO] [stdout]   --> protocols/sdp/src/time/repeat_times.rs:14:45
[INFO] [stdout]    |
[INFO] [stdout] 14 |         if let Some((first, second)) = data.separate_trimmed(TRIM, TRIM_REF) {
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: there is a method `separate` with a similar name, but with different arguments
[INFO] [stdout]   --> /opt/rustwide/workdir/abstraction/src/extensions/vector_extensions.rs:4:5
[INFO] [stdout]    |
[INFO] [stdout] 4  |     fn separate(&self, elem: T) -> Option<(&[T], &[T])>;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: trait `VecExt` which provides `separate_trimmed` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout] 1  + use abstractions::extensions::vector_extensions::VecExt;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `std::io::Error`
[INFO] [stdout]   --> protocols/sdp/src/time/repeat_times.rs:15:56
[INFO] [stdout]    |
[INFO] [stdout] 15 |             let repeat_interval = parse_duration(first)?;
[INFO] [stdout]    |                                                        ^ the trait `From<&str>` is not implemented for `std::io::Error`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]    = help: the following other types implement trait `From<T>`:
[INFO] [stdout]              `std::io::Error` implements `From<ErrorKind>`
[INFO] [stdout]              `std::io::Error` implements `From<IntoInnerError<W>>`
[INFO] [stdout]              `std::io::Error` implements `From<NulError>`
[INFO] [stdout]              `std::io::Error` implements `From<TryReserveError>`
[INFO] [stdout]    = note: required for `Result<RepeatTimes, std::io::Error>` to implement `FromResidual<Result<Infallible, &str>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `std::io::Error`
[INFO] [stdout]   --> protocols/sdp/src/time/repeat_times.rs:16:57
[INFO] [stdout]    |
[INFO] [stdout] 16 |             let active_duration = parse_duration(second)?;
[INFO] [stdout]    |                                                         ^ the trait `From<&str>` is not implemented for `std::io::Error`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]    = help: the following other types implement trait `From<T>`:
[INFO] [stdout]              `std::io::Error` implements `From<ErrorKind>`
[INFO] [stdout]              `std::io::Error` implements `From<IntoInnerError<W>>`
[INFO] [stdout]              `std::io::Error` implements `From<NulError>`
[INFO] [stdout]              `std::io::Error` implements `From<TryReserveError>`
[INFO] [stdout]    = note: required for `Result<RepeatTimes, std::io::Error>` to implement `FromResidual<Result<Infallible, &str>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> protocols/sdp/src/time/repeat_times.rs:19:41
[INFO] [stdout]    |
[INFO] [stdout] 19 |                 .map(|s| parse_duration(s))
[INFO] [stdout]    |                          -------------- ^ expected `&str`, found `&[u8]`
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected reference `&str`
[INFO] [stdout]               found reference `&[u8]`
[INFO] [stdout] note: function defined here
[INFO] [stdout]   --> protocols/sdp/src/time/repeat_times.rs:89:4
[INFO] [stdout]    |
[INFO] [stdout] 89 | fn parse_duration(input: &str) -> Result<Duration, &'static str> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^ -----------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `std::io::Error`
[INFO] [stdout]   --> protocols/sdp/src/time/repeat_times.rs:20:48
[INFO] [stdout]    |
[INFO] [stdout] 20 |                 .collect::<Result<Vec<_>, _>>()?;
[INFO] [stdout]    |                                                ^ the trait `From<&str>` is not implemented for `std::io::Error`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]    = help: the following other types implement trait `From<T>`:
[INFO] [stdout]              `std::io::Error` implements `From<ErrorKind>`
[INFO] [stdout]              `std::io::Error` implements `From<IntoInnerError<W>>`
[INFO] [stdout]              `std::io::Error` implements `From<NulError>`
[INFO] [stdout]              `std::io::Error` implements `From<TryReserveError>`
[INFO] [stdout]    = note: required for `Result<RepeatTimes, std::io::Error>` to implement `FromResidual<Result<Infallible, &str>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> protocols/sdp/src/time/repeat_times.rs:21:13
[INFO] [stdout]    |
[INFO] [stdout] 14 | /         if let Some((first, second)) = data.separate_trimmed(TRIM, TRIM_REF) {
[INFO] [stdout] 15 | |             let repeat_interval = parse_duration(first)?;
[INFO] [stdout] 16 | |             let active_duration = parse_duration(second)?;
[INFO] [stdout] 17 | |             let offsets = data.split(|&b| b == b' ')
[INFO] [stdout] ...  |
[INFO] [stdout] 21 | |             Ok(RepeatTimes::new(repeat_interval, active_duration, offsets))
[INFO] [stdout]    | |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found `Result<RepeatTimes, _>`
[INFO] [stdout] ...  |
[INFO] [stdout] 25 | |         }
[INFO] [stdout]    | |_________- expected this to be `()`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected unit type `()`
[INFO] [stdout]                    found enum `Result<RepeatTimes, _>`
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]    |
[INFO] [stdout] 21 |             Ok(RepeatTimes::new(repeat_interval, active_duration, offsets));
[INFO] [stdout]    |                                                                            +
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]    |
[INFO] [stdout] 25 |         };
[INFO] [stdout]    |          +
[INFO] [stdout] help: you might have meant to return this value
[INFO] [stdout]    |
[INFO] [stdout] 21 |             return Ok(RepeatTimes::new(repeat_interval, active_duration, offsets));
[INFO] [stdout]    |             ++++++                                                                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> protocols/sdp/src/time/repeat_times.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 14 | /         if let Some((first, second)) = data.separate_trimmed(TRIM, TRIM_REF) {
[INFO] [stdout] 15 | |             let repeat_interval = parse_duration(first)?;
[INFO] [stdout] 16 | |             let active_duration = parse_duration(second)?;
[INFO] [stdout] 17 | |             let offsets = data.split(|&b| b == b' ')
[INFO] [stdout] ...  |
[INFO] [stdout] 23 | |             Err(std::io::Error::new(std::io::ErrorKind::InvalidData, "Invalid data"))
[INFO] [stdout]    | |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found `Result<_, Error>`
[INFO] [stdout] 24 | |             
[INFO] [stdout] 25 | |         }
[INFO] [stdout]    | |_________- expected this to be `()`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected unit type `()`
[INFO] [stdout]                    found enum `Result<_, std::io::Error>`
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]    |
[INFO] [stdout] 23 |             Err(std::io::Error::new(std::io::ErrorKind::InvalidData, "Invalid data"));
[INFO] [stdout]    |                                                                                      +
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]    |
[INFO] [stdout] 25 |         };
[INFO] [stdout]    |          +
[INFO] [stdout] help: you might have meant to return this value
[INFO] [stdout]    |
[INFO] [stdout] 23 |             return Err(std::io::Error::new(std::io::ErrorKind::InvalidData, "Invalid data"));
[INFO] [stdout]    |             ++++++                                                                          +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> protocols/sdp/src/time/repeat_times.rs:29:24
[INFO] [stdout]    |
[INFO] [stdout] 29 |             return Err("Invalid input format");
[INFO] [stdout]    |                    --- ^^^^^^^^^^^^^^^^^^^^^^ expected `Error`, found `&str`
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    arguments to this enum variant are incorrect
[INFO] [stdout]    |
[INFO] [stdout] help: the type constructed contains `&'static str` due to the type of the argument passed
[INFO] [stdout]   --> protocols/sdp/src/time/repeat_times.rs:29:20
[INFO] [stdout]    |
[INFO] [stdout] 29 |             return Err("Invalid input format");
[INFO] [stdout]    |                    ^^^^----------------------^
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        this argument influences the type of `Err`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> /rustc/334963c956d25708feab489a3816ae63f639355d/library/core/src/result.rs:537:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `std::io::Error`
[INFO] [stdout]   --> protocols/sdp/src/time/repeat_times.rs:32:55
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let repeat_interval = parse_duration(parts[0])?;
[INFO] [stdout]    |                                                       ^ the trait `From<&str>` is not implemented for `std::io::Error`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]    = help: the following other types implement trait `From<T>`:
[INFO] [stdout]              `std::io::Error` implements `From<ErrorKind>`
[INFO] [stdout]              `std::io::Error` implements `From<IntoInnerError<W>>`
[INFO] [stdout]              `std::io::Error` implements `From<NulError>`
[INFO] [stdout]              `std::io::Error` implements `From<TryReserveError>`
[INFO] [stdout]    = note: required for `Result<RepeatTimes, std::io::Error>` to implement `FromResidual<Result<Infallible, &str>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `std::io::Error`
[INFO] [stdout]   --> protocols/sdp/src/time/repeat_times.rs:33:55
[INFO] [stdout]    |
[INFO] [stdout] 33 |         let active_duration = parse_duration(parts[1])?;
[INFO] [stdout]    |                                                       ^ the trait `From<&str>` is not implemented for `std::io::Error`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]    = help: the following other types implement trait `From<T>`:
[INFO] [stdout]              `std::io::Error` implements `From<ErrorKind>`
[INFO] [stdout]              `std::io::Error` implements `From<IntoInnerError<W>>`
[INFO] [stdout]              `std::io::Error` implements `From<NulError>`
[INFO] [stdout]              `std::io::Error` implements `From<TryReserveError>`
[INFO] [stdout]    = note: required for `Result<RepeatTimes, std::io::Error>` to implement `FromResidual<Result<Infallible, &str>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> protocols/sdp/src/time/repeat_times.rs:84:34
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn parse(input: &str) -> Result<Self, &'static str> {
[INFO] [stdout]    |            -----                 ^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Result<RepeatTimes, &str>`, found `()`
[INFO] [stdout]    |            |
[INFO] [stdout]    |            implicitly returns `()` as its body has no tail or `return` expression
[INFO] [stdout]    |
[INFO] [stdout]    = note:   expected enum `Result<RepeatTimes, &'static str>`
[INFO] [stdout]            found unit type `()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Spanable`
[INFO] [stdout]  --> protocols/sdp/src/time/timing.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 | use timespan::{DateTimeSpan, Spanable};
[INFO] [stdout]   |                              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0107, E0277, E0308, E0425, E0433, E0599, E0658.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0107`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `sdp` (lib) due to 71 previous errors; 8 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] running `Command { std: "docker" "inspect" "8c8277aacebb96fa09a086ccfa4fda390428758abcaaa676caf05c15d256cd16", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8c8277aacebb96fa09a086ccfa4fda390428758abcaaa676caf05c15d256cd16", kill_on_drop: false }`
[INFO] [stdout] 8c8277aacebb96fa09a086ccfa4fda390428758abcaaa676caf05c15d256cd16
