Skip to content

Initial Android MLS bindings #144

Initial Android MLS bindings

Initial Android MLS bindings #144

Triggered via pull request December 4, 2023 03:29
Status Success
Total duration 5m 55s
Artifacts

ci-image.yml

on: pull_request
Fit to window
Zoom out
Zoom in

Annotations

8 errors and 5 warnings
the method `wake` exists for struct `Pin<Arc<RustFuture<Compat<impl Future<Output = Result<(), GenericError>>>, Result<(), GenericError>, ...>>>`, but its trait bounds were not satisfied: src/lib.rs#L194
error[E0599]: the method `wake` exists for struct `Pin<Arc<RustFuture<Compat<impl Future<Output = Result<(), GenericError>>>, Result<(), GenericError>, ...>>>`, but its trait bounds were not satisfied --> src/lib.rs:194:1 | 194 | #[uniffi::export(async_runtime = "tokio")] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method cannot be called due to unsatisfied trait bounds | ::: /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-compat-0.2.3/src/lib.rs:197:1 | 197 | / pin_project! { 198 | | /// Compatibility adapter for futures and I/O types. 199 | | pub struct Compat<T> { 200 | | #[pin] ... | 214 | | } 215 | | } | |_- doesn't satisfy `_: Send` | = note: the full type name has been written to '/home/runner/work/libxmtp/libxmtp/bindings_ffi/target/debug/deps/xmtpv3-b9a7b3912c1a8159.long-type-5443292706231645001.txt' = note: the following trait bounds were not satisfied: `uniffi::deps::async_compat::Compat<impl std::future::Future<Output = std::result::Result<(), GenericError>>>: std::marker::Send` = note: this error originates in the attribute macro `uniffi::export` (in Nightly builds, run with -Z macro-backtrace for more info)
`std::cell::RefCell<xmtp_mls::storage::db_connection::RefOrValue<'_, r2d2::PooledConnection<diesel::r2d2::ConnectionManager<diesel::sqlite::connection::SqliteConnection>>>>` cannot be shared between threads safely: src/lib.rs#L194
error[E0277]: `std::cell::RefCell<xmtp_mls::storage::db_connection::RefOrValue<'_, r2d2::PooledConnection<diesel::r2d2::ConnectionManager<diesel::sqlite::connection::SqliteConnection>>>>` cannot be shared between threads safely --> src/lib.rs:194:1 | 194 | #[uniffi::export(async_runtime = "tokio")] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::cell::RefCell<xmtp_mls::storage::db_connection::RefOrValue<'_, r2d2::PooledConnection<diesel::r2d2::ConnectionManager<diesel::sqlite::connection::SqliteConnection>>>>` cannot be shared between threads safely | = help: within `xmtp_mls::storage::db_connection::DbConnection<'_>`, the trait `std::marker::Sync` is not implemented for `std::cell::RefCell<xmtp_mls::storage::db_connection::RefOrValue<'_, r2d2::PooledConnection<diesel::r2d2::ConnectionManager<diesel::sqlite::connection::SqliteConnection>>>>` = note: if you want to do aliasing and mutation between multiple threads, use `std::sync::RwLock` instead note: required because it appears within the type `DbConnection<'_>` --> /home/runner/work/libxmtp/libxmtp/xmtp_mls/src/storage/encrypted_store/db_connection.rs:14:12 | 14 | pub struct DbConnection<'a> { | ^^^^^^^^^^^^ = note: required for `&xmtp_mls::storage::db_connection::DbConnection<'_>` to implement `std::marker::Send` note: required because it's used within this `async fn` body --> /home/runner/work/libxmtp/libxmtp/xmtp_mls/src/groups/mod.rs:504:94 | 504 | async fn sync_with_conn<'a>(&self, conn: &'a DbConnection<'a>) -> Result<(), GroupError> { | ______________________________________________________________________________________________^ 505 | | self.publish_intents(conn).await?; 506 | | if let Err(e) = self.receive().await { 507 | | log::warn!("receive error {:?}", e); ... | 511 | | Ok(()) 512 | | } | |_____^ = note: required because it captures the following types: `xmtp_mls::storage::db_connection::DbConnection<'_>`, `xmtp_mls::storage::group_intent::NewGroupIntent`, `impl std::future::Future<Output = std::result::Result<(), xmtp_mls::groups::GroupError>>` note: required because it's used within this `async fn` body --> /home/runner/work/libxmtp/libxmtp/xmtp_mls/src/groups/mod.rs:464:33 | 464 | ) -> Result<(), GroupError> { | _________________________________^ 465 | | let conn = &mut self.client.store.conn()?; 466 | | let intent_data: Vec<u8> = RemoveMembersIntentData::new(installation_ids).into(); 467 | | let intent = NewGroupIntent::new( ... | 474 | | self.sync_with_conn(conn).await 475 | | } | |_____^ = note: required because it captures the following types: `std::vec::Vec<std::string::String>`, `impl std::future::Future<Output = std::result::Result<(), xmtp_mls::groups::GroupError>>` note: required because it's used within this `async fn` body --> /home/runner/work/libxmtp/libxmtp/xmtp_mls/src/groups/mod.rs:477:97 | 477 | pub async fn remove_members(&self, wallet_addresses: Vec<String>) -> Result<(), GroupError> { | _________________________________________________________________________________________________^ 478 | | let installation_ids = self 479 | | .members()? 480 | | .into_iter() ... | 488 | | .await 489 | | } | |_____^ = note: required because it captures the following types: `xmtp_mls::groups::MlsGroup<'_, xmtp_api_grpc::Client>`, `impl std::future::Future<Output = std::result::Result<(), xmtp_mls::groups::GroupError>>` note: required because it's used within this `async fn` body --> src/lib.rs:240:100 | 240 | pub async fn remove_members(&self, account_addresses: Vec<String>) -> Result<(), GenericError> { | ____________________________________________________________________________________________________^ 241 | | let group = MlsGroup::new( 242 | | self.inner_client.as_ref(), 243 | | self.group_id.clone(), ... | 249 | | Ok(()) 250 | | } | |_____^ note: required because it appears within the type `Option<impl Future<Output = Result<(), GenericError>>>` --> /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/option.rs:563:10 note: required because it appears within the type `Compat<impl Future<Output = Result<(), GenericError>>>` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-compat-0.2.3/src/lib.rs:199:16 | 199 | pub struct Compat<T> { | ^^^^^^ note: required by a bound in `uniffi::RustFuture::<F, T, UT>::new` --> /home/runner/.cargo/git/checkouts/uniffi-rs-6f89edd2a1ffa4bd/cae8edc/uniffi_core/src/ffi/rustfuture.rs:181:29 | 181 | F: Future<Output = T> + Send, | ^^^^ required by this bound in `RustFuture::<F, T, UT>::new` ... 184 | pub fn new( | --- required by a bound in this associated function = note: this error originates in the attribute macro `uniffi::export` (in Nightly builds, run with -Z macro-backtrace for more info)
the method `wake` exists for struct `Pin<Arc<RustFuture<Compat<impl Future<Output = Result<(), GenericError>>>, Result<(), GenericError>, ...>>>`, but its trait bounds were not satisfied: src/lib.rs#L194
error[E0599]: the method `wake` exists for struct `Pin<Arc<RustFuture<Compat<impl Future<Output = Result<(), GenericError>>>, Result<(), GenericError>, ...>>>`, but its trait bounds were not satisfied --> src/lib.rs:194:1 | 194 | #[uniffi::export(async_runtime = "tokio")] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method cannot be called due to unsatisfied trait bounds | ::: /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-compat-0.2.3/src/lib.rs:197:1 | 197 | / pin_project! { 198 | | /// Compatibility adapter for futures and I/O types. 199 | | pub struct Compat<T> { 200 | | #[pin] ... | 214 | | } 215 | | } | |_- doesn't satisfy `_: Send` | = note: the full type name has been written to '/home/runner/work/libxmtp/libxmtp/bindings_ffi/target/debug/deps/xmtpv3-b9a7b3912c1a8159.long-type-13881689300586371377.txt' = note: the following trait bounds were not satisfied: `uniffi::deps::async_compat::Compat<impl std::future::Future<Output = std::result::Result<(), GenericError>>>: std::marker::Send` = note: this error originates in the attribute macro `uniffi::export` (in Nightly builds, run with -Z macro-backtrace for more info)
`std::cell::RefCell<xmtp_mls::storage::db_connection::RefOrValue<'_, r2d2::PooledConnection<diesel::r2d2::ConnectionManager<diesel::sqlite::connection::SqliteConnection>>>>` cannot be shared between threads safely: src/lib.rs#L194
error[E0277]: `std::cell::RefCell<xmtp_mls::storage::db_connection::RefOrValue<'_, r2d2::PooledConnection<diesel::r2d2::ConnectionManager<diesel::sqlite::connection::SqliteConnection>>>>` cannot be shared between threads safely --> src/lib.rs:194:1 | 194 | #[uniffi::export(async_runtime = "tokio")] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::cell::RefCell<xmtp_mls::storage::db_connection::RefOrValue<'_, r2d2::PooledConnection<diesel::r2d2::ConnectionManager<diesel::sqlite::connection::SqliteConnection>>>>` cannot be shared between threads safely | = help: within `xmtp_mls::storage::db_connection::DbConnection<'_>`, the trait `std::marker::Sync` is not implemented for `std::cell::RefCell<xmtp_mls::storage::db_connection::RefOrValue<'_, r2d2::PooledConnection<diesel::r2d2::ConnectionManager<diesel::sqlite::connection::SqliteConnection>>>>` = note: if you want to do aliasing and mutation between multiple threads, use `std::sync::RwLock` instead note: required because it appears within the type `DbConnection<'_>` --> /home/runner/work/libxmtp/libxmtp/xmtp_mls/src/storage/encrypted_store/db_connection.rs:14:12 | 14 | pub struct DbConnection<'a> { | ^^^^^^^^^^^^ = note: required for `&xmtp_mls::storage::db_connection::DbConnection<'_>` to implement `std::marker::Send` note: required because it's used within this `async fn` body --> /home/runner/work/libxmtp/libxmtp/xmtp_mls/src/groups/mod.rs:504:94 | 504 | async fn sync_with_conn<'a>(&self, conn: &'a DbConnection<'a>) -> Result<(), GroupError> { | ______________________________________________________________________________________________^ 505 | | self.publish_intents(conn).await?; 506 | | if let Err(e) = self.receive().await { 507 | | log::warn!("receive error {:?}", e); ... | 511 | | Ok(()) 512 | | } | |_____^ = note: required because it captures the following types: `&xmtp_mls::groups::MlsGroup<'_, xmtp_api_grpc::Client>`, `&mut xmtp_mls::storage::db_connection::DbConnection<'_>`, `xmtp_mls::storage::db_connection::DbConnection<'_>`, `impl std::future::Future<Output = std::result::Result<std::vec::Vec<xmtp_mls::verified_key_package::VerifiedKeyPackage>, xmtp_mls::client::ClientError>>`, `xmtp_mls::storage::group_intent::NewGroupIntent`, `impl std::future::Future<Output = std::result::Result<(), xmtp_mls::groups::GroupError>>` note: required because it's used within this `async fn` body --> /home/runner/work/libxmtp/libxmtp/xmtp_mls/src/groups/mod.rs:430:94 | 430 | pub async fn add_members(&self, wallet_addresses: Vec<String>) -> Result<(), GroupError> { | ______________________________________________________________________________________________^ 431 | | let conn = &mut self.client.store.conn()?; 432 | | let key_packages = self 433 | | .client ... | 441 | | self.sync_with_conn(conn).await 442 | | } | |_____^ = note: required because it captures the following types: `xmtp_mls::groups::MlsGroup<'_, xmtp_api_grpc::Client>`, `impl std::future::Future<Output = std::result::Result<(), xmtp_mls::groups::GroupError>>` note: required because it's used within this `async fn` body --> src/lib.rs:228:97 | 228 | pub async fn add_members(&self, account_addresses: Vec<String>) -> Result<(), GenericError> { | _________________________________________________________________________________________________^ 229 | | let group = MlsGroup::new( 230 | | self.inner_client.as_ref(), 231 | | self.group_id.clone(), ... | 237 | | Ok(()) 238 | | } | |_____^ note: required because it appears within the type `Option<impl Future<Output = Result<(), GenericError>>>` --> /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/option.rs:563:10 note: required because it appears within the type `Compat<impl Future<Output = Result<(), GenericError>>>` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-compat-0.2.3/src/lib.rs:199:16 | 199 | pub struct Compat<T> { | ^^^^^^ note: required by a bound in `uniffi::RustFuture::<F, T, UT>::new` --> /home/runner/.cargo/git/checkouts/uniffi-rs-6f89edd2a1ffa4bd/cae8edc/uniffi_core/src/ffi/rustfuture.rs:181:29 | 181 | F: Future<Output = T> + Send, | ^^^^ required by this bound in `RustFuture::<F, T, UT>::new` ... 184 | pub fn new( | --- required by a bound in this associated function = note: this error originates in the attribute macro `uniffi::export` (in Nightly builds, run with -Z macro-backtrace for more info)
the method `wake` exists for struct `Pin<Arc<RustFuture<Compat<impl Future<Output = Result<Vec<FfiMessage>, GenericError>>>, ..., ...>>>`, but its trait bounds were not satisfied: src/lib.rs#L194
error[E0599]: the method `wake` exists for struct `Pin<Arc<RustFuture<Compat<impl Future<Output = Result<Vec<FfiMessage>, GenericError>>>, ..., ...>>>`, but its trait bounds were not satisfied --> src/lib.rs:194:1 | 194 | #[uniffi::export(async_runtime = "tokio")] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method cannot be called due to unsatisfied trait bounds | ::: /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-compat-0.2.3/src/lib.rs:197:1 | 197 | / pin_project! { 198 | | /// Compatibility adapter for futures and I/O types. 199 | | pub struct Compat<T> { 200 | | #[pin] ... | 214 | | } 215 | | } | |_- doesn't satisfy `_: Send` | = note: the full type name has been written to '/home/runner/work/libxmtp/libxmtp/bindings_ffi/target/debug/deps/xmtpv3-b9a7b3912c1a8159.long-type-8609693087777595428.txt' = note: the following trait bounds were not satisfied: `uniffi::deps::async_compat::Compat<impl std::future::Future<Output = std::result::Result<std::vec::Vec<FfiMessage>, GenericError>>>: std::marker::Send` = note: this error originates in the attribute macro `uniffi::export` (in Nightly builds, run with -Z macro-backtrace for more info)
`std::cell::RefCell<xmtp_mls::storage::db_connection::RefOrValue<'_, r2d2::PooledConnection<diesel::r2d2::ConnectionManager<diesel::sqlite::connection::SqliteConnection>>>>` cannot be shared between threads safely: src/lib.rs#L194
error[E0277]: `std::cell::RefCell<xmtp_mls::storage::db_connection::RefOrValue<'_, r2d2::PooledConnection<diesel::r2d2::ConnectionManager<diesel::sqlite::connection::SqliteConnection>>>>` cannot be shared between threads safely --> src/lib.rs:194:1 | 194 | #[uniffi::export(async_runtime = "tokio")] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::cell::RefCell<xmtp_mls::storage::db_connection::RefOrValue<'_, r2d2::PooledConnection<diesel::r2d2::ConnectionManager<diesel::sqlite::connection::SqliteConnection>>>>` cannot be shared between threads safely | = help: within `xmtp_mls::storage::db_connection::DbConnection<'_>`, the trait `std::marker::Sync` is not implemented for `std::cell::RefCell<xmtp_mls::storage::db_connection::RefOrValue<'_, r2d2::PooledConnection<diesel::r2d2::ConnectionManager<diesel::sqlite::connection::SqliteConnection>>>>` = note: if you want to do aliasing and mutation between multiple threads, use `std::sync::RwLock` instead note: required because it appears within the type `DbConnection<'_>` --> /home/runner/work/libxmtp/libxmtp/xmtp_mls/src/storage/encrypted_store/db_connection.rs:14:12 | 14 | pub struct DbConnection<'a> { | ^^^^^^^^^^^^ = note: required for `&xmtp_mls::storage::db_connection::DbConnection<'_>` to implement `std::marker::Send` note: required because it's used within this `async fn` body --> /home/runner/work/libxmtp/libxmtp/xmtp_mls/src/groups/mod.rs:504:94 | 504 | async fn sync_with_conn<'a>(&self, conn: &'a DbConnection<'a>) -> Result<(), GroupError> { | ______________________________________________________________________________________________^ 505 | | self.publish_intents(conn).await?; 506 | | if let Err(e) = self.receive().await { 507 | | log::warn!("receive error {:?}", e); ... | 511 | | Ok(()) 512 | | } | |_____^ = note: required because it captures the following types: `xmtp_mls::storage::db_connection::DbConnection<'_>`, `impl std::future::Future<Output = std::result::Result<(), xmtp_mls::groups::GroupError>>` note: required because it's used within this `async fn` body --> /home/runner/work/libxmtp/libxmtp/xmtp_mls/src/groups/mod.rs:499:56 | 499 | pub async fn sync(&self) -> Result<(), GroupError> { | ________________________________________________________^ 500 | | let conn = &mut self.client.store.conn()?; 501 | | self.sync_with_conn(conn).await 502 | | } | |_____^ = note: required because it captures the following types: `FfiListMessagesOptions`, `xmtp_mls::groups::MlsGroup<'_, xmtp_api_grpc::Client>`, `impl std::future::Future<Output = std::result::Result<(), xmtp_mls::groups::GroupError>>` note: required because it's used within this `async fn` body --> src/lib.rs:211:48 | 211 | ) -> Result<Vec<FfiMessage>, GenericError> { | ________________________________________________^ 212 | | let group = MlsGroup::new( 213 | | self.inner_client.as_ref(), 214 | | self.group_id.clone(), ... | 225 | | Ok(messages) 226 | | } | |_____^ note: required because it appears within the type `Option<impl Future<Output = Result<Vec<FfiMessage>, GenericError>>>` --> /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/option.rs:563:10 note: required because it appears within the type `Compat<impl Future<Output = Result<Vec<FfiMessage>, GenericError>>>` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-compat-0.2.3/src/lib.rs:199:16 | 199 | pub struct Compat<T> { | ^^^^^^ note: required by a bound in `uniffi::RustFuture::<F, T, UT>::new` --> /home/runner/.cargo/git/checkouts/uniffi-rs-6f89edd2a1ffa4bd/cae8edc/uniffi_core/src/ffi/rustfuture.rs:181:29 | 181 | F: Future<Output = T> + Send, | ^^^^ required by this bound in `RustFuture::<F, T, UT>::new` ... 184 | pub fn new( | --- required by a bound in this associated function = note: this error originates in the attribute macro `uniffi::export` (in Nightly builds, run with -Z macro-backtrace for more info)
the method `wake` exists for struct `Pin<Arc<RustFuture<Compat<impl Future<Output = Result<(), GenericError>>>, Result<(), GenericError>, ...>>>`, but its trait bounds were not satisfied: src/lib.rs#L194
error[E0599]: the method `wake` exists for struct `Pin<Arc<RustFuture<Compat<impl Future<Output = Result<(), GenericError>>>, Result<(), GenericError>, ...>>>`, but its trait bounds were not satisfied --> src/lib.rs:194:1 | 194 | #[uniffi::export(async_runtime = "tokio")] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method cannot be called due to unsatisfied trait bounds | ::: /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-compat-0.2.3/src/lib.rs:197:1 | 197 | / pin_project! { 198 | | /// Compatibility adapter for futures and I/O types. 199 | | pub struct Compat<T> { 200 | | #[pin] ... | 214 | | } 215 | | } | |_- doesn't satisfy `_: Send` | = note: the full type name has been written to '/home/runner/work/libxmtp/libxmtp/bindings_ffi/target/debug/deps/xmtpv3-b9a7b3912c1a8159.long-type-16282722571910940202.txt' = note: the following trait bounds were not satisfied: `uniffi::deps::async_compat::Compat<impl std::future::Future<Output = std::result::Result<(), GenericError>>>: std::marker::Send` = note: this error originates in the attribute macro `uniffi::export` (in Nightly builds, run with -Z macro-backtrace for more info)
`std::cell::RefCell<xmtp_mls::storage::db_connection::RefOrValue<'_, r2d2::PooledConnection<diesel::r2d2::ConnectionManager<diesel::sqlite::connection::SqliteConnection>>>>` cannot be shared between threads safely: src/lib.rs#L194
error[E0277]: `std::cell::RefCell<xmtp_mls::storage::db_connection::RefOrValue<'_, r2d2::PooledConnection<diesel::r2d2::ConnectionManager<diesel::sqlite::connection::SqliteConnection>>>>` cannot be shared between threads safely --> src/lib.rs:194:1 | 194 | #[uniffi::export(async_runtime = "tokio")] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::cell::RefCell<xmtp_mls::storage::db_connection::RefOrValue<'_, r2d2::PooledConnection<diesel::r2d2::ConnectionManager<diesel::sqlite::connection::SqliteConnection>>>>` cannot be shared between threads safely | = help: within `xmtp_mls::storage::db_connection::DbConnection<'_>`, the trait `std::marker::Sync` is not implemented for `std::cell::RefCell<xmtp_mls::storage::db_connection::RefOrValue<'_, r2d2::PooledConnection<diesel::r2d2::ConnectionManager<diesel::sqlite::connection::SqliteConnection>>>>` = note: if you want to do aliasing and mutation between multiple threads, use `std::sync::RwLock` instead note: required because it appears within the type `DbConnection<'_>` --> /home/runner/work/libxmtp/libxmtp/xmtp_mls/src/storage/encrypted_store/db_connection.rs:14:12 | 14 | pub struct DbConnection<'a> { | ^^^^^^^^^^^^ = note: required for `&xmtp_mls::storage::db_connection::DbConnection<'_>` to implement `std::marker::Send` note: required because it's used within this `async fn` body --> /home/runner/work/libxmtp/libxmtp/xmtp_mls/src/groups/mod.rs:517:33 | 517 | ) -> Result<(), GroupError> { | _________________________________^ 518 | | let provider = self.client.mls_provider(conn); 519 | | let mut openmls_group = self.load_mls_group(&provider)?; 520 | | ... | 555 | | Ok(()) 556 | | } | |_____^ = note: required because it captures the following types: `xmtp_mls::storage::db_connection::DbConnection<'_>`, `xmtp_mls::storage::group_intent::NewGroupIntent`, `impl std::future::Future<Output = std::result::Result<(), xmtp_mls::groups::GroupError>>` note: required because it's used within this `async fn` body --> /home/runner/work/libxmtp/libxmtp/xmtp_mls/src/groups/mod.rs:418:80 | 418 | pub async fn send_message(&self, message: &[u8]) -> Result<(), GroupError> { | ________________________________________________________________________________^ 419 | | let conn = &mut self.client.store.conn()?; 420 | | let intent_data: Vec<u8> = SendMessageIntentData::new(message.to_vec()).into(); 421 | | let intent = ... | 427 | | Ok(()) 428 | | } | |_____^ = note: required because it captures the following types: `std::vec::Vec<u8>`, `xmtp_mls::groups::MlsGroup<'_, xmtp_api_grpc::Client>`, `impl std::future::Future<Output = std::result::Result<(), xmtp_mls::groups::GroupError>>` note: required because it's used within this `async fn` body --> src/lib.rs:196:82 | 196 | pub async fn send(&self, content_bytes: Vec<u8>) -> Result<(), GenericError> { | __________________________________________________________________________________^ 197 | | let group = MlsGroup::new( 198 | | self.inner_client.as_ref(), 199 | | self.group_id.clone(), ... | 205 | | Ok(()) 206 | | } | |_____^ note: required because it appears within the type `Option<impl Future<Output = Result<(), GenericError>>>` --> /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/option.rs:563:10 note: required because it appears within the type `Compat<impl Future<Output = Result<(), GenericError>>>` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-compat-0.2.3/src/lib.rs:199:16 | 199 | pub struct Compat<T> { | ^^^^^^ note: required by a bound in `uniffi::RustFuture::<F, T, UT>::new` --> /home/runner/.cargo/git/checkouts/uniffi-rs-6f89edd2a1ffa4bd/cae8edc/uniffi_core/src/ffi/rustfuture.rs:181:29 | 181 | F: Future<Output = T> + Send, | ^^^^ required by this bound in `RustFuture::<F, T, UT>::new` ... 184 | pub fn new( | --- required by a bound in this associated function = note: this error originates in the attribute macro `uniffi::export` (in Nightly builds, run with -Z macro-backtrace for more info)
unused variable: `account_address`: src/lib.rs#L147
warning: unused variable: `account_address` --> src/lib.rs:147:9 | 147 | account_address: String, | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account_address` | = note: `#[warn(unused_variables)]` on by default
variable does not need to be mutable: src/lib.rs#L106
warning: variable does not need to be mutable --> src/lib.rs:106:9 | 106 | let mut xmtp_client: RustXmtpClient = ClientBuilder::new(inbox_owner.into()) | ----^^^^^^^^^^^ | | | help: remove this `mut` | = note: `#[warn(unused_mut)]` on by default
unused import: `GroupMessageKind`: src/lib.rs#L15
warning: unused import: `GroupMessageKind` --> src/lib.rs:15:40 | 15 | use xmtp_mls::storage::group_message::{GroupMessageKind, StoredGroupMessage}; | ^^^^^^^^^^^^^^^^
unused import: `uniffi::FfiConverter`: src/lib.rs#L12
warning: unused import: `uniffi::FfiConverter` --> src/lib.rs:12:5 | 12 | use uniffi::FfiConverter; | ^^^^^^^^^^^^^^^^^^^^
unused import: `stringify_error_chain`: src/v2.rs#L1
warning: unused import: `stringify_error_chain` --> src/v2.rs:1:13 | 1 | use crate::{stringify_error_chain, GenericError}; | ^^^^^^^^^^^^^^^^^^^^^ | = note: `#[warn(unused_imports)]` on by default