Struct RoomList

Source
pub struct RoomList {
    pub(super) list: RefCell<IndexMap<OwnedRoomId, Room>>,
    pub(super) joining_rooms: RefCell<HashSet<OwnedRoomOrAliasId>>,
    tombstoned_rooms: RefCell<HashSet<OwnedRoomId>>,
    session: WeakRef<Session>,
    metainfo: RoomListMetainfo,
    pub(super) get_wait_source: RefCell<Option<SourceId>>,
}

Fields§

§list: RefCell<IndexMap<OwnedRoomId, Room>>

The list of rooms.

§joining_rooms: RefCell<HashSet<OwnedRoomOrAliasId>>

The list of rooms we are currently joining.

§tombstoned_rooms: RefCell<HashSet<OwnedRoomId>>

The list of rooms that were upgraded and for which we have not joined the successor yet.

§session: WeakRef<Session>

The current session.

§metainfo: RoomListMetainfo

The rooms metainfo that allow to restore this RoomList from its previous state.

§get_wait_source: RefCell<Option<SourceId>>

Implementations§

Source§

impl RoomList

Source

fn register_type()

Registers the type only once.

Source§

impl RoomList

Source

pub fn downgrade(&self) -> <Self as Downgrade>::Weak

Source§

impl RoomList

Source

pub(super) fn get(&self, room_id: &RoomId) -> Option<Room>

Get the room with the given room ID, if any.

Source

fn contains(&self, room_id: &RoomId) -> bool

Whether this list contains the room with the given ID.

Source

fn remove_joining_room(&self, identifier: &RoomOrAliasId)

Remove the given room identifier from the rooms we are currently joining.

Source

fn add_joining_room(&self, identifier: OwnedRoomOrAliasId)

Add the given room identified to the rooms we are currently joining.

Source

fn remove_or_replace_joining_room( &self, identifier: &RoomOrAliasId, room_id: &RoomId, )

Remove the given room identifier from the rooms we are currently joining and replace it with the given room ID if the room is not in the list yet.

Source

pub(super) fn add_tombstoned_room(&self, room_id: OwnedRoomId)

Add a room that was tombstoned but for which we have not joined the successor yet.

Source

fn items_added(&self, added: usize)

Handle when items were added to the list.

Source

fn remove(&self, room_id: &RoomId)

Remove the room with the given ID.

Source

pub(super) async fn load(&self)

Load the list of rooms from the Store.

Source

pub(super) fn handle_room_updates(&self, rooms: RoomUpdates)

Handle room updates received via sync.

Source

pub(super) async fn join_by_id_or_alias( &self, identifier: OwnedRoomOrAliasId, via: Vec<OwnedServerName>, ) -> Result<OwnedRoomId, String>

Join the room with the given identifier.

Trait Implementations§

Source§

impl Debug for RoomList

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for RoomList

Source§

fn default() -> RoomList

Returns the “default value” for a type. Read more
Source§

impl DerivedObjectProperties for RoomList

Source§

fn derived_properties() -> &'static [ParamSpec]

Properties installed for this type.
Source§

fn derived_property(&self, id: usize, pspec: &ParamSpec) -> Value

Similar to ObjectImpl but auto-generated by the Properties macro to allow handling more complex use-cases.
Source§

fn derived_set_property(&self, id: usize, value: &Value, pspec: &ParamSpec)

Similar to ObjectImpl but auto-generated by the Properties macro to allow handling more complex use-cases.
Source§

impl ListModelImpl for RoomList

Source§

fn item_type(&self) -> Type

Source§

fn n_items(&self) -> u32

Source§

fn item(&self, position: u32) -> Option<Object>

Source§

impl ObjectImpl for RoomList

Source§

fn signals() -> &'static [Signal]

Signals installed for this type.
Source§

fn constructed(&self)

Constructed. Read more
Source§

fn dispose(&self)

Disposes of the object. Read more
Source§

fn properties() -> &'static [ParamSpec]

Properties installed for this type.
Source§

fn set_property(&self, id: usize, value: &Value, pspec: &ParamSpec)

Property setter. Read more
Source§

fn property(&self, id: usize, pspec: &ParamSpec) -> Value

Property getter. Read more
Source§

