mod types;
use self::types::{ChannelHook, ClientHook, EventHook, MessageHook, TextHook, UserHook};
mod builders;
mod dispatch;
#[derive(Default)]
pub struct ClientHooks {
on_event: Option<EventHook>,
on_connect_success: Option<ClientHook>,
on_connect_failed: Option<ClientHook>,
on_connect_crypt_error: Option<ClientHook>,
on_connect_max_payload_updated: Option<MessageHook>,
on_connection_lost: Option<ClientHook>,
on_cmd_processing: Option<MessageHook>,
on_cmd_error: Option<MessageHook>,
on_cmd_success: Option<MessageHook>,
on_logged_in: Option<ClientHook>,
on_logged_out: Option<ClientHook>,
on_myself_kicked: Option<MessageHook>,
on_user_logged_in: Option<UserHook>,
on_user_logged_out: Option<UserHook>,
on_user_update: Option<UserHook>,
on_joined: Option<ChannelHook>,
on_user_joined: Option<UserHook>,
on_user_left: Option<UserHook>,
on_text_message: Option<TextHook>,
on_channel_created: Option<MessageHook>,
on_channel_updated: Option<MessageHook>,
on_channel_removed: Option<MessageHook>,
on_server_update: Option<MessageHook>,
on_server_statistics: Option<MessageHook>,
on_file_new: Option<MessageHook>,
on_file_remove: Option<MessageHook>,
on_user_account: Option<MessageHook>,
on_banned_user: Option<MessageHook>,
on_user_account_created: Option<MessageHook>,
on_user_account_removed: Option<MessageHook>,
on_user_state_change: Option<MessageHook>,
on_video_capture_frame: Option<MessageHook>,
on_media_file_video: Option<MessageHook>,
on_desktop_window: Option<MessageHook>,
on_desktop_cursor: Option<MessageHook>,
on_desktop_input: Option<MessageHook>,
on_user_record_media_file: Option<MessageHook>,
on_audio_block: Option<MessageHook>,
on_internal_error: Option<MessageHook>,
on_voice_activation: Option<MessageHook>,
on_hotkey: Option<MessageHook>,
on_hotkey_test: Option<MessageHook>,
on_file_transfer: Option<MessageHook>,
on_desktop_window_transfer: Option<MessageHook>,
on_stream_media_file: Option<MessageHook>,
on_local_media_file: Option<MessageHook>,
on_audio_input: Option<MessageHook>,
on_user_first_voice_stream_packet: Option<MessageHook>,
on_sound_device_added: Option<MessageHook>,
on_sound_device_removed: Option<MessageHook>,
on_sound_device_unplugged: Option<MessageHook>,
on_sound_device_new_default_input: Option<MessageHook>,
on_sound_device_new_default_output: Option<MessageHook>,
on_sound_device_new_default_input_com_device: Option<MessageHook>,
on_sound_device_new_default_output_com_device: Option<MessageHook>,
on_before_reconnect: Option<MessageHook>,
on_reconnecting: Option<MessageHook>,
on_after_reconnect: Option<MessageHook>,
on_reconnect_failed: Option<MessageHook>,
on_before_auto_login: Option<MessageHook>,
on_auto_login_failed: Option<MessageHook>,
on_before_auto_join: Option<MessageHook>,
on_auto_join_failed: Option<MessageHook>,
on_auto_recover_completed: Option<MessageHook>,
}