[INFO] fetching crate momento-functions-host 0.7.0...
[INFO] testing momento-functions-host-0.7.0 against master#0d162b25edd5bf0dba9a22e83b614f1113e90474 for pr-150681
[INFO] extracting crate momento-functions-host 0.7.0 into /workspace/builds/worker-3-tc1/source
[INFO] started tweaking crates.io crate momento-functions-host 0.7.0
[INFO] finished tweaking crates.io crate momento-functions-host 0.7.0
[INFO] tweaked toml for crates.io crate momento-functions-host 0.7.0 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate momento-functions-host 0.7.0 on toolchain 0d162b25edd5bf0dba9a22e83b614f1113e90474
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate momento-functions-host 0.7.0 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" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded id-arena v2.2.1
[INFO] [stderr]   Downloaded wit-bindgen v0.41.0
[INFO] [stderr]   Downloaded wit-bindgen-rust-macro v0.41.0
[INFO] [stderr]   Downloaded momento-functions-wit v0.7.0
[INFO] [stderr]   Downloaded auditable-serde v0.8.0
[INFO] [stderr]   Downloaded wasm-metadata v0.227.1
[INFO] [stderr]   Downloaded leb128fmt v0.1.0
[INFO] [stderr]   Downloaded wit-bindgen-rt v0.41.0
[INFO] [stderr]   Downloaded wit-bindgen-core v0.41.0
[INFO] [stderr]   Downloaded wit-bindgen-rust v0.41.0
[INFO] [stderr]   Downloaded prettyplease v0.2.32
[INFO] [stderr]   Downloaded wasm-encoder v0.227.1
[INFO] [stderr]   Downloaded wit-parser v0.227.1
[INFO] [stderr]   Downloaded wit-component v0.227.1
[INFO] [stderr]   Downloaded wasmparser v0.227.1
[INFO] [stderr]   Downloaded spdx v0.10.8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/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" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5bc8a44001198f8cdad57d12164ac208af0556664d58802fb1df47293e78980b
[INFO] running `Command { std: "docker" "start" "-a" "5bc8a44001198f8cdad57d12164ac208af0556664d58802fb1df47293e78980b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5bc8a44001198f8cdad57d12164ac208af0556664d58802fb1df47293e78980b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5bc8a44001198f8cdad57d12164ac208af0556664d58802fb1df47293e78980b", kill_on_drop: false }`
[INFO] [stdout] 5bc8a44001198f8cdad57d12164ac208af0556664d58802fb1df47293e78980b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/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" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] de0397d75391e585b9eef719517da2898b8e50b60393a14422a66c813653260b
[INFO] running `Command { std: "docker" "start" "-a" "de0397d75391e585b9eef719517da2898b8e50b60393a14422a66c813653260b", kill_on_drop: false }`
[INFO] [stderr]    Compiling stable_deref_trait v1.2.0
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling icu_locid_transform_data v1.5.1
[INFO] [stderr]    Compiling litemap v0.7.5
[INFO] [stderr]    Compiling writeable v0.5.5
[INFO] [stderr]    Compiling icu_properties_data v1.5.1
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling icu_normalizer_data v1.5.1
[INFO] [stderr]    Compiling smallvec v1.15.0
[INFO] [stderr]    Compiling bitflags v2.9.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.94
[INFO] [stderr]    Compiling semver v1.0.26
[INFO] [stderr]    Compiling wasmparser v0.227.1
[INFO] [stderr]    Compiling write16 v1.0.0
[INFO] [stderr]    Compiling utf16_iter v1.0.5
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling memchr v2.7.4
[INFO] [stderr]    Compiling anyhow v1.0.98
[INFO] [stderr]    Compiling adler2 v2.0.0
[INFO] [stderr]    Compiling prettyplease v0.2.32
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling hashbrown v0.15.2
[INFO] [stderr]    Compiling wasm-encoder v0.227.1
[INFO] [stderr]    Compiling percent-encoding v2.3.1
[INFO] [stderr]    Compiling crc32fast v1.4.2
[INFO] [stderr]    Compiling miniz_oxide v0.8.8
[INFO] [stderr]    Compiling id-arena v2.2.1
[INFO] [stderr]    Compiling leb128fmt v0.1.0
[INFO] [stderr]    Compiling topological-sort v0.2.2
[INFO] [stderr]    Compiling spdx v0.10.8
[INFO] [stderr]    Compiling wit-bindgen-rust v0.41.0
[INFO] [stderr]    Compiling wit-bindgen-rt v0.41.0
[INFO] [stderr]    Compiling wit-bindgen-rust-macro v0.41.0
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling form_urlencoded v1.2.1
[INFO] [stderr]    Compiling syn v2.0.100
[INFO] [stderr]    Compiling flate2 v1.1.1
[INFO] [stderr]    Compiling synstructure v0.13.1
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.7.5
[INFO] [stderr]    Compiling zerovec-derive v0.10.3
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling icu_provider_macros v1.5.0
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.7.5
[INFO] [stderr]    Compiling zerovec v0.10.4
[INFO] [stderr]    Compiling thiserror v2.0.12
[INFO] [stderr]    Compiling tinystr v0.7.6
[INFO] [stderr]    Compiling icu_collections v1.5.0
[INFO] [stderr]    Compiling icu_locid v1.5.0
[INFO] [stderr]    Compiling icu_provider v1.5.0
[INFO] [stderr]    Compiling icu_locid_transform v1.5.0
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling icu_properties v1.5.1
[INFO] [stderr]    Compiling icu_normalizer v1.5.0
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]    Compiling idna_adapter v1.2.0
[INFO] [stderr]    Compiling idna v1.0.3
[INFO] [stderr]    Compiling url v2.5.4
[INFO] [stderr]    Compiling indexmap v2.9.0
[INFO] [stderr]    Compiling auditable-serde v0.8.0
[INFO] [stderr]    Compiling wit-parser v0.227.1
[INFO] [stderr]    Compiling wasm-metadata v0.227.1
[INFO] [stderr]    Compiling wit-component v0.227.1
[INFO] [stderr]    Compiling wit-bindgen-core v0.41.0
[INFO] [stderr]    Compiling wit-bindgen v0.41.0
[INFO] [stderr]    Compiling momento-functions-wit v0.7.0
[INFO] [stderr]    Compiling momento-functions-host v0.7.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 03s
[INFO] running `Command { std: "docker" "inspect" "de0397d75391e585b9eef719517da2898b8e50b60393a14422a66c813653260b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "de0397d75391e585b9eef719517da2898b8e50b60393a14422a66c813653260b", kill_on_drop: false }`
[INFO] [stdout] de0397d75391e585b9eef719517da2898b8e50b60393a14422a66c813653260b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/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" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 73f6e24a08ed694ba5762f48803fb414c965d44b467370735f88479825124f0d
[INFO] running `Command { std: "docker" "start" "-a" "73f6e24a08ed694ba5762f48803fb414c965d44b467370735f88479825124f0d", kill_on_drop: false }`
[INFO] [stderr]    Compiling momento-functions-host v0.7.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.39s
[INFO] running `Command { std: "docker" "inspect" "73f6e24a08ed694ba5762f48803fb414c965d44b467370735f88479825124f0d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "73f6e24a08ed694ba5762f48803fb414c965d44b467370735f88479825124f0d", kill_on_drop: false }`
[INFO] [stdout] 73f6e24a08ed694ba5762f48803fb414c965d44b467370735f88479825124f0d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/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" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] f47bea0cee1ac9f720d864567e47a7549e953051d836f85694b91b179b2bf010
[INFO] running `Command { std: "docker" "start" "-a" "f47bea0cee1ac9f720d864567e47a7549e953051d836f85694b91b179b2bf010", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.16s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/momento_functions_host-28e39445653a6f0a)
[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]    Doc-tests momento_functions_host
[INFO] [stderr] warning: unknown attribute `no-run`
[INFO] [stderr]   --> src/aws/s3.rs:55:5
[INFO] [stderr]    |
[INFO] [stderr] 55 | /     ///
[INFO] [stderr] 56 | |     /// ```rust,no-run
[INFO] [stderr] 57 | |     /// # use momento_functions_host::aws::auth::AwsCredentialsProvider;
[INFO] [stderr] 58 | |     /// # use momento_functions_host::aws::lambda::S3Client;
[INFO] [stderr] ...  |
[INFO] [stderr] 70 | |     /// # }
[INFO] [stderr] 71 | |     /// ```
[INFO] [stderr]    | |___________^
[INFO] [stderr]    |
[INFO] [stderr]    = help: use `no_run` to compile, but not run, the code sample during testing
[INFO] [stderr]    = help: this code block may be skipped during testing, because unknown attributes are treated as markers for code samples written in other programming languages, unless it is also explicitly marked as `rust`
[INFO] [stderr]    = note: `#[warn(rustdoc::invalid_codeblock_attributes)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unknown attribute `no-run`
[INFO] [stderr]    --> src/aws/s3.rs:78:5
[INFO] [stderr]     |
[INFO] [stderr]  78 | /     /// Put an object into an S3 bucket.
[INFO] [stderr]  79 | |     ///
[INFO] [stderr]  80 | |     /// You can use strings, bytes, or structs that are Serializable.
[INFO] [stderr]  81 | |     ///
[INFO] [stderr] ...   |
[INFO] [stderr] 123 | |     /// # Ok(())}
[INFO] [stderr] 124 | |     /// ```
[INFO] [stderr]     | |___________^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `no_run` to compile, but not run, the code sample during testing
[INFO] [stderr]     = help: this code block may be skipped during testing, because unknown attributes are treated as markers for code samples written in other programming languages, unless it is also explicitly marked as `rust`
[INFO] [stderr] 
[INFO] [stderr] warning: 2 warnings emitted
[INFO] [stderr] 
[INFO] [stdout] 
[INFO] [stdout] running 49 tests
[INFO] [stdout] test src/aws/auth.rs - aws::auth::AwsCredentialsProvider::new (line 86) - compile ... FAILED
[INFO] [stdout] test src/aws/ddb.rs - aws::ddb::DynamoDBClient::get_item (line 84) ... FAILED
[INFO] [stdout] test src/aws/s3.rs - aws::s3::S3Client::get (line 152) ... FAILED
[INFO] [stdout] test src/aws/s3.rs - aws::s3::S3Client::get (line 170) ... FAILED
[INFO] [stdout] test src/aws/lambda.rs - aws::lambda::LambdaClient::invoke (line 66) ... FAILED
[INFO] [stdout] test src/aws/ddb.rs - aws::ddb::Item (line 375) ... FAILED
[INFO] [stdout] test src/aws/auth.rs - aws::auth::AwsCredentialsProvider::new (line 97) - compile ... FAILED
[INFO] [stdout] test src/cache.rs - cache::get (line 40) ... FAILED
[INFO] [stdout] test src/aws/s3.rs - aws::s3::S3Client::new (line 56) ... FAILED
[INFO] [stdout] test src/aws/ddb.rs - aws::ddb::DynamoDBClient::get_item_raw (line 127) ... ok
[INFO] [stdout] test src/aws/lambda.rs - aws::lambda::LambdaClient::invoke (line 98) ... FAILED
[INFO] [stdout] test src/aws/s3.rs - aws::s3::S3Client::put (line 84) ... FAILED
[INFO] [stdout] test src/aws/ddb.rs - aws::ddb::Item (line 368) ... ok
[INFO] [stdout] test src/aws/lambda.rs - aws::lambda::LambdaClient::new (line 38) ... ok
[INFO] [stdout] test src/aws/ddb.rs - aws::ddb::DynamoDBClient::new (line 58) ... ok
[INFO] [stdout] test src/aws/ddb.rs - aws::ddb::DynamoDBClient::put_item (line 178) ... ok
[INFO] [stdout] test src/cache.rs - cache::set (line 78) ... FAILED
[INFO] [stdout] test src/aws/auth.rs - aws::auth::build_environment_aws_credentials (line 25) ... ok
[INFO] [stdout] test src/cache.rs - cache::get (line 50) ... FAILED
[INFO] [stdout] test src/aws/ddb.rs - aws::ddb::DynamoDBClient::put_item (line 193) ... ok
[INFO] [stdout] test src/http.rs - http::put_aws_sigv4 (line 357) ... FAILED
[INFO] [stdout] test src/cache.rs - cache::set (line 93) ... FAILED
[INFO] [stdout] test src/aws/s3.rs - aws::s3::S3Client::put (line 106) ... FAILED
[INFO] [stdout] test src/http.rs - http::delete_aws_sigv4 (line 463) ... ok
[INFO] [stdout] test src/token.rs - token::CachePermissions::new (line 232) ... FAILED
[INFO] [stdout] test src/aws/auth.rs - aws::auth::build_environment_aws_credentials (line 31) ... ok
[INFO] [stdout] test src/http.rs - http::put (line 116) ... FAILED
[INFO] [stdout] test src/http.rs - http::delete (line 245) ... ok
[INFO] [stdout] test src/http.rs - http::post_aws_sigv4 (line 410) ... FAILED
[INFO] [stdout] test src/http.rs - http::Response::extract (line 27) ... FAILED
[INFO] [stdout] test src/token.rs - token::CachePermissions::read_only (line 274) ... FAILED
[INFO] [stdout] test src/http.rs - http::post (line 180) ... FAILED
[INFO] [stdout] test src/http.rs - http::get (line 66) ... ok
[INFO] [stdout] test src/redis.rs - redis::RedisClient::pipe (line 197) ... FAILED
[INFO] [stdout] test src/token.rs - token::CachePermissions::read_write (line 254) ... FAILED
[INFO] [stdout] test src/spawn.rs - spawn::spawn (line 21) ... FAILED
[INFO] [stdout] test src/http.rs - http::get_aws_sigv4 (line 308) ... ok
[INFO] [stdout] test src/token.rs - token::Permissions::new (line 117) ... FAILED
[INFO] [stdout] test src/topics.rs - topics::publish (line 38) ... FAILED
[INFO] [stdout] test src/token.rs - token::TopicPermissions::write_only (line 455) ... FAILED
[INFO] [stdout] test src/token.rs - token::FunctionPermissions::invoke (line 576) ... FAILED
[INFO] [stdout] test src/token.rs - token::CachePermissions::write_only (line 294) ... FAILED
[INFO] [stdout] test src/token.rs - token::TopicPermissions::read_write (line 415) ... FAILED
[INFO] [stdout] test src/topics.rs - topics::publish (line 27) ... FAILED
[INFO] [stdout] test src/token.rs - token::TopicPermissions::read_only (line 435) ... FAILED
[INFO] [stdout] test src/token.rs - token::FunctionPermissions::new (line 554) ... FAILED
[INFO] [stdout] test src/token.rs - token::TopicPermissions::new (line 393) ... FAILED
[INFO] [stdout] test src/topics.rs - topics::publish (line 49) ... FAILED
[INFO] [stdout] test src/redis.rs - redis::RedisClient::new (line 102) ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/aws/auth.rs - aws::auth::AwsCredentialsProvider::new (line 86) stdout ----
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]   --> src/aws/auth.rs:91:94
[INFO] [stdout]    |
[INFO] [stdout] 87 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_aws_auth_rs_86_0() {
[INFO] [stdout]    |                                      --------------------------------------- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout] ...
[INFO] [stdout] 91 | let provider = AwsCredentialsProvider::new("us-east-1", build_environment_aws_credentials!())?;
[INFO] [stdout]    |                                                                                              ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding return type
[INFO] [stdout]    |
[INFO] [stdout] 87 ~ fn main() { #[allow(non_snake_case)] fn _doctest_main_src_aws_auth_rs_86_0() -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout] 88 | // Not run because docs.rs does not run a Momento WIT host environment, of course!
[INFO] [stdout] ...
[INFO] [stdout] 91 | let provider = AwsCredentialsProvider::new("us-east-1", build_environment_aws_credentials!())?;
[INFO] [stdout] 92 +     Ok(())
[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 E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/aws/ddb.rs - aws::ddb::DynamoDBClient::get_item (line 84) stdout ----
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `std::string::String`
[INFO] [stdout]    --> src/aws/ddb.rs:104:114
[INFO] [stdout]     |
[INFO] [stdout] 104 |             some_attribute: value.attributes.remove("some_attribute").ok_or("missing some_attribute")?.try_into()?,
[INFO] [stdout]     |                                                                                                        ----------^ the trait `From<ConversionError>` is not implemented for `std::string::String`
[INFO] [stdout]     |                                                                                                        |
[INFO] [stdout]     |                                                                                                        this can't be annotated with `?` because it has type `Result<_, ConversionError>`
[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::string::String` implements `From<&mut str>`
[INFO] [stdout]               `std::string::String` implements `From<&std::string::String>`
[INFO] [stdout]               `std::string::String` implements `From<&str>`
[INFO] [stdout]               `std::string::String` implements `From<Box<str>>`
[INFO] [stdout]               `std::string::String` implements `From<Cow<'_, str>>`
[INFO] [stdout]               `std::string::String` implements `From<char>`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/aws/s3.rs - aws::s3::S3Client::get (line 152) stdout ----
[INFO] [stdout] error: expected one of `.`, `?`, `{`, or an operator, found `;`
[INFO] [stdout]    --> src/aws/s3.rs:161:3
[INFO] [stdout]     |
[INFO] [stdout] 158 | let my_value: Option<String> = match client.get(
[INFO] [stdout]     |                                -----
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                while parsing this `match` expression
[INFO] [stdout]     |                                help: try removing this `match`
[INFO] [stdout] ...
[INFO] [stdout] 161 | )?;
[INFO] [stdout]     |   ^ expected one of `.`, `?`, `{`, or an operator
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&str: ExtractError` is not satisfied
[INFO] [stdout]    --> src/aws/s3.rs:157:39
[INFO] [stdout]     |
[INFO] [stdout] 157 | fn f(client: &S3Client) -> Result<(), S3GetError<&str>> {
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^ the trait `ExtractError` is not implemented for `&str`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `ExtractError`
[INFO] [stdout]    --> src/encoding.rs:69:1
[INFO] [stdout]     |
[INFO] [stdout]  69 | impl ExtractError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]  70 |
[INFO] [stdout]  71 | impl ExtractError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `S3GetError`
[INFO] [stdout]    --> src/aws/s3.rs:40:8
[INFO] [stdout]     |
[INFO] [stdout]  38 | pub enum S3GetError<E>
[INFO] [stdout]     |          ---------- required by a bound in this enum
[INFO] [stdout]  39 | where
[INFO] [stdout]  40 |     E: ExtractError,
[INFO] [stdout]     |        ^^^^^^^^^^^^ required by this bound in `S3GetError`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 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/aws/s3.rs - aws::s3::S3Client::get (line 170) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `Json<MyStruct>: ExtractError` is not satisfied
[INFO] [stdout]    --> src/aws/s3.rs:180:39
[INFO] [stdout]     |
[INFO] [stdout] 180 | fn f(client: &S3Client) -> Result<(), S3GetError<Json<MyStruct>>> {
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ExtractError` is not implemented for `Json<MyStruct>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `ExtractError`
[INFO] [stdout]    --> src/encoding.rs:69:1
[INFO] [stdout]     |
[INFO] [stdout]  69 | impl ExtractError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]  70 |
[INFO] [stdout]  71 | impl ExtractError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `S3GetError`
[INFO] [stdout]    --> src/aws/s3.rs:40:8
[INFO] [stdout]     |
[INFO] [stdout]  38 | pub enum S3GetError<E>
[INFO] [stdout]     |          ---------- required by a bound in this enum
[INFO] [stdout]  39 | where
[INFO] [stdout]  40 |     E: ExtractError,
[INFO] [stdout]     |        ^^^^^^^^^^^^ required by this bound in `S3GetError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Json<MyStruct>: ExtractError` is not satisfied
[INFO] [stdout]    --> src/aws/s3.rs:182:44
[INFO] [stdout]     |
[INFO] [stdout] 182 |   let maybe_struct: Option<MyStruct> = match client.get(
[INFO] [stdout]     |  ____________________________________________^
[INFO] [stdout] 183 | |     "my-bucket",
[INFO] [stdout] 184 | |     "my-key",
[INFO] [stdout] 185 | | )? {
[INFO] [stdout]     | |_^ the trait `ExtractError` is not implemented for `Json<MyStruct>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `ExtractError`
[INFO] [stdout]    --> src/encoding.rs:69:1
[INFO] [stdout]     |
[INFO] [stdout]  69 | impl ExtractError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]  70 |
[INFO] [stdout]  71 | impl ExtractError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `S3GetError`
[INFO] [stdout]    --> src/aws/s3.rs:40:8
[INFO] [stdout]     |
[INFO] [stdout]  38 | pub enum S3GetError<E>
[INFO] [stdout]     |          ---------- required by a bound in this enum
[INFO] [stdout]  39 | where
[INFO] [stdout]  40 |     E: ExtractError,
[INFO] [stdout]     |        ^^^^^^^^^^^^ required by this bound in `S3GetError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Json<MyStruct>: ExtractError` is not satisfied
[INFO] [stdout]    --> src/aws/s3.rs:182:51
[INFO] [stdout]     |
[INFO] [stdout] 182 | let maybe_struct: Option<MyStruct> = match client.get(
[INFO] [stdout]     |                                                   ^^^ the trait `ExtractError` is not implemented for `Json<MyStruct>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `ExtractError`
[INFO] [stdout]    --> src/encoding.rs:69:1
[INFO] [stdout]     |
[INFO] [stdout]  69 | impl ExtractError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]  70 |
[INFO] [stdout]  71 | impl ExtractError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `S3GetError`
[INFO] [stdout]    --> src/aws/s3.rs:40:8
[INFO] [stdout]     |
[INFO] [stdout]  38 | pub enum S3GetError<E>
[INFO] [stdout]     |          ---------- required by a bound in this enum
[INFO] [stdout]  39 | where
[INFO] [stdout]  40 |     E: ExtractError,
[INFO] [stdout]     |        ^^^^^^^^^^^^ required by this bound in `S3GetError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Json<MyStruct>: ExtractError` is not satisfied
[INFO] [stdout]    --> src/aws/s3.rs:182:44
[INFO] [stdout]     |
[INFO] [stdout] 182 |   let maybe_struct: Option<MyStruct> = match client.get(
[INFO] [stdout]     |  ____________________________________________^
[INFO] [stdout] 183 | |     "my-bucket",
[INFO] [stdout] 184 | |     "my-key",
[INFO] [stdout] 185 | | )? {
[INFO] [stdout]     | |__^ the trait `ExtractError` is not implemented for `Json<MyStruct>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `ExtractError`
[INFO] [stdout]    --> src/encoding.rs:69:1
[INFO] [stdout]     |
[INFO] [stdout]  69 | impl ExtractError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]  70 |
[INFO] [stdout]  71 | impl ExtractError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `S3GetError`
[INFO] [stdout]    --> src/aws/s3.rs:40:8
[INFO] [stdout]     |
[INFO] [stdout]  38 | pub enum S3GetError<E>
[INFO] [stdout]     |          ---------- required by a bound in this enum
[INFO] [stdout]  39 | where
[INFO] [stdout]  40 |     E: ExtractError,
[INFO] [stdout]     |        ^^^^^^^^^^^^ required by this bound in `S3GetError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Json<MyStruct>: ExtractError` is not satisfied
[INFO] [stdout]    --> src/aws/s3.rs:185:2
[INFO] [stdout]     |
[INFO] [stdout] 185 | )? {
[INFO] [stdout]     |  ^ the trait `ExtractError` is not implemented for `Json<MyStruct>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `ExtractError`
[INFO] [stdout]    --> src/encoding.rs:69:1
[INFO] [stdout]     |
[INFO] [stdout]  69 | impl ExtractError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]  70 |
[INFO] [stdout]  71 | impl ExtractError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `S3GetError`
[INFO] [stdout]    --> src/aws/s3.rs:40:8
[INFO] [stdout]     |
[INFO] [stdout]  38 | pub enum S3GetError<E>
[INFO] [stdout]     |          ---------- required by a bound in this enum
[INFO] [stdout]  39 | where
[INFO] [stdout]  40 |     E: ExtractError,
[INFO] [stdout]     |        ^^^^^^^^^^^^ required by this bound in `S3GetError`
[INFO] [stdout] 
[INFO] [stdout] error[E0271]: type mismatch resolving `<Json<_> as Extract>::Error == Json<MyStruct>`
[INFO] [stdout]    --> src/aws/s3.rs:182:51
[INFO] [stdout]     |
[INFO] [stdout] 182 | let maybe_struct: Option<MyStruct> = match client.get(
[INFO] [stdout]     |                                                   ^^^ expected `Json<MyStruct>`, found `Error`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Json<MyStruct>`
[INFO] [stdout]                found struct `serde_json::error::Error`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `for<'de> MyStruct: Deserialize<'de>` is not satisfied
[INFO] [stdout]    --> src/aws/s3.rs:182:51
[INFO] [stdout]     |
[INFO] [stdout] 182 | let maybe_struct: Option<MyStruct> = match client.get(
[INFO] [stdout]     |                                                   ^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `for<'de> Deserialize<'de>` is not implemented for `MyStruct`
[INFO] [stdout]    --> src/aws/s3.rs:176:1
[INFO] [stdout]     |
[INFO] [stdout] 176 | struct MyStruct {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `MyStruct` type
[INFO] [stdout]     = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]     = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]               &'a Path
[INFO] [stdout]               &'a [u8]
[INFO] [stdout]               &'a str
[INFO] [stdout]               ()
[INFO] [stdout]               (T,)
[INFO] [stdout]               (T0, T1)
[INFO] [stdout]               (T0, T1, T2)
[INFO] [stdout]               (T0, T1, T2, T3)
[INFO] [stdout]             and 159 others
[INFO] [stdout]     = note: required for `MyStruct` to implement `DeserializeOwned`
[INFO] [stdout]     = note: required for `Json<MyStruct>` to implement `momento_functions_host::encoding::Extract`
[INFO] [stdout] note: required by a bound in `S3Client::get`
[INFO] [stdout]    --> src/aws/s3.rs:193:19
[INFO] [stdout]     |
[INFO] [stdout] 193 |     pub fn get<T: Extract>(
[INFO] [stdout]     |                   ^^^^^^^ required by this bound in `S3Client::get`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Json<MyStruct>: ExtractError` is not satisfied
[INFO] [stdout]    --> src/aws/s3.rs:192:1
[INFO] [stdout]     |
[INFO] [stdout] 192 | Ok(())}
[INFO] [stdout]     | ^^ the trait `ExtractError` is not implemented for `Json<MyStruct>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `ExtractError`
[INFO] [stdout]    --> src/encoding.rs:69:1
[INFO] [stdout]     |
[INFO] [stdout]  69 | impl ExtractError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]  70 |
[INFO] [stdout]  71 | impl ExtractError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `S3GetError`
[INFO] [stdout]    --> src/aws/s3.rs:40:8
[INFO] [stdout]     |
[INFO] [stdout]  38 | pub enum S3GetError<E>
[INFO] [stdout]     |          ---------- required by a bound in this enum
[INFO] [stdout]  39 | where
[INFO] [stdout]  40 |     E: ExtractError,
[INFO] [stdout]     |        ^^^^^^^^^^^^ required by this bound in `S3GetError`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 8 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0271, E0277.
[INFO] [stdout] For more information about an error, try `rustc --explain E0271`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/aws/lambda.rs - aws::lambda::LambdaClient::invoke (line 66) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `&str: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]   --> src/aws/lambda.rs:71:43
[INFO] [stdout]    |
[INFO] [stdout] 71 | fn f(client: &LambdaClient) -> Result<(), InvokeError<&str>> {
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `&str`
[INFO] [stdout]    |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]   --> src/encoding.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl EncodeError for Infallible {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]  9 |
[INFO] [stdout] 10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `InvokeError`
[INFO] [stdout]   --> src/aws/lambda.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum InvokeError<E>
[INFO] [stdout]    |          ----------- required by a bound in this enum
[INFO] [stdout] 21 | where
[INFO] [stdout] 22 |     E: EncodeError,
[INFO] [stdout]    |        ^^^^^^^^^^^ required by this bound in `InvokeError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `InvokeError<&str>`
[INFO] [stdout]   --> src/aws/lambda.rs:76:2
[INFO] [stdout]    |
[INFO] [stdout] 71 |   fn f(client: &LambdaClient) -> Result<(), InvokeError<&str>> {
[INFO] [stdout]    |                                  ----------------------------- expected `InvokeError<&str>` because of this
[INFO] [stdout] 72 |   // With a payload
[INFO] [stdout] 73 |   client.invoke(
[INFO] [stdout]    |  ________-
[INFO] [stdout] 74 | |     "my_lambda_function",
[INFO] [stdout] 75 | |     "hello world",
[INFO] [stdout] 76 | | )?;
[INFO] [stdout]    | | -^ the trait `From<InvokeError<Infallible>>` is not implemented for `InvokeError<&str>`
[INFO] [stdout]    | |_|
[INFO] [stdout]    |   this can't be annotated with `?` because it has type `Result<_, InvokeError<Infallible>>`
[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 trait `From<momento_functions_wit::host::momento::host::aws_lambda::LambdaError>` is implemented for `InvokeError<E>`
[INFO] [stdout]   --> src/aws/lambda.rs:32:17
[INFO] [stdout]    |
[INFO] [stdout] 32 |     LambdaError(#[from] LambdaError),
[INFO] [stdout]    |                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&str: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]   --> src/aws/lambda.rs:73:1
[INFO] [stdout]    |
[INFO] [stdout] 73 | / client.invoke(
[INFO] [stdout] 74 | |     "my_lambda_function",
[INFO] [stdout] 75 | |     "hello world",
[INFO] [stdout] 76 | | )?;
[INFO] [stdout]    | |__^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `&str`
[INFO] [stdout]    |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]   --> src/encoding.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl EncodeError for Infallible {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]  9 |
[INFO] [stdout] 10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `InvokeError`
[INFO] [stdout]   --> src/aws/lambda.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum InvokeError<E>
[INFO] [stdout]    |          ----------- required by a bound in this enum
[INFO] [stdout] 21 | where
[INFO] [stdout] 22 |     E: EncodeError,
[INFO] [stdout]    |        ^^^^^^^^^^^ required by this bound in `InvokeError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `InvokeError<&str>`
[INFO] [stdout]   --> src/aws/lambda.rs:82:2
[INFO] [stdout]    |
[INFO] [stdout] 71 |   fn f(client: &LambdaClient) -> Result<(), InvokeError<&str>> {
[INFO] [stdout]    |                                  ----------------------------- expected `InvokeError<&str>` because of this
[INFO] [stdout] ...
[INFO] [stdout] 79 |   client.invoke(
[INFO] [stdout]    |  ________-
[INFO] [stdout] 80 | |     ("my_lambda_function", "v1"),
[INFO] [stdout] 81 | |     "hello world",
[INFO] [stdout] 82 | | )?;
[INFO] [stdout]    | | -^ the trait `From<InvokeError<Infallible>>` is not implemented for `InvokeError<&str>`
[INFO] [stdout]    | |_|
[INFO] [stdout]    |   this can't be annotated with `?` because it has type `Result<_, InvokeError<Infallible>>`
[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 trait `From<momento_functions_wit::host::momento::host::aws_lambda::LambdaError>` is implemented for `InvokeError<E>`
[INFO] [stdout]   --> src/aws/lambda.rs:32:17
[INFO] [stdout]    |
[INFO] [stdout] 32 |     LambdaError(#[from] LambdaError),
[INFO] [stdout]    |                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&str: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]   --> src/aws/lambda.rs:79:1
[INFO] [stdout]    |
[INFO] [stdout] 79 | / client.invoke(
[INFO] [stdout] 80 | |     ("my_lambda_function", "v1"),
[INFO] [stdout] 81 | |     "hello world",
[INFO] [stdout] 82 | | )?;
[INFO] [stdout]    | |__^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `&str`
[INFO] [stdout]    |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]   --> src/encoding.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl EncodeError for Infallible {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]  9 |
[INFO] [stdout] 10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `InvokeError`
[INFO] [stdout]   --> src/aws/lambda.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum InvokeError<E>
[INFO] [stdout]    |          ----------- required by a bound in this enum
[INFO] [stdout] 21 | where
[INFO] [stdout] 22 |     E: EncodeError,
[INFO] [stdout]    |        ^^^^^^^^^^^ required by this bound in `InvokeError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `InvokeError<&str>`
[INFO] [stdout]   --> src/aws/lambda.rs:88:2
[INFO] [stdout]    |
[INFO] [stdout] 71 |   fn f(client: &LambdaClient) -> Result<(), InvokeError<&str>> {
[INFO] [stdout]    |                                  ----------------------------- expected `InvokeError<&str>` because of this
[INFO] [stdout] ...
[INFO] [stdout] 85 |   client.invoke(
[INFO] [stdout]    |  ________-
[INFO] [stdout] 86 | |     "my_lambda_function",
[INFO] [stdout] 87 | |     (),
[INFO] [stdout] 88 | | )?;
[INFO] [stdout]    | | -^ the trait `From<InvokeError<Infallible>>` is not implemented for `InvokeError<&str>`
[INFO] [stdout]    | |_|
[INFO] [stdout]    |   this can't be annotated with `?` because it has type `Result<_, InvokeError<Infallible>>`
[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 trait `From<momento_functions_wit::host::momento::host::aws_lambda::LambdaError>` is implemented for `InvokeError<E>`
[INFO] [stdout]   --> src/aws/lambda.rs:32:17
[INFO] [stdout]    |
[INFO] [stdout] 32 |     LambdaError(#[from] LambdaError),
[INFO] [stdout]    |                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&str: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]   --> src/aws/lambda.rs:85:1
[INFO] [stdout]    |
[INFO] [stdout] 85 | / client.invoke(
[INFO] [stdout] 86 | |     "my_lambda_function",
[INFO] [stdout] 87 | |     (),
[INFO] [stdout] 88 | | )?;
[INFO] [stdout]    | |__^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `&str`
[INFO] [stdout]    |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]   --> src/encoding.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl EncodeError for Infallible {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]  9 |
[INFO] [stdout] 10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `InvokeError`
[INFO] [stdout]   --> src/aws/lambda.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum InvokeError<E>
[INFO] [stdout]    |          ----------- required by a bound in this enum
[INFO] [stdout] 21 | where
[INFO] [stdout] 22 |     E: EncodeError,
[INFO] [stdout]    |        ^^^^^^^^^^^ required by this bound in `InvokeError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `InvokeError<&str>`
[INFO] [stdout]   --> src/aws/lambda.rs:94:2
[INFO] [stdout]    |
[INFO] [stdout] 71 |   fn f(client: &LambdaClient) -> Result<(), InvokeError<&str>> {
[INFO] [stdout]    |                                  ----------------------------- expected `InvokeError<&str>` because of this
[INFO] [stdout] ...
[INFO] [stdout] 91 |   client.invoke(
[INFO] [stdout]    |  ________-
[INFO] [stdout] 92 | |     "my_lambda_function",
[INFO] [stdout] 93 | |     b"some literal bytes".to_vec(),
[INFO] [stdout] 94 | | )?;
[INFO] [stdout]    | | -^ the trait `From<InvokeError<Infallible>>` is not implemented for `InvokeError<&str>`
[INFO] [stdout]    | |_|
[INFO] [stdout]    |   this can't be annotated with `?` because it has type `Result<_, InvokeError<Infallible>>`
[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 trait `From<momento_functions_wit::host::momento::host::aws_lambda::LambdaError>` is implemented for `InvokeError<E>`
[INFO] [stdout]   --> src/aws/lambda.rs:32:17
[INFO] [stdout]    |
[INFO] [stdout] 32 |     LambdaError(#[from] LambdaError),
[INFO] [stdout]    |                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&str: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]   --> src/aws/lambda.rs:91:1
[INFO] [stdout]    |
[INFO] [stdout] 91 | / client.invoke(
[INFO] [stdout] 92 | |     "my_lambda_function",
[INFO] [stdout] 93 | |     b"some literal bytes".to_vec(),
[INFO] [stdout] 94 | | )?;
[INFO] [stdout]    | |__^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `&str`
[INFO] [stdout]    |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]   --> src/encoding.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl EncodeError for Infallible {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]  9 |
[INFO] [stdout] 10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `InvokeError`
[INFO] [stdout]   --> src/aws/lambda.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum InvokeError<E>
[INFO] [stdout]    |          ----------- required by a bound in this enum
[INFO] [stdout] 21 | where
[INFO] [stdout] 22 |     E: EncodeError,
[INFO] [stdout]    |        ^^^^^^^^^^^ required by this bound in `InvokeError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&str: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]   --> src/aws/lambda.rs:95:1
[INFO] [stdout]    |
[INFO] [stdout] 95 | Ok(())}
[INFO] [stdout]    | ^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `&str`
[INFO] [stdout]    |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]   --> src/encoding.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl EncodeError for Infallible {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]  9 |
[INFO] [stdout] 10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `InvokeError`
[INFO] [stdout]   --> src/aws/lambda.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum InvokeError<E>
[INFO] [stdout]    |          ----------- required by a bound in this enum
[INFO] [stdout] 21 | where
[INFO] [stdout] 22 |     E: EncodeError,
[INFO] [stdout]    |        ^^^^^^^^^^^ required by this bound in `InvokeError`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 10 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/aws/ddb.rs - aws::ddb::Item (line 375) stdout ----
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `std::string::String`
[INFO] [stdout]    --> src/aws/ddb.rs:396:114
[INFO] [stdout]     |
[INFO] [stdout] 396 |             some_attribute: value.attributes.remove("some_attribute").ok_or("missing some_attribute")?.try_into()?,
[INFO] [stdout]     |                                                                                                        ----------^ the trait `From<ConversionError>` is not implemented for `std::string::String`
[INFO] [stdout]     |                                                                                                        |
[INFO] [stdout]     |                                                                                                        this can't be annotated with `?` because it has type `Result<_, ConversionError>`
[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::string::String` implements `From<&mut str>`
[INFO] [stdout]               `std::string::String` implements `From<&std::string::String>`
[INFO] [stdout]               `std::string::String` implements `From<&str>`
[INFO] [stdout]               `std::string::String` implements `From<Box<str>>`
[INFO] [stdout]               `std::string::String` implements `From<Cow<'_, str>>`
[INFO] [stdout]               `std::string::String` implements `From<char>`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/aws/auth.rs - aws::auth::AwsCredentialsProvider::new (line 97) stdout ----
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/aws/auth.rs:106:19
[INFO] [stdout]     |
[INFO] [stdout] 106 |         role_arn: "your-full-ARN-path-to-your-role"
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `String`, found `&str`
[INFO] [stdout]     |
[INFO] [stdout] help: try using a conversion method
[INFO] [stdout]     |
[INFO] [stdout] 106 |         role_arn: "your-full-ARN-path-to-your-role".to_string()
[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 E0308`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/cache.rs - cache::get (line 40) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `Vec<u8>: ExtractError` is not satisfied
[INFO] [stdout]   --> src/cache.rs:45:22
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn f() -> Result<(), CacheGetError<Vec<u8>>> {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^ the trait `ExtractError` is not implemented for `Vec<u8>`
[INFO] [stdout]    |
[INFO] [stdout] help: the following other types implement trait `ExtractError`
[INFO] [stdout]   --> src/encoding.rs:69:1
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl ExtractError for Infallible {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout] 70 |
[INFO] [stdout] 71 | impl ExtractError for serde_json::Error {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `CacheGetError`
[INFO] [stdout]   --> src/cache.rs:24:27
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub enum CacheGetError<E: ExtractError> {
[INFO] [stdout]    |                           ^^^^^^^^^^^^ required by this bound in `CacheGetError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Vec<u8>: ExtractError` is not satisfied
[INFO] [stdout]   --> src/cache.rs:46:30
[INFO] [stdout]    |
[INFO] [stdout] 46 | let value: Option<Vec<u8>> = cache::get("my_key")?;
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^ the trait `ExtractError` is not implemented for `Vec<u8>`
[INFO] [stdout]    |
[INFO] [stdout] help: the following other types implement trait `ExtractError`
[INFO] [stdout]   --> src/encoding.rs:69:1
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl ExtractError for Infallible {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout] 70 |
[INFO] [stdout] 71 | impl ExtractError for serde_json::Error {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `CacheGetError`
[INFO] [stdout]   --> src/cache.rs:24:27
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub enum CacheGetError<E: ExtractError> {
[INFO] [stdout]    |                           ^^^^^^^^^^^^ required by this bound in `CacheGetError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Vec<u8>: ExtractError` is not satisfied
[INFO] [stdout]   --> src/cache.rs:46:30
[INFO] [stdout]    |
[INFO] [stdout] 46 | let value: Option<Vec<u8>> = cache::get("my_key")?;
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^ the trait `ExtractError` is not implemented for `Vec<u8>`
[INFO] [stdout]    |
[INFO] [stdout] help: the following other types implement trait `ExtractError`
[INFO] [stdout]   --> src/encoding.rs:69:1
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl ExtractError for Infallible {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout] 70 |
[INFO] [stdout] 71 | impl ExtractError for serde_json::Error {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `CacheGetError`
[INFO] [stdout]   --> src/cache.rs:24:27
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub enum CacheGetError<E: ExtractError> {
[INFO] [stdout]    |                           ^^^^^^^^^^^^ required by this bound in `CacheGetError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Vec<u8>: ExtractError` is not satisfied
[INFO] [stdout]   --> src/cache.rs:46:50
[INFO] [stdout]    |
[INFO] [stdout] 46 | let value: Option<Vec<u8>> = cache::get("my_key")?;
[INFO] [stdout]    |                                                  ^ the trait `ExtractError` is not implemented for `Vec<u8>`
[INFO] [stdout]    |
[INFO] [stdout] help: the following other types implement trait `ExtractError`
[INFO] [stdout]   --> src/encoding.rs:69:1
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl ExtractError for Infallible {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout] 70 |
[INFO] [stdout] 71 | impl ExtractError for serde_json::Error {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `CacheGetError`
[INFO] [stdout]   --> src/cache.rs:24:27
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub enum CacheGetError<E: ExtractError> {
[INFO] [stdout]    |                           ^^^^^^^^^^^^ required by this bound in `CacheGetError`
[INFO] [stdout] 
[INFO] [stdout] error[E0271]: type mismatch resolving `<Vec<u8> as Extract>::Error == Vec<u8>`
[INFO] [stdout]   --> src/cache.rs:46:30
[INFO] [stdout]    |
[INFO] [stdout] 46 | let value: Option<Vec<u8>> = cache::get("my_key")?;
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^ expected `Vec<u8>`, found `Infallible`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Vec<u8>`
[INFO] [stdout]                 found enum `Infallible`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Vec<u8>: ExtractError` is not satisfied
[INFO] [stdout]   --> src/cache.rs:47:1
[INFO] [stdout]    |
[INFO] [stdout] 47 | Ok(()) }
[INFO] [stdout]    | ^^ the trait `ExtractError` is not implemented for `Vec<u8>`
[INFO] [stdout]    |
[INFO] [stdout] help: the following other types implement trait `ExtractError`
[INFO] [stdout]   --> src/encoding.rs:69:1
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl ExtractError for Infallible {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout] 70 |
[INFO] [stdout] 71 | impl ExtractError for serde_json::Error {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `CacheGetError`
[INFO] [stdout]   --> src/cache.rs:24:27
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub enum CacheGetError<E: ExtractError> {
[INFO] [stdout]    |                           ^^^^^^^^^^^^ required by this bound in `CacheGetError`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 6 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0271, E0277.
[INFO] [stdout] For more information about an error, try `rustc --explain E0271`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/aws/s3.rs - aws::s3::S3Client::new (line 56) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `momento_functions_host::aws::lambda::S3Client`
[INFO] [stdout]   --> src/aws/s3.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | use momento_functions_host::aws::lambda::S3Client;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `S3Client` in `aws::lambda`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct instead
[INFO] [stdout]    |
[INFO] [stdout] 59 - use momento_functions_host::aws::lambda::S3Client;
[INFO] [stdout] 59 + use momento_functions_host::aws::s3::S3Client;
[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 E0432`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/aws/lambda.rs - aws::lambda::LambdaClient::invoke (line 98) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `Json<MyStruct>: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/aws/lambda.rs:112:43
[INFO] [stdout]     |
[INFO] [stdout] 112 | fn f(client: &LambdaClient) -> Result<(), InvokeError<Json<MyStruct>>> {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `Json<MyStruct>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `InvokeError`
[INFO] [stdout]    --> src/aws/lambda.rs:22:8
[INFO] [stdout]     |
[INFO] [stdout]  20 | pub enum InvokeError<E>
[INFO] [stdout]     |          ----------- required by a bound in this enum
[INFO] [stdout]  21 | where
[INFO] [stdout]  22 |     E: EncodeError,
[INFO] [stdout]     |        ^^^^^^^^^^^ required by this bound in `InvokeError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `InvokeError<Json<MyStruct>>`
[INFO] [stdout]    --> src/aws/lambda.rs:117:2
[INFO] [stdout]     |
[INFO] [stdout] 112 |   fn f(client: &LambdaClient) -> Result<(), InvokeError<Json<MyStruct>>> {
[INFO] [stdout]     |                                  --------------------------------------- expected `InvokeError<Json<MyStruct>>` because of this
[INFO] [stdout] 113 |   // Just a request payload, encoded as JSON
[INFO] [stdout] 114 |   client.invoke(
[INFO] [stdout]     |  ________-
[INFO] [stdout] 115 | |     "my_lambda_function",
[INFO] [stdout] 116 | |     Json(MyStruct { hello: "hello".to_string() }),
[INFO] [stdout] 117 | | )?;
[INFO] [stdout]     | | -^ the trait `From<InvokeError<serde_json::error::Error>>` is not implemented for `InvokeError<Json<MyStruct>>`
[INFO] [stdout]     | |_|
[INFO] [stdout]     |   this can't be annotated with `?` because it has type `Result<_, InvokeError<serde_json::error::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 trait `From<momento_functions_wit::host::momento::host::aws_lambda::LambdaError>` is implemented for `InvokeError<E>`
[INFO] [stdout]    --> src/aws/lambda.rs:32:17
[INFO] [stdout]     |
[INFO] [stdout]  32 |     LambdaError(#[from] LambdaError),
[INFO] [stdout]     |                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Json<MyStruct>: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/aws/lambda.rs:114:1
[INFO] [stdout]     |
[INFO] [stdout] 114 | / client.invoke(
[INFO] [stdout] 115 | |     "my_lambda_function",
[INFO] [stdout] 116 | |     Json(MyStruct { hello: "hello".to_string() }),
[INFO] [stdout] 117 | | )?;
[INFO] [stdout]     | |__^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `Json<MyStruct>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `InvokeError`
[INFO] [stdout]    --> src/aws/lambda.rs:22:8
[INFO] [stdout]     |
[INFO] [stdout]  20 | pub enum InvokeError<E>
[INFO] [stdout]     |          ----------- required by a bound in this enum
[INFO] [stdout]  21 | where
[INFO] [stdout]  22 |     E: EncodeError,
[INFO] [stdout]     |        ^^^^^^^^^^^ required by this bound in `InvokeError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `InvokeError<Json<MyStruct>>`
[INFO] [stdout]    --> src/aws/lambda.rs:123:2
[INFO] [stdout]     |
[INFO] [stdout] 112 |   fn f(client: &LambdaClient) -> Result<(), InvokeError<Json<MyStruct>>> {
[INFO] [stdout]     |                                  --------------------------------------- expected `InvokeError<Json<MyStruct>>` because of this
[INFO] [stdout] ...
[INFO] [stdout] 120 |   let Json(reply): Json<Reply> = client.invoke(
[INFO] [stdout]     |  _______________________________________-
[INFO] [stdout] 121 | |     "my_lambda_function",
[INFO] [stdout] 122 | |     Json(MyStruct { hello: "hello".to_string() }),
[INFO] [stdout] 123 | | )?
[INFO] [stdout]     | | -^ the trait `From<InvokeError<serde_json::error::Error>>` is not implemented for `InvokeError<Json<MyStruct>>`
[INFO] [stdout]     | |_|
[INFO] [stdout]     |   this can't be annotated with `?` because it has type `Result<_, InvokeError<serde_json::error::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 trait `From<momento_functions_wit::host::momento::host::aws_lambda::LambdaError>` is implemented for `InvokeError<E>`
[INFO] [stdout]    --> src/aws/lambda.rs:32:17
[INFO] [stdout]     |
[INFO] [stdout]  32 |     LambdaError(#[from] LambdaError),
[INFO] [stdout]     |                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Json<MyStruct>: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/aws/lambda.rs:120:32
[INFO] [stdout]     |
[INFO] [stdout] 120 |   let Json(reply): Json<Reply> = client.invoke(
[INFO] [stdout]     |  ________________________________^
[INFO] [stdout] 121 | |     "my_lambda_function",
[INFO] [stdout] 122 | |     Json(MyStruct { hello: "hello".to_string() }),
[INFO] [stdout] 123 | | )?
[INFO] [stdout]     | |__^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `Json<MyStruct>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `InvokeError`
[INFO] [stdout]    --> src/aws/lambda.rs:22:8
[INFO] [stdout]     |
[INFO] [stdout]  20 | pub enum InvokeError<E>
[INFO] [stdout]     |          ----------- required by a bound in this enum
[INFO] [stdout]  21 | where
[INFO] [stdout]  22 |     E: EncodeError,
[INFO] [stdout]     |        ^^^^^^^^^^^ required by this bound in `InvokeError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `InvokeError<Json<MyStruct>>`
[INFO] [stdout]    --> src/aws/lambda.rs:124:11
[INFO] [stdout]     |
[INFO] [stdout] 112 | fn f(client: &LambdaClient) -> Result<(), InvokeError<Json<MyStruct>>> {
[INFO] [stdout]     |                                --------------------------------------- expected `InvokeError<Json<MyStruct>>` because of this
[INFO] [stdout] ...
[INFO] [stdout] 124 | .extract()?;
[INFO] [stdout]     |  ---------^ the trait `From<ResponseExtractError<_>>` is not implemented for `InvokeError<Json<MyStruct>>`
[INFO] [stdout]     |  |
[INFO] [stdout]     |  this can't be annotated with `?` because it has type `Result<_, ResponseExtractError<_>>`
[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 trait `From<momento_functions_wit::host::momento::host::aws_lambda::LambdaError>` is implemented for `InvokeError<E>`
[INFO] [stdout]    --> src/aws/lambda.rs:32:17
[INFO] [stdout]     |
[INFO] [stdout]  32 |     LambdaError(#[from] LambdaError),
[INFO] [stdout]     |                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Json<MyStruct>: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/aws/lambda.rs:120:32
[INFO] [stdout]     |
[INFO] [stdout] 120 |   let Json(reply): Json<Reply> = client.invoke(
[INFO] [stdout]     |  ________________________________^
[INFO] [stdout] 121 | |     "my_lambda_function",
[INFO] [stdout] 122 | |     Json(MyStruct { hello: "hello".to_string() }),
[INFO] [stdout] 123 | | )?
[INFO] [stdout] 124 | | .extract()?;
[INFO] [stdout]     | |___________^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `Json<MyStruct>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `InvokeError`
[INFO] [stdout]    --> src/aws/lambda.rs:22:8
[INFO] [stdout]     |
[INFO] [stdout]  20 | pub enum InvokeError<E>
[INFO] [stdout]     |          ----------- required by a bound in this enum
[INFO] [stdout]  21 | where
[INFO] [stdout]  22 |     E: EncodeError,
[INFO] [stdout]     |        ^^^^^^^^^^^ required by this bound in `InvokeError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Json<MyStruct>: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/aws/lambda.rs:127:1
[INFO] [stdout]     |
[INFO] [stdout] 127 | Ok(())}
[INFO] [stdout]     | ^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `Json<MyStruct>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `InvokeError`
[INFO] [stdout]    --> src/aws/lambda.rs:22:8
[INFO] [stdout]     |
[INFO] [stdout]  20 | pub enum InvokeError<E>
[INFO] [stdout]     |          ----------- required by a bound in this enum
[INFO] [stdout]  21 | where
[INFO] [stdout]  22 |     E: EncodeError,
[INFO] [stdout]     |        ^^^^^^^^^^^ required by this bound in `InvokeError`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 8 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/aws/s3.rs - aws::s3::S3Client::put (line 84) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `&str: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]   --> src/aws/s3.rs:89:39
[INFO] [stdout]    |
[INFO] [stdout] 89 | fn f(client: &S3Client) -> Result<(), S3PutError<&str>> {
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `&str`
[INFO] [stdout]    |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]   --> src/encoding.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl EncodeError for Infallible {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]  9 |
[INFO] [stdout] 10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `S3PutError`
[INFO] [stdout]   --> src/aws/s3.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub enum S3PutError<E>
[INFO] [stdout]    |          ---------- required by a bound in this enum
[INFO] [stdout] 22 | where
[INFO] [stdout] 23 |     E: EncodeError,
[INFO] [stdout]    |        ^^^^^^^^^^^ required by this bound in `S3PutError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `S3PutError<&str>`
[INFO] [stdout]   --> src/aws/s3.rs:95:2
[INFO] [stdout]    |
[INFO] [stdout] 89 |   fn f(client: &S3Client) -> Result<(), S3PutError<&str>> {
[INFO] [stdout]    |                              ---------------------------- expected `S3PutError<&str>` because of this
[INFO] [stdout] 90 |   // With a payload
[INFO] [stdout] 91 |   client.put(
[INFO] [stdout]    |  ________-
[INFO] [stdout] 92 | |     "my-bucket",
[INFO] [stdout] 93 | |     "foo",
[INFO] [stdout] 94 | |     "bar",
[INFO] [stdout] 95 | | )?;
[INFO] [stdout]    | | -^ the trait `From<S3PutError<Infallible>>` is not implemented for `S3PutError<&str>`
[INFO] [stdout]    | |_|
[INFO] [stdout]    |   this can't be annotated with `?` because it has type `Result<_, S3PutError<Infallible>>`
[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 trait `From<momento_functions_wit::host::momento::host::aws_s3::S3Error>` is implemented for `S3PutError<E>`
[INFO] [stdout]   --> src/aws/s3.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 |     S3Error(#[from] S3Error),
[INFO] [stdout]    |             ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&str: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]   --> src/aws/s3.rs:91:1
[INFO] [stdout]    |
[INFO] [stdout] 91 | / client.put(
[INFO] [stdout] 92 | |     "my-bucket",
[INFO] [stdout] 93 | |     "foo",
[INFO] [stdout] 94 | |     "bar",
[INFO] [stdout] 95 | | )?;
[INFO] [stdout]    | |__^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `&str`
[INFO] [stdout]    |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]   --> src/encoding.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl EncodeError for Infallible {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]  9 |
[INFO] [stdout] 10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `S3PutError`
[INFO] [stdout]   --> src/aws/s3.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub enum S3PutError<E>
[INFO] [stdout]    |          ---------- required by a bound in this enum
[INFO] [stdout] 22 | where
[INFO] [stdout] 23 |     E: EncodeError,
[INFO] [stdout]    |        ^^^^^^^^^^^ required by this bound in `S3PutError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&[u8; 3]: Encode` is not satisfied
[INFO] [stdout]    --> src/aws/s3.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout]  98 | client.put(
[INFO] [stdout]     |        --- required by a bound introduced by this call
[INFO] [stdout] ...
[INFO] [stdout] 101 |     b"bar",
[INFO] [stdout]     |     ^^^^^^ the trait `Encode` is not implemented for `&[u8; 3]`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Encode` is implemented for `&[u8]`
[INFO] [stdout]    --> src/encoding.rs:26:1
[INFO] [stdout]     |
[INFO] [stdout]  26 | impl Encode for &[u8] {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `S3Client::put`
[INFO] [stdout]    --> src/aws/s3.rs:125:19
[INFO] [stdout]     |
[INFO] [stdout] 125 |     pub fn put<E: Encode>(
[INFO] [stdout]     |                   ^^^^^^ required by this bound in `S3Client::put`
[INFO] [stdout] help: convert the array to a `&[u8]` slice instead
[INFO] [stdout]     |
[INFO] [stdout] 101 |     &b"bar"[..],
[INFO] [stdout]     |     +      ++++
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&str: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/aws/s3.rs:98:1
[INFO] [stdout]     |
[INFO] [stdout]  98 | / client.put(
[INFO] [stdout]  99 | |     "my-bucket",
[INFO] [stdout] 100 | |     "foo",
[INFO] [stdout] 101 | |     b"bar",
[INFO] [stdout] 102 | | )?;
[INFO] [stdout]     | |_^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `&str`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `S3PutError`
[INFO] [stdout]    --> src/aws/s3.rs:23:8
[INFO] [stdout]     |
[INFO] [stdout]  21 | pub enum S3PutError<E>
[INFO] [stdout]     |          ---------- required by a bound in this enum
[INFO] [stdout]  22 | where
[INFO] [stdout]  23 |     E: EncodeError,
[INFO] [stdout]     |        ^^^^^^^^^^^ required by this bound in `S3PutError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&str: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]   --> src/aws/s3.rs:98:8
[INFO] [stdout]    |
[INFO] [stdout] 98 | client.put(
[INFO] [stdout]    |        ^^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `&str`
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] [stdout]    |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]   --> src/encoding.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl EncodeError for Infallible {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]  9 |
[INFO] [stdout] 10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `S3PutError`
[INFO] [stdout]   --> src/aws/s3.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub enum S3PutError<E>
[INFO] [stdout]    |          ---------- required by a bound in this enum
[INFO] [stdout] 22 | where
[INFO] [stdout] 23 |     E: EncodeError,
[INFO] [stdout]    |        ^^^^^^^^^^^ required by this bound in `S3PutError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&str: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/aws/s3.rs:98:1
[INFO] [stdout]     |
[INFO] [stdout]  98 | / client.put(
[INFO] [stdout]  99 | |     "my-bucket",
[INFO] [stdout] 100 | |     "foo",
[INFO] [stdout] 101 | |     b"bar",
[INFO] [stdout] 102 | | )?;
[INFO] [stdout]     | |__^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `&str`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `S3PutError`
[INFO] [stdout]    --> src/aws/s3.rs:23:8
[INFO] [stdout]     |
[INFO] [stdout]  21 | pub enum S3PutError<E>
[INFO] [stdout]     |          ---------- required by a bound in this enum
[INFO] [stdout]  22 | where
[INFO] [stdout]  23 |     E: EncodeError,
[INFO] [stdout]     |        ^^^^^^^^^^^ required by this bound in `S3PutError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&str: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/aws/s3.rs:102:2
[INFO] [stdout]     |
[INFO] [stdout] 102 | )?;
[INFO] [stdout]     |  ^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `&str`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `S3PutError`
[INFO] [stdout]    --> src/aws/s3.rs:23:8
[INFO] [stdout]     |
[INFO] [stdout]  21 | pub enum S3PutError<E>
[INFO] [stdout]     |          ---------- required by a bound in this enum
[INFO] [stdout]  22 | where
[INFO] [stdout]  23 |     E: EncodeError,
[INFO] [stdout]     |        ^^^^^^^^^^^ required by this bound in `S3PutError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&str: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/aws/s3.rs:103:1
[INFO] [stdout]     |
[INFO] [stdout] 103 | Ok(())}
[INFO] [stdout]     | ^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `&str`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `S3PutError`
[INFO] [stdout]    --> src/aws/s3.rs:23:8
[INFO] [stdout]     |
[INFO] [stdout]  21 | pub enum S3PutError<E>
[INFO] [stdout]     |          ---------- required by a bound in this enum
[INFO] [stdout]  22 | where
[INFO] [stdout]  23 |     E: EncodeError,
[INFO] [stdout]     |        ^^^^^^^^^^^ required by this bound in `S3PutError`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 9 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/cache.rs - cache::set (line 78) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `&'static str: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]   --> src/cache.rs:84:11
[INFO] [stdout]    |
[INFO] [stdout] 84 | fn f() -> Result<(), CacheSetError<&'static str>> {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `&'static str`
[INFO] [stdout]    |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]   --> src/encoding.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl EncodeError for Infallible {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]  9 |
[INFO] [stdout] 10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `CacheSetError`
[INFO] [stdout]   --> src/cache.rs:10:27
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum CacheSetError<E: EncodeError> {
[INFO] [stdout]    |                           ^^^^^^^^^^^ required by this bound in `CacheSetError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `CacheSetError<&str>`
[INFO] [stdout]   --> src/cache.rs:89:2
[INFO] [stdout]    |
[INFO] [stdout] 84 |   fn f() -> Result<(), CacheSetError<&'static str>> {
[INFO] [stdout]    |             --------------------------------------- expected `CacheSetError<&str>` because of this
[INFO] [stdout] 85 | / cache::set(
[INFO] [stdout] 86 | |     "my_key",
[INFO] [stdout] 87 | |     b"hello".to_vec(),
[INFO] [stdout] 88 | |     Duration::from_secs(60),
[INFO] [stdout] 89 | | )?;
[INFO] [stdout]    | | -^ the trait `From<CacheSetError<Infallible>>` is not implemented for `CacheSetError<&str>`
[INFO] [stdout]    | |_|
[INFO] [stdout]    |   this can't be annotated with `?` because it has type `Result<_, CacheSetError<Infallible>>`
[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 trait `From<momento_functions_wit::host::momento::functions::cache_scalar::Error>` is implemented for `CacheSetError<E>`
[INFO] [stdout]   --> src/cache.rs:19:16
[INFO] [stdout]    |
[INFO] [stdout] 19 |     CacheError(#[from] cache_scalar::Error),
[INFO] [stdout]    |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&str: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]   --> src/cache.rs:85:1
[INFO] [stdout]    |
[INFO] [stdout] 85 | / cache::set(
[INFO] [stdout] 86 | |     "my_key",
[INFO] [stdout] 87 | |     b"hello".to_vec(),
[INFO] [stdout] 88 | |     Duration::from_secs(60),
[INFO] [stdout] 89 | | )?;
[INFO] [stdout]    | |__^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `&str`
[INFO] [stdout]    |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]   --> src/encoding.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl EncodeError for Infallible {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]  9 |
[INFO] [stdout] 10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `CacheSetError`
[INFO] [stdout]   --> src/cache.rs:10:27
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum CacheSetError<E: EncodeError> {
[INFO] [stdout]    |                           ^^^^^^^^^^^ required by this bound in `CacheSetError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&str: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]   --> src/cache.rs:90:1
[INFO] [stdout]    |
[INFO] [stdout] 90 | Ok(()) }
[INFO] [stdout]    | ^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `&str`
[INFO] [stdout]    |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]   --> src/encoding.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl EncodeError for Infallible {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]  9 |
[INFO] [stdout] 10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `CacheSetError`
[INFO] [stdout]   --> src/cache.rs:10:27
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum CacheSetError<E: EncodeError> {
[INFO] [stdout]    |                           ^^^^^^^^^^^ required by this bound in `CacheSetError`
[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/cache.rs - cache::get (line 50) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `Json<MyStruct>: ExtractError` is not satisfied
[INFO] [stdout]   --> src/cache.rs:61:22
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn f() -> Result<(), CacheGetError<Json<MyStruct>>> {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ExtractError` is not implemented for `Json<MyStruct>`
[INFO] [stdout]    |
[INFO] [stdout] help: the following other types implement trait `ExtractError`
[INFO] [stdout]   --> src/encoding.rs:69:1
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl ExtractError for Infallible {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout] 70 |
[INFO] [stdout] 71 | impl ExtractError for serde_json::Error {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `CacheGetError`
[INFO] [stdout]   --> src/cache.rs:24:27
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub enum CacheGetError<E: ExtractError> {
[INFO] [stdout]    |                           ^^^^^^^^^^^^ required by this bound in `CacheGetError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Json<MyStruct>: ExtractError` is not satisfied
[INFO] [stdout]   --> src/cache.rs:62:37
[INFO] [stdout]    |
[INFO] [stdout] 62 | let value: Option<Json<MyStruct>> = cache::get("my_key")?;
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^^^^^^ the trait `ExtractError` is not implemented for `Json<MyStruct>`
[INFO] [stdout]    |
[INFO] [stdout] help: the following other types implement trait `ExtractError`
[INFO] [stdout]   --> src/encoding.rs:69:1
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl ExtractError for Infallible {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout] 70 |
[INFO] [stdout] 71 | impl ExtractError for serde_json::Error {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `CacheGetError`
[INFO] [stdout]   --> src/cache.rs:24:27
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub enum CacheGetError<E: ExtractError> {
[INFO] [stdout]    |                           ^^^^^^^^^^^^ required by this bound in `CacheGetError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Json<MyStruct>: ExtractError` is not satisfied
[INFO] [stdout]   --> src/cache.rs:62:37
[INFO] [stdout]    |
[INFO] [stdout] 62 | let value: Option<Json<MyStruct>> = cache::get("my_key")?;
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^^^^^^^ the trait `ExtractError` is not implemented for `Json<MyStruct>`
[INFO] [stdout]    |
[INFO] [stdout] help: the following other types implement trait `ExtractError`
[INFO] [stdout]   --> src/encoding.rs:69:1
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl ExtractError for Infallible {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout] 70 |
[INFO] [stdout] 71 | impl ExtractError for serde_json::Error {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `CacheGetError`
[INFO] [stdout]   --> src/cache.rs:24:27
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub enum CacheGetError<E: ExtractError> {
[INFO] [stdout]    |                           ^^^^^^^^^^^^ required by this bound in `CacheGetError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Json<MyStruct>: ExtractError` is not satisfied
[INFO] [stdout]   --> src/cache.rs:62:57
[INFO] [stdout]    |
[INFO] [stdout] 62 | let value: Option<Json<MyStruct>> = cache::get("my_key")?;
[INFO] [stdout]    |                                                         ^ the trait `ExtractError` is not implemented for `Json<MyStruct>`
[INFO] [stdout]    |
[INFO] [stdout] help: the following other types implement trait `ExtractError`
[INFO] [stdout]   --> src/encoding.rs:69:1
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl ExtractError for Infallible {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout] 70 |
[INFO] [stdout] 71 | impl ExtractError for serde_json::Error {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `CacheGetError`
[INFO] [stdout]   --> src/cache.rs:24:27
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub enum CacheGetError<E: ExtractError> {
[INFO] [stdout]    |                           ^^^^^^^^^^^^ required by this bound in `CacheGetError`
[INFO] [stdout] 
[INFO] [stdout] error[E0271]: type mismatch resolving `<Json<MyStruct> as Extract>::Error == Json<MyStruct>`
[INFO] [stdout]   --> src/cache.rs:62:37
[INFO] [stdout]    |
[INFO] [stdout] 62 | let value: Option<Json<MyStruct>> = cache::get("my_key")?;
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^^^^^^ expected `Json<MyStruct>`, found `Error`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Json<MyStruct>`
[INFO] [stdout]               found struct `serde_json::error::Error`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Json<MyStruct>: ExtractError` is not satisfied
[INFO] [stdout]   --> src/cache.rs:63:1
[INFO] [stdout]    |
[INFO] [stdout] 63 | Ok(()) }
[INFO] [stdout]    | ^^ the trait `ExtractError` is not implemented for `Json<MyStruct>`
[INFO] [stdout]    |
[INFO] [stdout] help: the following other types implement trait `ExtractError`
[INFO] [stdout]   --> src/encoding.rs:69:1
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl ExtractError for Infallible {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout] 70 |
[INFO] [stdout] 71 | impl ExtractError for serde_json::Error {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `CacheGetError`
[INFO] [stdout]   --> src/cache.rs:24:27
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub enum CacheGetError<E: ExtractError> {
[INFO] [stdout]    |                           ^^^^^^^^^^^^ required by this bound in `CacheGetError`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 6 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0271, E0277.
[INFO] [stdout] For more information about an error, try `rustc --explain E0271`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/http.rs - http::put_aws_sigv4 (line 357) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `Json<MyStruct>: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/http.rs:367:22
[INFO] [stdout]     |
[INFO] [stdout] 367 | fn f() -> Result<(), http::HttpPutError<Json<MyStruct>>> {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `Json<MyStruct>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `HttpPutError`
[INFO] [stdout]    --> src/http.rs:102:26
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub enum HttpPutError<E: EncodeError> {
[INFO] [stdout]     |                          ^^^^^^^^^^^ required by this bound in `HttpPutError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `HttpPutError<Json<MyStruct>>`
[INFO] [stdout]    --> src/http.rs:378:2
[INFO] [stdout]     |
[INFO] [stdout] 367 |   fn f() -> Result<(), http::HttpPutError<Json<MyStruct>>> {
[INFO] [stdout]     |             ---------------------------------------------- expected `HttpPutError<Json<MyStruct>>` because of this
[INFO] [stdout] 368 |
[INFO] [stdout] 369 | / http::put_aws_sigv4(
[INFO] [stdout] 370 | |     "https://gomomento.com",
[INFO] [stdout] 371 | |     [
[INFO] [stdout] 372 | |         ("authorization".to_string(), "abc123".to_string()),
[INFO] [stdout] ...   |
[INFO] [stdout] 377 | |     Json(MyStruct { message: "hello".to_string() })
[INFO] [stdout] 378 | | )?;
[INFO] [stdout]     | | -^ the trait `From<HttpPutError<serde_json::error::Error>>` is not implemented for `HttpPutError<Json<MyStruct>>`
[INFO] [stdout]     | |_|
[INFO] [stdout]     |   this can't be annotated with `?` because it has type `Result<_, HttpPutError<serde_json::error::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 trait `From<momento_functions_wit::host::momento::host::http::Error>` is implemented for `HttpPutError<E>`
[INFO] [stdout]    --> src/http.rs:105:15
[INFO] [stdout]     |
[INFO] [stdout] 105 |     HttpError(#[from] http::Error),
[INFO] [stdout]     |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Json<MyStruct>: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/http.rs:369:1
[INFO] [stdout]     |
[INFO] [stdout] 369 | / http::put_aws_sigv4(
[INFO] [stdout] 370 | |     "https://gomomento.com",
[INFO] [stdout] 371 | |     [
[INFO] [stdout] 372 | |         ("authorization".to_string(), "abc123".to_string()),
[INFO] [stdout] ...   |
[INFO] [stdout] 377 | |     Json(MyStruct { message: "hello".to_string() })
[INFO] [stdout] 378 | | )?;
[INFO] [stdout]     | |__^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `Json<MyStruct>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `HttpPutError`
[INFO] [stdout]    --> src/http.rs:102:26
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub enum HttpPutError<E: EncodeError> {
[INFO] [stdout]     |                          ^^^^^^^^^^^ required by this bound in `HttpPutError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Json<MyStruct>: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/http.rs:379:1
[INFO] [stdout]     |
[INFO] [stdout] 379 | Ok(()) }
[INFO] [stdout]     | ^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `Json<MyStruct>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `HttpPutError`
[INFO] [stdout]    --> src/http.rs:102:26
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub enum HttpPutError<E: EncodeError> {
[INFO] [stdout]     |                          ^^^^^^^^^^^ required by this bound in `HttpPutError`
[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/cache.rs - cache::set (line 93) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `Json<MyStruct>: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/cache.rs:105:22
[INFO] [stdout]     |
[INFO] [stdout] 105 | fn f() -> Result<(), CacheSetError<Json<MyStruct>>> {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `Json<MyStruct>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `CacheSetError`
[INFO] [stdout]    --> src/cache.rs:10:27
[INFO] [stdout]     |
[INFO] [stdout]  10 | pub enum CacheSetError<E: EncodeError> {
[INFO] [stdout]     |                           ^^^^^^^^^^^ required by this bound in `CacheSetError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `CacheSetError<Json<MyStruct>>`
[INFO] [stdout]    --> src/cache.rs:110:2
[INFO] [stdout]     |
[INFO] [stdout] 105 |   fn f() -> Result<(), CacheSetError<Json<MyStruct>>> {
[INFO] [stdout]     |             ----------------------------------------- expected `CacheSetError<Json<MyStruct>>` because of this
[INFO] [stdout] 106 | / cache::set(
[INFO] [stdout] 107 | |     "my_key",
[INFO] [stdout] 108 | |     Json(MyStruct { hello: "hello".to_string() }),
[INFO] [stdout] 109 | |     Duration::from_secs(60),
[INFO] [stdout] 110 | | )?;
[INFO] [stdout]     | | -^ the trait `From<CacheSetError<serde_json::error::Error>>` is not implemented for `CacheSetError<Json<MyStruct>>`
[INFO] [stdout]     | |_|
[INFO] [stdout]     |   this can't be annotated with `?` because it has type `Result<_, CacheSetError<serde_json::error::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 trait `From<momento_functions_wit::host::momento::functions::cache_scalar::Error>` is implemented for `CacheSetError<E>`
[INFO] [stdout]    --> src/cache.rs:19:16
[INFO] [stdout]     |
[INFO] [stdout]  19 |     CacheError(#[from] cache_scalar::Error),
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Json<MyStruct>: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/cache.rs:106:1
[INFO] [stdout]     |
[INFO] [stdout] 106 | / cache::set(
[INFO] [stdout] 107 | |     "my_key",
[INFO] [stdout] 108 | |     Json(MyStruct { hello: "hello".to_string() }),
[INFO] [stdout] 109 | |     Duration::from_secs(60),
[INFO] [stdout] 110 | | )?;
[INFO] [stdout]     | |__^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `Json<MyStruct>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `CacheSetError`
[INFO] [stdout]    --> src/cache.rs:10:27
[INFO] [stdout]     |
[INFO] [stdout]  10 | pub enum CacheSetError<E: EncodeError> {
[INFO] [stdout]     |                           ^^^^^^^^^^^ required by this bound in `CacheSetError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Json<MyStruct>: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/cache.rs:111:1
[INFO] [stdout]     |
[INFO] [stdout] 111 | Ok(()) }
[INFO] [stdout]     | ^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `Json<MyStruct>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `CacheSetError`
[INFO] [stdout]    --> src/cache.rs:10:27
[INFO] [stdout]     |
[INFO] [stdout]  10 | pub enum CacheSetError<E: EncodeError> {
[INFO] [stdout]     |                           ^^^^^^^^^^^ required by this bound in `CacheSetError`
[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/aws/s3.rs - aws::s3::S3Client::put (line 106) stdout ----
[INFO] [stdout] error[E0425]: cannot find type `S3EPutrror` in this scope
[INFO] [stdout]    --> src/aws/s3.rs:116:39
[INFO] [stdout]     |
[INFO] [stdout] 116 | fn f(client: &S3Client) -> Result<(), S3EPutrror<Json<MyStruct>>> {
[INFO] [stdout]     |                                       ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/aws/s3.rs:21:1
[INFO] [stdout]     |
[INFO] [stdout]  21 | pub enum S3PutError<E>
[INFO] [stdout]     | ---------------------- similarly named enum `S3PutError` defined here
[INFO] [stdout]     |
[INFO] [stdout] help: an enum with a similar name exists
[INFO] [stdout]     |
[INFO] [stdout] 116 - fn f(client: &S3Client) -> Result<(), S3EPutrror<Json<MyStruct>>> {
[INFO] [stdout] 116 + fn f(client: &S3Client) -> Result<(), S3PutError<Json<MyStruct>>> {
[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 E0425`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/token.rs - token::CachePermissions::new (line 232) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `CachePermissions`
[INFO] [stdout]    --> src/token.rs:233:13
[INFO] [stdout]     |
[INFO] [stdout] 233 | let perms = CachePermissions::new()
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ use of undeclared type `CachePermissions`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 232 + use momento_functions_host::token::CachePermissions;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `CacheRole`
[INFO] [stdout]    --> src/token.rs:234:16
[INFO] [stdout]     |
[INFO] [stdout] 234 |     .with_role(CacheRole::CacheReadWrite)
[INFO] [stdout]     |                ^^^^^^^^^ use of undeclared type `CacheRole`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this enum
[INFO] [stdout]     |
[INFO] [stdout] 232 + use momento_functions_host::token::CacheRole;
[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 E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/http.rs - http::put (line 116) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `&'static str: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/http.rs:120:11
[INFO] [stdout]     |
[INFO] [stdout] 120 | fn f() -> Result<(), HttpPutError<&'static str>> {
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `&'static str`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `HttpPutError`
[INFO] [stdout]    --> src/http.rs:102:26
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub enum HttpPutError<E: EncodeError> {
[INFO] [stdout]     |                          ^^^^^^^^^^^ required by this bound in `HttpPutError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Json<MyStruct>: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/http.rs:130:22
[INFO] [stdout]     |
[INFO] [stdout] 130 | fn g() -> Result<(), HttpPutError<Json<MyStruct>>> {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `Json<MyStruct>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `HttpPutError`
[INFO] [stdout]    --> src/http.rs:102:26
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub enum HttpPutError<E: EncodeError> {
[INFO] [stdout]     |                          ^^^^^^^^^^^ required by this bound in `HttpPutError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `HttpPutError<&str>`
[INFO] [stdout]    --> src/http.rs:121:58
[INFO] [stdout]     |
[INFO] [stdout] 120 | fn f() -> Result<(), HttpPutError<&'static str>> {
[INFO] [stdout]     |           -------------------------------------- expected `HttpPutError<&str>` because of this
[INFO] [stdout] 121 | http::put("https://gomomento.com", [], b"hello".as_ref())?;
[INFO] [stdout]     | ---------------------------------------------------------^ the trait `From<HttpPutError<Infallible>>` is not implemented for `HttpPutError<&str>`
[INFO] [stdout]     | |
[INFO] [stdout]     | this can't be annotated with `?` because it has type `Result<_, HttpPutError<Infallible>>`
[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 trait `From<momento_functions_wit::host::momento::host::http::Error>` is implemented for `HttpPutError<E>`
[INFO] [stdout]    --> src/http.rs:105:15
[INFO] [stdout]     |
[INFO] [stdout] 105 |     HttpError(#[from] http::Error),
[INFO] [stdout]     |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&str: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/http.rs:121:1
[INFO] [stdout]     |
[INFO] [stdout] 121 | http::put("https://gomomento.com", [], b"hello".as_ref())?;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `&str`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `HttpPutError`
[INFO] [stdout]    --> src/http.rs:102:26
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub enum HttpPutError<E: EncodeError> {
[INFO] [stdout]     |                          ^^^^^^^^^^^ required by this bound in `HttpPutError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&str: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/http.rs:122:1
[INFO] [stdout]     |
[INFO] [stdout] 122 | Ok(())}
[INFO] [stdout]     | ^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `&str`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `HttpPutError`
[INFO] [stdout]    --> src/http.rs:102:26
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub enum HttpPutError<E: EncodeError> {
[INFO] [stdout]     |                          ^^^^^^^^^^^ required by this bound in `HttpPutError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `HttpPutError<Json<MyStruct>>`
[INFO] [stdout]    --> src/http.rs:137:2
[INFO] [stdout]     |
[INFO] [stdout] 130 |   fn g() -> Result<(), HttpPutError<Json<MyStruct>>> {
[INFO] [stdout]     |             ---------------------------------------- expected `HttpPutError<Json<MyStruct>>` because of this
[INFO] [stdout] 131 | / http::put(
[INFO] [stdout] 132 | |     "https://gomomento.com",
[INFO] [stdout] 133 | |     [
[INFO] [stdout] 134 | |         ("authorization".to_string(), "abc123".to_string()),
[INFO] [stdout] 135 | |     ],
[INFO] [stdout] 136 | |     Json(MyStruct { message: "hello".to_string() })
[INFO] [stdout] 137 | | )?;
[INFO] [stdout]     | | -^ the trait `From<HttpPutError<serde_json::error::Error>>` is not implemented for `HttpPutError<Json<MyStruct>>`
[INFO] [stdout]     | |_|
[INFO] [stdout]     |   this can't be annotated with `?` because it has type `Result<_, HttpPutError<serde_json::error::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 trait `From<momento_functions_wit::host::momento::host::http::Error>` is implemented for `HttpPutError<E>`
[INFO] [stdout]    --> src/http.rs:105:15
[INFO] [stdout]     |
[INFO] [stdout] 105 |     HttpError(#[from] http::Error),
[INFO] [stdout]     |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Json<MyStruct>: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/http.rs:131:1
[INFO] [stdout]     |
[INFO] [stdout] 131 | / http::put(
[INFO] [stdout] 132 | |     "https://gomomento.com",
[INFO] [stdout] 133 | |     [
[INFO] [stdout] 134 | |         ("authorization".to_string(), "abc123".to_string()),
[INFO] [stdout] 135 | |     ],
[INFO] [stdout] 136 | |     Json(MyStruct { message: "hello".to_string() })
[INFO] [stdout] 137 | | )?;
[INFO] [stdout]     | |__^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `Json<MyStruct>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `HttpPutError`
[INFO] [stdout]    --> src/http.rs:102:26
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub enum HttpPutError<E: EncodeError> {
[INFO] [stdout]     |                          ^^^^^^^^^^^ required by this bound in `HttpPutError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Json<MyStruct>: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/http.rs:138:1
[INFO] [stdout]     |
[INFO] [stdout] 138 | Ok(())}
[INFO] [stdout]     | ^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `Json<MyStruct>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `HttpPutError`
[INFO] [stdout]    --> src/http.rs:102:26
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub enum HttpPutError<E: EncodeError> {
[INFO] [stdout]     |                          ^^^^^^^^^^^ required by this bound in `HttpPutError`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 8 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/http.rs - http::post_aws_sigv4 (line 410) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `Json<MyStruct>: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/http.rs:420:22
[INFO] [stdout]     |
[INFO] [stdout] 420 | fn f() -> Result<(), http::HttpPostError<Json<MyStruct>>> {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `Json<MyStruct>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `HttpPostError`
[INFO] [stdout]    --> src/http.rs:166:27
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub enum HttpPostError<E: EncodeError> {
[INFO] [stdout]     |                           ^^^^^^^^^^^ required by this bound in `HttpPostError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `HttpPostError<Json<MyStruct>>`
[INFO] [stdout]    --> src/http.rs:431:2
[INFO] [stdout]     |
[INFO] [stdout] 420 |   fn f() -> Result<(), http::HttpPostError<Json<MyStruct>>> {
[INFO] [stdout]     |             ----------------------------------------------- expected `HttpPostError<Json<MyStruct>>` because of this
[INFO] [stdout] 421 |
[INFO] [stdout] 422 | / http::post_aws_sigv4(
[INFO] [stdout] 423 | |     "https://gomomento.com",
[INFO] [stdout] 424 | |     [
[INFO] [stdout] 425 | |         ("authorization".to_string(), "abc123".to_string()),
[INFO] [stdout] ...   |
[INFO] [stdout] 430 | |     Json(MyStruct { message: "hello".to_string() })
[INFO] [stdout] 431 | | )?;
[INFO] [stdout]     | | -^ the trait `From<HttpPostError<serde_json::error::Error>>` is not implemented for `HttpPostError<Json<MyStruct>>`
[INFO] [stdout]     | |_|
[INFO] [stdout]     |   this can't be annotated with `?` because it has type `Result<_, HttpPostError<serde_json::error::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 trait `From<momento_functions_wit::host::momento::host::http::Error>` is implemented for `HttpPostError<E>`
[INFO] [stdout]    --> src/http.rs:169:15
[INFO] [stdout]     |
[INFO] [stdout] 169 |     HttpError(#[from] http::Error),
[INFO] [stdout]     |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Json<MyStruct>: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/http.rs:422:1
[INFO] [stdout]     |
[INFO] [stdout] 422 | / http::post_aws_sigv4(
[INFO] [stdout] 423 | |     "https://gomomento.com",
[INFO] [stdout] 424 | |     [
[INFO] [stdout] 425 | |         ("authorization".to_string(), "abc123".to_string()),
[INFO] [stdout] ...   |
[INFO] [stdout] 430 | |     Json(MyStruct { message: "hello".to_string() })
[INFO] [stdout] 431 | | )?;
[INFO] [stdout]     | |__^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `Json<MyStruct>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `HttpPostError`
[INFO] [stdout]    --> src/http.rs:166:27
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub enum HttpPostError<E: EncodeError> {
[INFO] [stdout]     |                           ^^^^^^^^^^^ required by this bound in `HttpPostError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Json<MyStruct>: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/http.rs:432:1
[INFO] [stdout]     |
[INFO] [stdout] 432 | Ok(()) }
[INFO] [stdout]     | ^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `Json<MyStruct>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `HttpPostError`
[INFO] [stdout]    --> src/http.rs:166:27
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub enum HttpPostError<E: EncodeError> {
[INFO] [stdout]     |                           ^^^^^^^^^^^ required by this bound in `HttpPostError`
[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/http.rs - http::Response::extract (line 27) stdout ----
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `serde_json::Error`
[INFO] [stdout]   --> src/http.rs:48:2
[INFO] [stdout]    |
[INFO] [stdout] 32 |   fn f() -> Result<(), serde_json::error::Error> {
[INFO] [stdout]    |             ------------------------------------ expected `serde_json::Error` because of this
[INFO] [stdout] ...
[INFO] [stdout] 42 |   let Json(reply): Json<Reply> = http::post(
[INFO] [stdout]    |  ________________________________-
[INFO] [stdout] 43 | |     "https://gomomento.com",
[INFO] [stdout] 44 | |     [
[INFO] [stdout] 45 | |         ("authorization".to_string(), "abc123".to_string()),
[INFO] [stdout] 46 | |     ],
[INFO] [stdout] 47 | |     Json(Request { message: "hello".to_string() })
[INFO] [stdout] 48 | | )?
[INFO] [stdout]    | | -^ the trait `From<HttpPostError<serde_json::Error>>` is not implemented for `serde_json::Error`
[INFO] [stdout]    | |_|
[INFO] [stdout]    |   this can't be annotated with `?` because it has type `Result<_, HttpPostError<serde_json::Error>>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/token.rs - token::CachePermissions::read_only (line 274) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `CachePermissions`
[INFO] [stdout]    --> src/token.rs:275:13
[INFO] [stdout]     |
[INFO] [stdout] 275 | let perms = CachePermissions::read_only()
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ use of undeclared type `CachePermissions`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 274 + use momento_functions_host::token::CachePermissions;
[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 E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/http.rs - http::post (line 180) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `&'static str: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/http.rs:185:11
[INFO] [stdout]     |
[INFO] [stdout] 185 | fn f() -> Result<(), HttpPostError<&'static str>> {
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `&'static str`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `HttpPostError`
[INFO] [stdout]    --> src/http.rs:166:27
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub enum HttpPostError<E: EncodeError> {
[INFO] [stdout]     |                           ^^^^^^^^^^^ required by this bound in `HttpPostError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Json<_doctest_main_src_http_rs_180_0::Request>: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/http.rs:199:22
[INFO] [stdout]     |
[INFO] [stdout] 199 | fn g() -> Result<(), HttpPostError<Json<Request>>> {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `Json<_doctest_main_src_http_rs_180_0::Request>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `HttpPostError`
[INFO] [stdout]    --> src/http.rs:166:27
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub enum HttpPostError<E: EncodeError> {
[INFO] [stdout]     |                           ^^^^^^^^^^^ required by this bound in `HttpPostError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `HttpPostError<&str>`
[INFO] [stdout]    --> src/http.rs:186:59
[INFO] [stdout]     |
[INFO] [stdout] 185 | fn f() -> Result<(), HttpPostError<&'static str>> {
[INFO] [stdout]     |           --------------------------------------- expected `HttpPostError<&str>` because of this
[INFO] [stdout] 186 | http::post("https://gomomento.com", [], b"hello".as_ref())?;
[INFO] [stdout]     | ----------------------------------------------------------^ the trait `From<HttpPostError<Infallible>>` is not implemented for `HttpPostError<&str>`
[INFO] [stdout]     | |
[INFO] [stdout]     | this can't be annotated with `?` because it has type `Result<_, HttpPostError<Infallible>>`
[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 trait `From<momento_functions_wit::host::momento::host::http::Error>` is implemented for `HttpPostError<E>`
[INFO] [stdout]    --> src/http.rs:169:15
[INFO] [stdout]     |
[INFO] [stdout] 169 |     HttpError(#[from] http::Error),
[INFO] [stdout]     |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&str: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/http.rs:186:1
[INFO] [stdout]     |
[INFO] [stdout] 186 | http::post("https://gomomento.com", [], b"hello".as_ref())?;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `&str`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `HttpPostError`
[INFO] [stdout]    --> src/http.rs:166:27
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub enum HttpPostError<E: EncodeError> {
[INFO] [stdout]     |                           ^^^^^^^^^^^ required by this bound in `HttpPostError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&str: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/http.rs:187:1
[INFO] [stdout]     |
[INFO] [stdout] 187 | Ok(())}
[INFO] [stdout]     | ^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `&str`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `HttpPostError`
[INFO] [stdout]    --> src/http.rs:166:27
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub enum HttpPostError<E: EncodeError> {
[INFO] [stdout]     |                           ^^^^^^^^^^^ required by this bound in `HttpPostError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `HttpPostError<Json<_doctest_main_src_http_rs_180_0::Request>>`
[INFO] [stdout]    --> src/http.rs:207:2
[INFO] [stdout]     |
[INFO] [stdout] 199 |   fn g() -> Result<(), HttpPostError<Json<Request>>> {
[INFO] [stdout]     |             ---------------------------------------- expected `HttpPostError<Json<_doctest_main_src_http_rs_180_0::Request>>` because of this
[INFO] [stdout] 200 |
[INFO] [stdout] 201 |   let Json(reply): Json<Reply> = http::post(
[INFO] [stdout]     |  ________________________________-
[INFO] [stdout] 202 | |     "https://gomomento.com",
[INFO] [stdout] 203 | |     [
[INFO] [stdout] 204 | |         ("authorization".to_string(), "abc123".to_string()),
[INFO] [stdout] 205 | |     ],
[INFO] [stdout] 206 | |     Json(Request { message: "hello".to_string() })
[INFO] [stdout] 207 | | )?
[INFO] [stdout]     | | -^ unsatisfied trait bound
[INFO] [stdout]     | |_|
[INFO] [stdout]     |   this can't be annotated with `?` because it has type `Result<_, HttpPostError<serde_json::error::Error>>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `From<HttpPostError<serde_json::error::Error>>` is not implemented for `HttpPostError<Json<_doctest_main_src_http_rs_180_0::Request>>`
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: the trait `From<momento_functions_wit::host::momento::host::http::Error>` is implemented for `HttpPostError<E>`
[INFO] [stdout]    --> src/http.rs:169:15
[INFO] [stdout]     |
[INFO] [stdout] 169 |     HttpError(#[from] http::Error),
[INFO] [stdout]     |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Json<_doctest_main_src_http_rs_180_0::Request>: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/http.rs:201:32
[INFO] [stdout]     |
[INFO] [stdout] 201 |   let Json(reply): Json<Reply> = http::post(
[INFO] [stdout]     |  ________________________________^
[INFO] [stdout] 202 | |     "https://gomomento.com",
[INFO] [stdout] 203 | |     [
[INFO] [stdout] 204 | |         ("authorization".to_string(), "abc123".to_string()),
[INFO] [stdout] 205 | |     ],
[INFO] [stdout] 206 | |     Json(Request { message: "hello".to_string() })
[INFO] [stdout] 207 | | )?
[INFO] [stdout]     | |__^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `Json<_doctest_main_src_http_rs_180_0::Request>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `HttpPostError`
[INFO] [stdout]    --> src/http.rs:166:27
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub enum HttpPostError<E: EncodeError> {
[INFO] [stdout]     |                           ^^^^^^^^^^^ required by this bound in `HttpPostError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Json<_doctest_main_src_http_rs_180_0::Request>: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/http.rs:201:32
[INFO] [stdout]     |
[INFO] [stdout] 201 |   let Json(reply): Json<Reply> = http::post(
[INFO] [stdout]     |  ________________________________^
[INFO] [stdout] 202 | |     "https://gomomento.com",
[INFO] [stdout] 203 | |     [
[INFO] [stdout] 204 | |         ("authorization".to_string(), "abc123".to_string()),
[INFO] [stdout] ...   |
[INFO] [stdout] 207 | | )?
[INFO] [stdout] 208 | | .extract()?;
[INFO] [stdout]     | |__________^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `Json<_doctest_main_src_http_rs_180_0::Request>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `HttpPostError`
[INFO] [stdout]    --> src/http.rs:166:27
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub enum HttpPostError<E: EncodeError> {
[INFO] [stdout]     |                           ^^^^^^^^^^^ required by this bound in `HttpPostError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Json<_doctest_main_src_http_rs_180_0::Request>: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/http.rs:208:2
[INFO] [stdout]     |
[INFO] [stdout] 208 | .extract()?;
[INFO] [stdout]     |  ^^^^^^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `Json<_doctest_main_src_http_rs_180_0::Request>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `HttpPostError`
[INFO] [stdout]    --> src/http.rs:166:27
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub enum HttpPostError<E: EncodeError> {
[INFO] [stdout]     |                           ^^^^^^^^^^^ required by this bound in `HttpPostError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Json<_doctest_main_src_http_rs_180_0::Request>: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/http.rs:201:32
[INFO] [stdout]     |
[INFO] [stdout] 201 |   let Json(reply): Json<Reply> = http::post(
[INFO] [stdout]     |  ________________________________^
[INFO] [stdout] 202 | |     "https://gomomento.com",
[INFO] [stdout] 203 | |     [
[INFO] [stdout] 204 | |         ("authorization".to_string(), "abc123".to_string()),
[INFO] [stdout] ...   |
[INFO] [stdout] 207 | | )?
[INFO] [stdout] 208 | | .extract()?;
[INFO] [stdout]     | |___________^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `Json<_doctest_main_src_http_rs_180_0::Request>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `HttpPostError`
[INFO] [stdout]    --> src/http.rs:166:27
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub enum HttpPostError<E: EncodeError> {
[INFO] [stdout]     |                           ^^^^^^^^^^^ required by this bound in `HttpPostError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Json<_doctest_main_src_http_rs_180_0::Request>: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/http.rs:208:11
[INFO] [stdout]     |
[INFO] [stdout] 208 | .extract()?;
[INFO] [stdout]     |           ^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `Json<_doctest_main_src_http_rs_180_0::Request>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `HttpPostError`
[INFO] [stdout]    --> src/http.rs:166:27
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub enum HttpPostError<E: EncodeError> {
[INFO] [stdout]     |                           ^^^^^^^^^^^ required by this bound in `HttpPostError`
[INFO] [stdout] 
[INFO] [stdout] error[E0271]: type mismatch resolving `<Json<Reply> as Extract>::Error == HttpPostError<Json<Request>>`
[INFO] [stdout]    --> src/http.rs:208:2
[INFO] [stdout]     |
[INFO] [stdout] 208 | .extract()?;
[INFO] [stdout]     |  ^^^^^^^ expected `HttpPostError<Json<Request>>`, found `Error`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected enum `HttpPostError<Json<_doctest_main_src_http_rs_180_0::Request>>`
[INFO] [stdout]              found struct `serde_json::error::Error`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Json<_doctest_main_src_http_rs_180_0::Request>: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]    --> src/http.rs:209:1
[INFO] [stdout]     |
[INFO] [stdout] 209 | Ok(()) }
[INFO] [stdout]     | ^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `Json<_doctest_main_src_http_rs_180_0::Request>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]    --> src/encoding.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl EncodeError for Infallible {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]   9 |
[INFO] [stdout]  10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `HttpPostError`
[INFO] [stdout]    --> src/http.rs:166:27
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub enum HttpPostError<E: EncodeError> {
[INFO] [stdout]     |                           ^^^^^^^^^^^ required by this bound in `HttpPostError`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 13 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0271, E0277.
[INFO] [stdout] For more information about an error, try `rustc --explain E0271`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/redis.rs - redis::RedisClient::pipe (line 197) stdout ----
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `momento_functions_wit::host::momento::host::redis::RedisError`
[INFO] [stdout]    --> src/redis.rs:203:49
[INFO] [stdout]     |
[INFO] [stdout] 201 | fn f(client: &RedisClient) -> Result<(), host::redis::RedisError> {
[INFO] [stdout]     |                               ----------------------------------- expected `momento_functions_wit::host::momento::host::redis::RedisError` because of this
[INFO] [stdout] 202 | let response_stream = client.pipe(vec![
[INFO] [stdout] 203 |     Command::builder().set("my_key", "my_value")?.build(),
[INFO] [stdout]     |                        -------------------------^ the trait `From<Infallible>` is not implemented for `momento_functions_wit::host::momento::host::redis::RedisError`
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this can't be annotated with `?` because it has type `Result<_, Infallible>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/token.rs - token::CachePermissions::read_write (line 254) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `CachePermissions`
[INFO] [stdout]    --> src/token.rs:255:13
[INFO] [stdout]     |
[INFO] [stdout] 255 | let perms = CachePermissions::read_write()
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ use of undeclared type `CachePermissions`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 254 + use momento_functions_host::token::CachePermissions;
[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 E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/spawn.rs - spawn::spawn (line 21) stdout ----
[INFO] [stdout] error[E0603]: module `spawn` is private
[INFO] [stdout]   --> src/spawn.rs:23:29
[INFO] [stdout]    |
[INFO] [stdout] 23 | use momento_functions_host::spawn::{self, FunctionSpawnError};
[INFO] [stdout]    |                             ^^^^^ private module
[INFO] [stdout]    |
[INFO] [stdout] note: the module `spawn` is defined here
[INFO] [stdout]   --> src/lib.rs:21:1
[INFO] [stdout]    |
[INFO] [stdout] 21 | mod spawn;
[INFO] [stdout]    | ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0603]: module `spawn` is private
[INFO] [stdout]   --> src/spawn.rs:23:29
[INFO] [stdout]    |
[INFO] [stdout] 23 | use momento_functions_host::spawn::{self, FunctionSpawnError};
[INFO] [stdout]    |                             ^^^^^         ------------------ enum `FunctionSpawnError` is not publicly re-exported
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             private module
[INFO] [stdout]    |
[INFO] [stdout] note: the module `spawn` is defined here
[INFO] [stdout]   --> src/lib.rs:21:1
[INFO] [stdout]    |
[INFO] [stdout] 21 | mod spawn;
[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 E0603`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/token.rs - token::Permissions::new (line 117) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Permissions`
[INFO] [stdout]    --> src/token.rs:118:13
[INFO] [stdout]     |
[INFO] [stdout] 118 | let perms = Permissions::new()
[INFO] [stdout]     |             ^^^^^^^^^^^ use of undeclared type `Permissions`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these structs
[INFO] [stdout]     |
[INFO] [stdout] 117 + use std::fs::Permissions;
[INFO] [stdout]     |
[INFO] [stdout] 117 + use momento_functions_host::token::Permissions;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `CachePermissions`
[INFO] [stdout]    --> src/token.rs:119:17
[INFO] [stdout]     |
[INFO] [stdout] 119 |     .with_cache(CachePermissions::read_write())
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^ use of undeclared type `CachePermissions`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 117 + use momento_functions_host::token::CachePermissions;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TopicPermissions`
[INFO] [stdout]    --> src/token.rs:120:17
[INFO] [stdout]     |
[INFO] [stdout] 120 |     .with_topic(TopicPermissions::read_only());
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^ use of undeclared type `TopicPermissions`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 117 + use momento_functions_host::token::TopicPermissions;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/topics.rs - topics::publish (line 38) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `&'static str: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]   --> src/topics.rs:44:11
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn f() -> Result<(), PublishError<&'static str>> {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `&'static str`
[INFO] [stdout]    |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]   --> src/encoding.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl EncodeError for Infallible {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]  9 |
[INFO] [stdout] 10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `momento_functions_host::topics::PublishError`
[INFO] [stdout]   --> src/topics.rs:10:26
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum PublishError<E: EncodeError> {
[INFO] [stdout]    |                          ^^^^^^^^^^^ required by this bound in `PublishError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `momento_functions_host::topics::PublishError<&str>`
[INFO] [stdout]   --> src/topics.rs:45:53
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn f() -> Result<(), PublishError<&'static str>> {
[INFO] [stdout]    |           -------------------------------------- expected `momento_functions_host::topics::PublishError<&str>` because of this
[INFO] [stdout] 45 | topics::publish("my_topic", b"hello there".to_vec())?;
[INFO] [stdout]    | ----------------------------------------------------^ unsatisfied trait bound
[INFO] [stdout]    | |
[INFO] [stdout]    | this can't be annotated with `?` because it has type `Result<_, momento_functions_host::topics::PublishError<Infallible>>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `From<momento_functions_host::topics::PublishError<Infallible>>` is not implemented for `momento_functions_host::topics::PublishError<&str>`
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: the trait `From<momento_functions_wit::host::momento::functions::topic::Error>` is implemented for `momento_functions_host::topics::PublishError<E>`
[INFO] [stdout]   --> src/topics.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 |     PublishError(#[from] topic::Error),
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&str: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]   --> src/topics.rs:45:1
[INFO] [stdout]    |
[INFO] [stdout] 45 | topics::publish("my_topic", b"hello there".to_vec())?;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `&str`
[INFO] [stdout]    |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]   --> src/encoding.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl EncodeError for Infallible {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]  9 |
[INFO] [stdout] 10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `momento_functions_host::topics::PublishError`
[INFO] [stdout]   --> src/topics.rs:10:26
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum PublishError<E: EncodeError> {
[INFO] [stdout]    |                          ^^^^^^^^^^^ required by this bound in `PublishError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&str: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]   --> src/topics.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | Ok(()) }
[INFO] [stdout]    | ^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `&str`
[INFO] [stdout]    |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]   --> src/encoding.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl EncodeError for Infallible {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]  9 |
[INFO] [stdout] 10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `momento_functions_host::topics::PublishError`
[INFO] [stdout]   --> src/topics.rs:10:26
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum PublishError<E: EncodeError> {
[INFO] [stdout]    |                          ^^^^^^^^^^^ required by this bound in `PublishError`
[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/token.rs - token::TopicPermissions::write_only (line 455) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TopicPermissions`
[INFO] [stdout]    --> src/token.rs:456:13
[INFO] [stdout]     |
[INFO] [stdout] 456 | let perms = TopicPermissions::write_only()
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ use of undeclared type `TopicPermissions`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 455 + use momento_functions_host::token::TopicPermissions;
[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 E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/token.rs - token::FunctionPermissions::invoke (line 576) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `FunctionPermissions`
[INFO] [stdout]    --> src/token.rs:577:13
[INFO] [stdout]     |
[INFO] [stdout] 577 | let perms = FunctionPermissions::invoke()
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^ use of undeclared type `FunctionPermissions`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 576 + use momento_functions_host::token::FunctionPermissions;
[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 E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/token.rs - token::CachePermissions::write_only (line 294) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `CachePermissions`
[INFO] [stdout]    --> src/token.rs:295:13
[INFO] [stdout]     |
[INFO] [stdout] 295 | let perms = CachePermissions::write_only()
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ use of undeclared type `CachePermissions`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 294 + use momento_functions_host::token::CachePermissions;
[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 E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/token.rs - token::TopicPermissions::read_write (line 415) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TopicPermissions`
[INFO] [stdout]    --> src/token.rs:416:13
[INFO] [stdout]     |
[INFO] [stdout] 416 | let perms = TopicPermissions::read_write()
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ use of undeclared type `TopicPermissions`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 415 + use momento_functions_host::token::TopicPermissions;
[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 E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/topics.rs - topics::publish (line 27) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `&'static str: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]   --> src/topics.rs:33:11
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn f() -> Result<(), PublishError<&'static str>> {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `&'static str`
[INFO] [stdout]    |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]   --> src/encoding.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl EncodeError for Infallible {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]  9 |
[INFO] [stdout] 10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `momento_functions_host::topics::PublishError`
[INFO] [stdout]   --> src/topics.rs:10:26
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum PublishError<E: EncodeError> {
[INFO] [stdout]    |                          ^^^^^^^^^^^ required by this bound in `PublishError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `momento_functions_host::topics::PublishError<&str>`
[INFO] [stdout]   --> src/topics.rs:34:43
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn f() -> Result<(), PublishError<&'static str>> {
[INFO] [stdout]    |           -------------------------------------- expected `momento_functions_host::topics::PublishError<&str>` because of this
[INFO] [stdout] 34 | topics::publish("my_topic", "hello there")?;
[INFO] [stdout]    | ------------------------------------------^ unsatisfied trait bound
[INFO] [stdout]    | |
[INFO] [stdout]    | this can't be annotated with `?` because it has type `Result<_, momento_functions_host::topics::PublishError<Infallible>>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `From<momento_functions_host::topics::PublishError<Infallible>>` is not implemented for `momento_functions_host::topics::PublishError<&str>`
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: the trait `From<momento_functions_wit::host::momento::functions::topic::Error>` is implemented for `momento_functions_host::topics::PublishError<E>`
[INFO] [stdout]   --> src/topics.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 |     PublishError(#[from] topic::Error),
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&str: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]   --> src/topics.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | topics::publish("my_topic", "hello there")?;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `&str`
[INFO] [stdout]    |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]   --> src/encoding.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl EncodeError for Infallible {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]  9 |
[INFO] [stdout] 10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `momento_functions_host::topics::PublishError`
[INFO] [stdout]   --> src/topics.rs:10:26
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum PublishError<E: EncodeError> {
[INFO] [stdout]    |                          ^^^^^^^^^^^ required by this bound in `PublishError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&str: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]   --> src/topics.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 | Ok(()) }
[INFO] [stdout]    | ^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `&str`
[INFO] [stdout]    |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]   --> src/encoding.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl EncodeError for Infallible {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]  9 |
[INFO] [stdout] 10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `momento_functions_host::topics::PublishError`
[INFO] [stdout]   --> src/topics.rs:10:26
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum PublishError<E: EncodeError> {
[INFO] [stdout]    |                          ^^^^^^^^^^^ required by this bound in `PublishError`
[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/token.rs - token::TopicPermissions::read_only (line 435) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TopicPermissions`
[INFO] [stdout]    --> src/token.rs:436:13
[INFO] [stdout]     |
[INFO] [stdout] 436 | let perms = TopicPermissions::read_only()
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ use of undeclared type `TopicPermissions`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 435 + use momento_functions_host::token::TopicPermissions;
[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 E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/token.rs - token::FunctionPermissions::new (line 554) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `FunctionPermissions`
[INFO] [stdout]    --> src/token.rs:555:13
[INFO] [stdout]     |
[INFO] [stdout] 555 | let perms = FunctionPermissions::new()
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^ use of undeclared type `FunctionPermissions`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 554 + use momento_functions_host::token::FunctionPermissions;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `FunctionRole`
[INFO] [stdout]    --> src/token.rs:556:16
[INFO] [stdout]     |
[INFO] [stdout] 556 |     .with_role(FunctionRole::FunctionInvoke)
[INFO] [stdout]     |                ^^^^^^^^^^^^ use of undeclared type `FunctionRole`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this enum
[INFO] [stdout]     |
[INFO] [stdout] 554 + use momento_functions_host::token::FunctionRole;
[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 E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/token.rs - token::TopicPermissions::new (line 393) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TopicPermissions`
[INFO] [stdout]    --> src/token.rs:394:13
[INFO] [stdout]     |
[INFO] [stdout] 394 | let perms = TopicPermissions::new()
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ use of undeclared type `TopicPermissions`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 393 + use momento_functions_host::token::TopicPermissions;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TopicRole`
[INFO] [stdout]    --> src/token.rs:395:16
[INFO] [stdout]     |
[INFO] [stdout] 395 |     .with_role(TopicRole::TopicReadWrite)
[INFO] [stdout]     |                ^^^^^^^^^ use of undeclared type `TopicRole`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this enum
[INFO] [stdout]     |
[INFO] [stdout] 393 + use momento_functions_host::token::TopicRole;
[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 E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/topics.rs - topics::publish (line 49) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `Json<MyStruct>: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]   --> src/topics.rs:61:22
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn f() -> Result<(), PublishError<Json<MyStruct>>> {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `Json<MyStruct>`
[INFO] [stdout]    |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]   --> src/encoding.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl EncodeError for Infallible {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]  9 |
[INFO] [stdout] 10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `momento_functions_host::topics::PublishError`
[INFO] [stdout]   --> src/topics.rs:10:26
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum PublishError<E: EncodeError> {
[INFO] [stdout]    |                          ^^^^^^^^^^^ required by this bound in `PublishError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `momento_functions_host::topics::PublishError<Json<MyStruct>>`
[INFO] [stdout]   --> src/topics.rs:62:74
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn f() -> Result<(), PublishError<Json<MyStruct>>> {
[INFO] [stdout]    |           ---------------------------------------- expected `momento_functions_host::topics::PublishError<Json<MyStruct>>` because of this
[INFO] [stdout] 62 | topics::publish("my_topic", Json(MyStruct{ hello: "hello".to_string() }))?;
[INFO] [stdout]    | -------------------------------------------------------------------------^ unsatisfied trait bound
[INFO] [stdout]    | |
[INFO] [stdout]    | this can't be annotated with `?` because it has type `Result<_, momento_functions_host::topics::PublishError<serde_json::error::Error>>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `From<momento_functions_host::topics::PublishError<serde_json::error::Error>>` is not implemented for `momento_functions_host::topics::PublishError<Json<MyStruct>>`
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: the trait `From<momento_functions_wit::host::momento::functions::topic::Error>` is implemented for `momento_functions_host::topics::PublishError<E>`
[INFO] [stdout]   --> src/topics.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 |     PublishError(#[from] topic::Error),
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Json<MyStruct>: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]   --> src/topics.rs:62:1
[INFO] [stdout]    |
[INFO] [stdout] 62 | topics::publish("my_topic", Json(MyStruct{ hello: "hello".to_string() }))?;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `Json<MyStruct>`
[INFO] [stdout]    |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]   --> src/encoding.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl EncodeError for Infallible {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]  9 |
[INFO] [stdout] 10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `momento_functions_host::topics::PublishError`
[INFO] [stdout]   --> src/topics.rs:10:26
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum PublishError<E: EncodeError> {
[INFO] [stdout]    |                          ^^^^^^^^^^^ required by this bound in `PublishError`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Json<MyStruct>: momento_functions_host::encoding::EncodeError` is not satisfied
[INFO] [stdout]   --> src/topics.rs:63:1
[INFO] [stdout]    |
[INFO] [stdout] 63 | Ok(()) }
[INFO] [stdout]    | ^^ the trait `momento_functions_host::encoding::EncodeError` is not implemented for `Json<MyStruct>`
[INFO] [stdout]    |
[INFO] [stdout] help: the following other types implement trait `momento_functions_host::encoding::EncodeError`
[INFO] [stdout]   --> src/encoding.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl EncodeError for Infallible {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Infallible`
[INFO] [stdout]  9 |
[INFO] [stdout] 10 | impl EncodeError for serde_json::Error {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `serde_json::error::Error`
[INFO] [stdout] note: required by a bound in `momento_functions_host::topics::PublishError`
[INFO] [stdout]   --> src/topics.rs:10:26
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum PublishError<E: EncodeError> {
[INFO] [stdout]    |                          ^^^^^^^^^^^ required by this bound in `PublishError`
[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] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/aws/auth.rs - aws::auth::AwsCredentialsProvider::new (line 86)
[INFO] [stdout]     src/aws/auth.rs - aws::auth::AwsCredentialsProvider::new (line 97)
[INFO] [stdout]     src/aws/ddb.rs - aws::ddb::DynamoDBClient::get_item (line 84)
[INFO] [stdout]     src/aws/ddb.rs - aws::ddb::Item (line 375)
[INFO] [stdout]     src/aws/lambda.rs - aws::lambda::LambdaClient::invoke (line 66)
[INFO] [stdout]     src/aws/lambda.rs - aws::lambda::LambdaClient::invoke (line 98)
[INFO] [stdout]     src/aws/s3.rs - aws::s3::S3Client::get (line 152)
[INFO] [stdout]     src/aws/s3.rs - aws::s3::S3Client::get (line 170)
[INFO] [stdout]     src/aws/s3.rs - aws::s3::S3Client::new (line 56)
[INFO] [stdout]     src/aws/s3.rs - aws::s3::S3Client::put (line 106)
[INFO] [stdout]     src/aws/s3.rs - aws::s3::S3Client::put (line 84)
[INFO] [stdout]     src/cache.rs - cache::get (line 40)
[INFO] [stdout]     src/cache.rs - cache::get (line 50)
[INFO] [stdout]     src/cache.rs - cache::set (line 78)
[INFO] [stdout]     src/cache.rs - cache::set (line 93)
[INFO] [stdout]     src/http.rs - http::Response::extract (line 27)
[INFO] [stdout]     src/http.rs - http::post (line 180)
[INFO] [stdout]     src/http.rs - http::post_aws_sigv4 (line 410)
[INFO] [stdout]     src/http.rs - http::put (line 116)
[INFO] [stdout]     src/http.rs - http::put_aws_sigv4 (line 357)
[INFO] [stdout]     src/redis.rs - redis::RedisClient::pipe (line 197)
[INFO] [stdout]     src/spawn.rs - spawn::spawn (line 21)
[INFO] [stdout]     src/token.rs - token::CachePermissions::new (line 232)
[INFO] [stdout]     src/token.rs - token::CachePermissions::read_only (line 274)
[INFO] [stdout]     src/token.rs - token::CachePermissions::read_write (line 254)
[INFO] [stdout]     src/token.rs - token::CachePermissions::write_only (line 294)
[INFO] [stdout]     src/token.rs - token::FunctionPermissions::invoke (line 576)
[INFO] [stdout]     src/token.rs - token::FunctionPermissions::new (line 554)
[INFO] [stdout]     src/token.rs - token::Permissions::new (line 117)
[INFO] [stdout]     src/token.rs - token::TopicPermissions::new (line 393)
[INFO] [stdout]     src/token.rs - token::TopicPermissions::read_only (line 435)
[INFO] [stdout]     src/token.rs - token::TopicPermissions::read_write (line 415)
[INFO] [stdout]     src/token.rs - token::TopicPermissions::write_only (line 455)
[INFO] [stdout]     src/topics.rs - topics::publish (line 27)
[INFO] [stdout]     src/topics.rs - topics::publish (line 38)
[INFO] [stdout]     src/topics.rs - topics::publish (line 49)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 13 passed; 36 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.03s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 2.72s; merged doctests compilation took 0.68s
[INFO] running `Command { std: "docker" "inspect" "f47bea0cee1ac9f720d864567e47a7549e953051d836f85694b91b179b2bf010", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f47bea0cee1ac9f720d864567e47a7549e953051d836f85694b91b179b2bf010", kill_on_drop: false }`
[INFO] [stdout] f47bea0cee1ac9f720d864567e47a7549e953051d836f85694b91b179b2bf010
