1#![forbid(unsafe_code)]
23
24pub mod methods;
25pub mod session;
26pub mod sse;
27pub mod types;
28pub mod utils;
29pub mod ws;
30
31pub use jmap_base_client::ClientError;
32pub use methods::blob::{BlobConvertResponse, BlobLookupEntry, BlobLookupResponse, BlobObject};
33pub use methods::quota::Quota;
34pub use methods::{
35 AddMemberInput, AddedItem, ChangesResponse, ChatContactPatch, ChatContactQueryInput,
36 ChatCreateInput, ChatPatch, ChatQueryInput, ContactSortProperty, CustomEmojiCreateInput,
37 CustomEmojiQueryInput, GetResponse, MessageCreateInput, MessagePatch, MessageQueryInput, Patch,
38 PresenceStatusPatch, PushSubscriptionCreateInput, PushSubscriptionCreateResponse,
39 PushSubscriptionPatch, QueryChangesResponse, QueryResponse, ReactionChange, SessionClient,
40 SetError, SetResponse, SpaceAddCategoryInput, SpaceAddChannelInput, SpaceAddMemberInput,
41 SpaceAddRoleInput, SpaceBanCreateInput, SpaceCreateInput, SpaceInviteCreateInput,
42 SpaceJoinInput, SpaceJoinResponse, SpacePatch, SpaceQueryInput, SpaceUpdateCategoryInput,
43 SpaceUpdateChannelInput, SpaceUpdateMemberInput, SpaceUpdateRoleInput, TypingResponse,
44 UpdateMemberRoleInput,
45};
46pub use session::{ChatCapability, ChatPushCapability, ChatSessionExt};
47pub use sse::{parse_chat_sse_block, ChatSseEvent, ChatSseFrame};
48pub use ws::{ChatWsExt, ChatWsFrame};
49
50pub trait JmapChatExt {
57 fn with_chat_session(&self, session: jmap_base_client::Session) -> methods::SessionClient;
61}
62
63impl JmapChatExt for jmap_base_client::JmapClient {
64 fn with_chat_session(&self, session: jmap_base_client::Session) -> methods::SessionClient {
65 methods::SessionClient {
66 client: self.clone(),
67 session,
68 }
69 }
70}