unofficial_extras/
callbacks.rs1use crate::{
4 ExtrasAddonInfo, ExtrasSubscriberInfo, RawExtrasAddonInfo,
5 keybinds::{KeybindChange, RawKeybindChange},
6 language::Language,
7 message::{Message, MessageType, RawMessage, SquadMessage},
8 user::{UserInfo, UserInfoIter},
9 util::abi,
10};
11
12pub type ExtrasInitFunc = fn(extras_info: ExtrasAddonInfo, account_name: Option<&str>);
13
14pub type ExtrasSquadUpdateCallback = fn(updated_users: UserInfoIter);
15
16pub type ExtrasLanguageChangedCallback = fn(language: Language);
17
18pub type ExtrasKeybindChangedCallback = fn(changed: KeybindChange);
19
20pub type ExtrasSquadChatMessageCallback = fn(message: &SquadMessage);
21
22pub type ExtrasChatMessageCallback = fn(message: Message);
23
24abi! {
25 pub type RawExtrasSubscriberInit = unsafe extern fn(
26 extras_info: *const RawExtrasAddonInfo,
27 subscriber_info: *mut ExtrasSubscriberInfo,
28 );
29
30 pub type RawExtrasSquadUpdateCallback =
31 unsafe extern fn(updated_users: *const UserInfo, updated_users_count: u64);
32
33 pub type RawExtrasLanguageChangedCallback = unsafe extern fn(language: Language);
34
35 pub type RawExtrasKeybindChangedCallback = unsafe extern fn(changed: RawKeybindChange);
36
37 pub type RawExtrasSquadChatMessageCallback =
38 unsafe extern fn(message: *const SquadMessage);
39
40 pub type RawExtrasChatMessageCallback =
41 unsafe extern fn(message_type: MessageType, message: RawMessage);
42}