fn notify(&self, pspec: &ParamSpec)

Function to be called when property change is notified for with self.notify("property").
Source§

fn dispatch_properties_changed(&self, pspecs: &[ParamSpec])

Source§

impl ObjectSubclass for RoomList

Source§

const NAME: &'static str = "RoomList"

GObject type name. Read more
Source§

type ParentType = Object

Parent Rust type to inherit from.
Source§

type Class = ClassStruct<RoomList>

The C class struct. Read more
Source§

type Instance = InstanceStruct<RoomList>

The C instance struct. Read more
Source§

type Type = RoomList

Wrapper around this subclass defined with wrapper!
Source§

type Interfaces = (ListModel,)

List of interfaces implemented by this type.
Source§

fn new() -> Self

Constructor. Read more
Source§

const ABSTRACT: bool = false

If this subclass is an abstract class or not. Read more
Source§

const ALLOW_NAME_CONFLICT: bool = false

Allow name conflicts for this class. Read more
Source§

fn type_init(_type_: &mut InitializingType<Self>)

Additional type initialization. Read more
Source§

fn class_init(_klass: &mut Self::Class)

Class initialization. Read more
Source§

fn with_class(_klass: &Self::Class) -> Self

Constructor. Read more
Source§

fn instance_init(_obj: &InitializingObject<Self>)

Performs additional instance initialization. Read more
Source§

impl ObjectSubclassType for RoomList

Source§

fn type_data() -> NonNull<TypeData>

Storage for the type-specific data used during registration.
Source§

fn type_() -> Type

Returns the glib::Type ID of the subclass. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, W> HasTypeWitness<W> for T
where W: MakeTypeWitness<Arg = T>, T: ?Sized,

Source§

const WITNESS: W = W::MAKE

A constant of the type witness
Source§

impl<T> Identity for T
where T: ?Sized,

Source§

const TYPE_EQ: TypeEq<T, <T as Identity>::Type> = TypeEq::NEW

Proof that Self is the same type as Self::Type, provides methods for casting between Self and Self::Type.
Source§

type Type = T

The same type as Self, used to emulate type equality bounds (T == U) with associated type equality constraints (T: Identity<Type = U>).
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> ListModelImplExt for T
where T: ListModelImpl,

Source§

impl<T> NoneValue for T
where T: Default,

Source§

type NoneType = T

Source§

fn null_value() -> T

The none-equivalent value.
Source§

impl<T> ObjectImplExt for T
where T: ObjectImpl,

Source§

fn parent_constructed(&self)

Chain up to the parent class’ implementation of glib::Object::constructed().
Source§

fn parent_notify(&self, pspec: &ParamSpec)

Chain up to the parent class’ implementation of glib::Object::notify().
Source§

fn parent_dispatch_properties_changed(&self, pspecs: &[ParamSpec])

Chain up to the parent class’ implementation of glib::Object::dispatch_properties_changed().
Source§

fn signal_chain_from_overridden( &self, token: &SignalClassHandlerToken, values: &[Value], ) -> Option<Value>

Chain up to parent class signal handler.
Source§

impl<T> ObjectSubclassExt for T
where T: ObjectSubclass,

Source§

fn instance(&self) -> BorrowedObject<'_, <T as ObjectSubclass>::Type>

👎Deprecated: Use obj() instead
Returns the corresponding object instance.
Source§

fn from_instance(obj: &<T as ObjectSubclass>::Type) -> &T

👎Deprecated: Use from_obj() instead
Returns the implementation from an instance.
Source§

fn obj(&self) -> BorrowedObject<'_, <T as ObjectSubclass>::Type>

Returns the corresponding object instance. Read more
Source§

fn from_obj(obj: &<T as ObjectSubclass>::Type) -> &T

Returns the implementation from an instance. Read more
Source§

fn ref_counted(&self) -> ObjectImplRef<T>

Returns a new reference-counted wrapper around self.
Source§

fn instance_data<U>(&self, type_: Type) -> Option<&U>
where U: Any + Send + Sync + 'static,

Returns a pointer to the instance implementation specific data. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> Any for T
where T: Any,

Source§

impl<T> ErasedDestructor for T
where T: 'static,