Move Event to event module

This commit is contained in:
xmppftw 2023-12-29 21:56:37 +01:00 committed by xmppftw@kl.netlib.re
parent 0bbc089480
commit a82b48debc
2 changed files with 36 additions and 25 deletions

32
xmpp/src/event.rs Normal file
View file

@ -0,0 +1,32 @@
// Copyright (c) 2023 xmpp-rs contributors.
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
use tokio_xmpp::parsers::{bookmarks2, message::Body, roster::Item as RosterItem, BareJid, Jid};
use crate::{Error, Id, RoomNick};
#[derive(Debug)]
pub enum Event {
Online,
Disconnected(Error),
ContactAdded(RosterItem),
ContactRemoved(RosterItem),
ContactChanged(RosterItem),
#[cfg(feature = "avatars")]
AvatarRetrieved(Jid, String),
ChatMessage(Id, BareJid, Body),
JoinRoom(BareJid, bookmarks2::Conference),
LeaveRoom(BareJid),
LeaveAllRooms,
RoomJoined(BareJid),
RoomLeft(BareJid),
RoomMessage(Id, BareJid, RoomNick, Body),
/// A private message received from a room, containing the message ID, the room's BareJid,
/// the sender's nickname, and the message body.
RoomPrivateMessage(Id, BareJid, RoomNick, Body),
ServiceMessage(Id, BareJid, Body),
HttpUploadedFile(String),
}

View file

@ -12,7 +12,7 @@ use std::sync::{Arc, RwLock};
use tokio::fs::File; use tokio::fs::File;
pub use tokio_xmpp::parsers; pub use tokio_xmpp::parsers;
use tokio_xmpp::parsers::{ use tokio_xmpp::parsers::{
bookmarks, bookmarks2, bookmarks,
caps::{compute_disco, hash_caps, Caps}, caps::{compute_disco, hash_caps, Caps},
disco::{DiscoInfoQuery, DiscoInfoResult, Feature}, disco::{DiscoInfoQuery, DiscoInfoResult, Feature},
hashes::Algo, hashes::Algo,
@ -24,7 +24,7 @@ use tokio_xmpp::parsers::{
presence::{Presence, Type as PresenceType}, presence::{Presence, Type as PresenceType},
private::Query as PrivateXMLQuery, private::Query as PrivateXMLQuery,
pubsub::pubsub::{Items, PubSub}, pubsub::pubsub::{Items, PubSub},
roster::{Item as RosterItem, Roster}, roster::Roster,
Error as ParsersError, Error as ParsersError,
}; };
use tokio_xmpp::{AsyncClient as TokioXmppClient, Event as TokioXmppEvent}; use tokio_xmpp::{AsyncClient as TokioXmppClient, Event as TokioXmppEvent};
@ -33,6 +33,7 @@ pub use tokio_xmpp::{BareJid, Element, FullJid, Jid};
extern crate log; extern crate log;
pub mod builder; pub mod builder;
pub mod event;
pub mod feature; pub mod feature;
pub mod iq; pub mod iq;
pub mod message; pub mod message;
@ -42,35 +43,13 @@ pub mod upload;
// Module re-exports // Module re-exports
pub use builder::{ClientBuilder, ClientType}; pub use builder::{ClientBuilder, ClientType};
pub use event::Event;
pub use feature::ClientFeature; pub use feature::ClientFeature;
pub type Error = tokio_xmpp::Error; pub type Error = tokio_xmpp::Error;
pub type Id = Option<String>; pub type Id = Option<String>;
pub type RoomNick = String; pub type RoomNick = String;
#[derive(Debug)]
pub enum Event {
Online,
Disconnected(Error),
ContactAdded(RosterItem),
ContactRemoved(RosterItem),
ContactChanged(RosterItem),
#[cfg(feature = "avatars")]
AvatarRetrieved(Jid, String),
ChatMessage(Id, BareJid, Body),
JoinRoom(BareJid, bookmarks2::Conference),
LeaveRoom(BareJid),
LeaveAllRooms,
RoomJoined(BareJid),
RoomLeft(BareJid),
RoomMessage(Id, BareJid, RoomNick, Body),
/// A private message received from a room, containing the message ID, the room's BareJid,
/// the sender's nickname, and the message body.
RoomPrivateMessage(Id, BareJid, RoomNick, Body),
ServiceMessage(Id, BareJid, Body),
HttpUploadedFile(String),
}
pub struct Agent { pub struct Agent {
client: TokioXmppClient, client: TokioXmppClient,
default_nick: Arc<RwLock<String>>, default_nick: Arc<RwLock<String>>,