diff --git a/Cargo.lock b/Cargo.lock index 827b5b3c6..78a0413e9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1482,9 +1482,9 @@ dependencies = [ [[package]] name = "eyeball" -version = "0.7.0" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01fb4d0bc50820a1c925b6b65ad230ce8ca59f689418fb35af560e41df208523" +checksum = "9c7d4d5c74ff8f207f198a2ae38b42065efd0c25d5186f4e1bd1cc3cf24b2663" dependencies = [ "futures-core", "readlock", diff --git a/Cargo.toml b/Cargo.toml index 5ea1b99f4..9d2d8d753 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,7 +28,7 @@ base64 = "0.21.0" byteorder = "1.4.3" ctor = "0.2.0" dashmap = "5.2.0" -eyeball = "0.7.0" +eyeball = "0.8.3" eyeball-im = "0.2.0" eyeball-im-util = "0.2.1" futures-core = "0.3.28" diff --git a/bindings/matrix-sdk-ffi/src/client.rs b/bindings/matrix-sdk-ffi/src/client.rs index 55c69314e..55b17efe5 100644 --- a/bindings/matrix-sdk-ffi/src/client.rs +++ b/bindings/matrix-sdk-ffi/src/client.rs @@ -1,7 +1,7 @@ use std::sync::{Arc, RwLock}; use anyhow::{anyhow, Context}; -use eyeball::shared::Observable as SharedObservable; +use eyeball::SharedObservable; use matrix_sdk::{ media::{MediaFileHandle as SdkMediaFileHandle, MediaFormat, MediaRequest, MediaThumbnailSize}, room::Room as SdkRoom, diff --git a/crates/matrix-sdk-base/src/client.rs b/crates/matrix-sdk-base/src/client.rs index 7b786c1b8..676c1fafc 100644 --- a/crates/matrix-sdk-base/src/client.rs +++ b/crates/matrix-sdk-base/src/client.rs @@ -21,7 +21,7 @@ use std::{ sync::Arc, }; -use eyeball::{shared::Observable as SharedObservable, Subscriber}; +use eyeball::{SharedObservable, Subscriber}; use matrix_sdk_common::instant::Instant; #[cfg(feature = "e2e-encryption")] use matrix_sdk_crypto::{ diff --git a/crates/matrix-sdk-crypto/src/verification/qrcode.rs b/crates/matrix-sdk-crypto/src/verification/qrcode.rs index 362d90bb2..aacd0adda 100644 --- a/crates/matrix-sdk-crypto/src/verification/qrcode.rs +++ b/crates/matrix-sdk-crypto/src/verification/qrcode.rs @@ -14,7 +14,7 @@ use std::sync::Arc; -use eyeball::shared::{Observable as SharedObservable, ObservableWriteGuard}; +use eyeball::{ObservableWriteGuard, SharedObservable}; use futures_core::Stream; use futures_util::StreamExt; use matrix_sdk_qrcode::{ diff --git a/crates/matrix-sdk-crypto/src/verification/requests.rs b/crates/matrix-sdk-crypto/src/verification/requests.rs index 3246eb71d..e10baa162 100644 --- a/crates/matrix-sdk-crypto/src/verification/requests.rs +++ b/crates/matrix-sdk-crypto/src/verification/requests.rs @@ -14,7 +14,7 @@ use std::{ops::Add, sync::Arc, time::Duration}; -use eyeball::shared::{Observable as SharedObservable, ObservableWriteGuard, WeakObservable}; +use eyeball::{ObservableWriteGuard, SharedObservable, WeakObservable}; use futures_core::Stream; use futures_util::StreamExt; use matrix_sdk_common::instant::Instant; diff --git a/crates/matrix-sdk-crypto/src/verification/sas/mod.rs b/crates/matrix-sdk-crypto/src/verification/sas/mod.rs index a2c29d4bd..322304c8c 100644 --- a/crates/matrix-sdk-crypto/src/verification/sas/mod.rs +++ b/crates/matrix-sdk-crypto/src/verification/sas/mod.rs @@ -18,7 +18,7 @@ mod sas_state; use std::sync::Arc; -use eyeball::shared::{Observable as SharedObservable, ObservableWriteGuard}; +use eyeball::{ObservableWriteGuard, SharedObservable}; use futures_core::Stream; use futures_util::StreamExt; use inner_sas::InnerSas; diff --git a/crates/matrix-sdk-ui/src/room_list_service/mod.rs b/crates/matrix-sdk-ui/src/room_list_service/mod.rs index 6c4c712da..68cf7a0f5 100644 --- a/crates/matrix-sdk-ui/src/room_list_service/mod.rs +++ b/crates/matrix-sdk-ui/src/room_list_service/mod.rs @@ -69,7 +69,7 @@ mod state; use std::{collections::BTreeMap, future::ready, sync::Arc}; use async_stream::stream; -use eyeball::{shared::Observable, Subscriber}; +use eyeball::{SharedObservable, Subscriber}; use futures_util::{pin_mut, Stream, StreamExt}; pub use matrix_sdk::RoomListEntry; use matrix_sdk::{ @@ -99,7 +99,7 @@ pub struct RoomListService { /// The current state of the `RoomListService`. /// /// `RoomListService` is a simple state-machine. - state: Observable, + state: SharedObservable, /// Room cache, to avoid recreating `Room`s everytime users fetch them. rooms: Arc>>, @@ -167,7 +167,7 @@ impl RoomListService { Ok(Self { sliding_sync, - state: Observable::new(State::Init), + state: SharedObservable::new(State::Init), rooms: Default::default(), viewport_ranges: Mutex::new(vec![VISIBLE_ROOMS_DEFAULT_RANGE]), }) diff --git a/crates/matrix-sdk-ui/src/room_list_service/room_list.rs b/crates/matrix-sdk-ui/src/room_list_service/room_list.rs index 5d8821b11..ef5d92e3b 100644 --- a/crates/matrix-sdk-ui/src/room_list_service/room_list.rs +++ b/crates/matrix-sdk-ui/src/room_list_service/room_list.rs @@ -14,7 +14,7 @@ use std::future::ready; -use eyeball::{shared::Observable, Subscriber}; +use eyeball::{SharedObservable, Subscriber}; use eyeball_im::{Vector, VectorDiff}; use futures_util::{pin_mut, Stream, StreamExt}; use matrix_sdk::{ @@ -29,7 +29,7 @@ use super::{Error, State}; #[derive(Debug)] pub struct RoomList { sliding_sync_list: SlidingSyncList, - loading_state: Observable, + loading_state: SharedObservable, loading_state_task: JoinHandle<()>, } @@ -49,7 +49,7 @@ impl RoomList { .on_list(sliding_sync_list_name, |list| ready(list.clone())) .await .ok_or_else(|| Error::UnknownList(sliding_sync_list_name.to_owned()))?; - let loading_state = Observable::new(RoomListLoadingState::NotLoaded); + let loading_state = SharedObservable::new(RoomListLoadingState::NotLoaded); Ok(Self { sliding_sync_list: sliding_sync_list.clone(), diff --git a/crates/matrix-sdk-ui/src/timeline/futures.rs b/crates/matrix-sdk-ui/src/timeline/futures.rs index c42b77130..00914e7a2 100644 --- a/crates/matrix-sdk-ui/src/timeline/futures.rs +++ b/crates/matrix-sdk-ui/src/timeline/futures.rs @@ -5,7 +5,7 @@ use std::{ pin::Pin, }; -use eyeball::{shared::Observable as SharedObservable, Subscriber}; +use eyeball::{SharedObservable, Subscriber}; use matrix_sdk::{attachment::AttachmentConfig, room::Room, TransmissionProgress}; use mime::Mime; diff --git a/crates/matrix-sdk/src/client/futures.rs b/crates/matrix-sdk/src/client/futures.rs index c118422bf..0d9fef8b4 100644 --- a/crates/matrix-sdk/src/client/futures.rs +++ b/crates/matrix-sdk/src/client/futures.rs @@ -5,7 +5,7 @@ use std::{ }; use cfg_vis::cfg_vis; -use eyeball::shared::Observable as SharedObservable; +use eyeball::SharedObservable; #[cfg(not(target_arch = "wasm32"))] use eyeball::Subscriber; use ruma::api::{client::error::ErrorKind, error::FromHttpResponseError, OutgoingRequest}; diff --git a/crates/matrix-sdk/src/client/mod.rs b/crates/matrix-sdk/src/client/mod.rs index 7706dad3e..2c4a17236 100644 --- a/crates/matrix-sdk/src/client/mod.rs +++ b/crates/matrix-sdk/src/client/mod.rs @@ -25,7 +25,7 @@ use std::{ }; use dashmap::DashMap; -use eyeball::{shared::Observable as SharedObservable, unique::Observable, Subscriber}; +use eyeball::{Observable, SharedObservable, Subscriber}; use futures_core::Stream; #[cfg(feature = "e2e-encryption")] use matrix_sdk_base::crypto::store::locks::CryptoStoreLock; diff --git a/crates/matrix-sdk/src/encryption/futures.rs b/crates/matrix-sdk/src/encryption/futures.rs index d6f96db8b..ea61365ba 100644 --- a/crates/matrix-sdk/src/encryption/futures.rs +++ b/crates/matrix-sdk/src/encryption/futures.rs @@ -5,7 +5,7 @@ use std::{ }; use cfg_vis::cfg_vis; -use eyeball::shared::Observable as SharedObservable; +use eyeball::SharedObservable; #[cfg(not(target_arch = "wasm32"))] use eyeball::Subscriber; use ruma::events::room::{EncryptedFile, EncryptedFileInit}; diff --git a/crates/matrix-sdk/src/encryption/mod.rs b/crates/matrix-sdk/src/encryption/mod.rs index 61bf0816a..f891da56e 100644 --- a/crates/matrix-sdk/src/encryption/mod.rs +++ b/crates/matrix-sdk/src/encryption/mod.rs @@ -23,7 +23,7 @@ use std::{ path::PathBuf, }; -use eyeball::shared::Observable as SharedObservable; +use eyeball::SharedObservable; use futures_util::{ future::try_join, stream::{self, StreamExt}, diff --git a/crates/matrix-sdk/src/http_client/mod.rs b/crates/matrix-sdk/src/http_client/mod.rs index f6ea0caac..96b6bfe68 100644 --- a/crates/matrix-sdk/src/http_client/mod.rs +++ b/crates/matrix-sdk/src/http_client/mod.rs @@ -24,7 +24,7 @@ use std::{ use bytes::{Bytes, BytesMut}; use bytesize::ByteSize; -use eyeball::shared::Observable as SharedObservable; +use eyeball::SharedObservable; use ruma::{ api::{ error::{FromHttpResponseError, IntoHttpError}, diff --git a/crates/matrix-sdk/src/http_client/native.rs b/crates/matrix-sdk/src/http_client/native.rs index 5ce69efa4..bc3be115b 100644 --- a/crates/matrix-sdk/src/http_client/native.rs +++ b/crates/matrix-sdk/src/http_client/native.rs @@ -22,7 +22,7 @@ use std::{ use backoff::{future::retry, Error as RetryError, ExponentialBackoff}; use bytes::Bytes; use bytesize::ByteSize; -use eyeball::shared::Observable as SharedObservable; +use eyeball::SharedObservable; use ruma::api::{ client::error::{ErrorBody as ClientApiErrorBody, ErrorKind as ClientApiErrorKind}, error::FromHttpResponseError, diff --git a/crates/matrix-sdk/src/http_client/wasm.rs b/crates/matrix-sdk/src/http_client/wasm.rs index 0071c2eaf..d6de1321a 100644 --- a/crates/matrix-sdk/src/http_client/wasm.rs +++ b/crates/matrix-sdk/src/http_client/wasm.rs @@ -16,7 +16,7 @@ use std::fmt::Debug; use bytes::Bytes; use bytesize::ByteSize; -use eyeball::shared::Observable as SharedObservable; +use eyeball::SharedObservable; use ruma::api::{error::FromHttpResponseError, IncomingResponse, OutgoingRequest}; use super::{response_to_http_response, HttpClient, TransmissionProgress}; diff --git a/crates/matrix-sdk/src/matrix_auth/mod.rs b/crates/matrix-sdk/src/matrix_auth/mod.rs index ef0285046..4b4030715 100644 --- a/crates/matrix-sdk/src/matrix_auth/mod.rs +++ b/crates/matrix-sdk/src/matrix_auth/mod.rs @@ -20,7 +20,7 @@ use std::fmt; #[cfg(feature = "sso-login")] use std::future::Future; -use eyeball::shared::Observable as SharedObservable; +use eyeball::SharedObservable; use futures_core::Stream; use futures_util::StreamExt; use matrix_sdk_base::SessionMeta; diff --git a/crates/matrix-sdk/src/media.rs b/crates/matrix-sdk/src/media.rs index 3a78801e2..3ad2142b3 100644 --- a/crates/matrix-sdk/src/media.rs +++ b/crates/matrix-sdk/src/media.rs @@ -21,7 +21,7 @@ use std::io::Read; use std::path::Path; use std::time::Duration; -use eyeball::shared::Observable as SharedObservable; +use eyeball::SharedObservable; use futures_util::future::try_join; pub use matrix_sdk_base::media::*; use mime::Mime; diff --git a/crates/matrix-sdk/src/room/joined/futures.rs b/crates/matrix-sdk/src/room/joined/futures.rs index ff10e2fa5..562cc6b12 100644 --- a/crates/matrix-sdk/src/room/joined/futures.rs +++ b/crates/matrix-sdk/src/room/joined/futures.rs @@ -5,7 +5,7 @@ use std::{ pin::Pin, }; -use eyeball::shared::Observable as SharedObservable; +use eyeball::SharedObservable; use mime::Mime; use ruma::api::client::message::send_message_event; use tracing::{Instrument, Span}; diff --git a/crates/matrix-sdk/src/room/joined/mod.rs b/crates/matrix-sdk/src/room/joined/mod.rs index bcc01ec53..480954eb3 100644 --- a/crates/matrix-sdk/src/room/joined/mod.rs +++ b/crates/matrix-sdk/src/room/joined/mod.rs @@ -2,7 +2,7 @@ use std::sync::Arc; use std::{borrow::Borrow, ops::Deref}; -use eyeball::shared::Observable as SharedObservable; +use eyeball::SharedObservable; #[cfg(feature = "e2e-encryption")] use matrix_sdk_base::RoomMemberships; use matrix_sdk_common::instant::{Duration, Instant}; diff --git a/crates/matrix-sdk/src/sliding_sync/list/builder.rs b/crates/matrix-sdk/src/sliding_sync/list/builder.rs index c70cb48d4..debf8d198 100644 --- a/crates/matrix-sdk/src/sliding_sync/list/builder.rs +++ b/crates/matrix-sdk/src/sliding_sync/list/builder.rs @@ -7,7 +7,7 @@ use std::{ sync::{Arc, RwLock as StdRwLock}, }; -use eyeball::unique::Observable; +use eyeball::Observable; use eyeball_im::ObservableVector; use imbl::Vector; use ruma::{ diff --git a/crates/matrix-sdk/src/sliding_sync/list/mod.rs b/crates/matrix-sdk/src/sliding_sync/list/mod.rs index ea0c02751..2e417a2c1 100644 --- a/crates/matrix-sdk/src/sliding_sync/list/mod.rs +++ b/crates/matrix-sdk/src/sliding_sync/list/mod.rs @@ -13,7 +13,7 @@ use std::{ }; pub use builder::*; -use eyeball::unique::Observable; +use eyeball::Observable; use eyeball_im::{ObservableVector, VectorDiff}; use eyeball_im_util::{FilterVectorSubscriber, VectorExt}; pub(super) use frozen::FrozenSlidingSyncList; diff --git a/crates/matrix-sdk/src/sync.rs b/crates/matrix-sdk/src/sync.rs index 546b3afde..820074b53 100644 --- a/crates/matrix-sdk/src/sync.rs +++ b/crates/matrix-sdk/src/sync.rs @@ -20,7 +20,7 @@ use std::{ time::Duration, }; -use eyeball::unique::Observable; +use eyeball::Observable; pub use matrix_sdk_base::sync::*; use matrix_sdk_base::{ debug::{DebugInvitedRoom, DebugListOfRawEventsNoId, DebugNotificationMap},