var searchIndex = {}; searchIndex["slack"] = {"doc":"Slack realtime messaging client: https://api.slack.com/bot-users","items":[[3,"Attachment","slack","The Slack [`Attachment`](https://api.slack.com/docs/attachments) object as found in\nrichly-formatted messages.",null,null],[12,"fallback","","",0,null],[12,"color","","",0,null],[12,"pretext","","",0,null],[12,"author_name","","",0,null],[12,"author_link","","",0,null],[12,"author_icon","","",0,null],[12,"title","","",0,null],[12,"title_link","","",0,null],[12,"text","","",0,null],[12,"fields","","",0,null],[12,"image_url","","",0,null],[12,"thumb_url","","",0,null],[3,"Channel","","The Slack [`Channel`](https://api.slack.com/types/channel) type.",null,null],[12,"id","","",1,null],[12,"name","","",1,null],[12,"is_channel","","",1,null],[12,"created","","",1,null],[12,"creator","","",1,null],[12,"is_archived","","",1,null],[12,"is_general","","",1,null],[12,"members","","",1,null],[12,"topic","","",1,null],[12,"purpose","","",1,null],[12,"is_member","","",1,null],[12,"last_read","","",1,null],[12,"unread_count","","",1,null],[12,"unread_count_display","","",1,null],[3,"Group","","The Slack [`Group`](https://api.slack.com/types/group) type.",null,null],[12,"id","","",2,null],[12,"name","","",2,null],[12,"is_group","","",2,null],[12,"created","","",2,null],[12,"creator","","",2,null],[12,"is_archived","","",2,null],[12,"members","","",2,null],[12,"topic","","",2,null],[12,"purpose","","",2,null],[12,"last_read","","",2,null],[12,"unread_count","","",2,null],[12,"unread_count_display","","",2,null],[3,"Im","","The Slack [`Im`](https://api.slack.com/types/im) type.",null,null],[12,"id","","",3,null],[12,"is_im","","",3,null],[12,"user","","",3,null],[12,"created","","",3,null],[12,"is_user_deleted","","",3,null],[3,"Team","","The `Team` object as found in the [`rtm.start`](https://api.slack.com/methods/rtm.start)\nresponse.",null,null],[12,"id","","",4,null],[12,"name","","",4,null],[12,"email_domain","","",4,null],[12,"domain","","",4,null],[12,"msg_edit_window_mins","","",4,null],[12,"over_storage_limit","","",4,null],[12,"plan","","",4,null],[3,"User","","The Slack [`User`](https://api.slack.com/types/user) type.",null,null],[12,"id","","",5,null],[12,"name","","",5,null],[12,"deleted","","",5,null],[12,"color","","",5,null],[12,"profile","","",5,null],[12,"is_admin","","",5,null],[12,"is_owner","","",5,null],[12,"is_primary_owner","","",5,null],[12,"is_restricted","","",5,null],[12,"is_ultra_restricted","","",5,null],[12,"has_2fa","","",5,null],[12,"two_factor_type","","",5,null],[12,"has_files","","",5,null],[4,"Message","","Represents Slack [message event](https://api.slack.com/events/message) types.",null,null],[13,"Standard","","The Slack [`Message`](https://api.slack.com/events/message) event that represents a message\nto a channel, group or im.",6,null],[12,"ts","slack::Message","",6,null],[12,"channel","","",6,null],[12,"user","","",6,null],[12,"text","","",6,null],[12,"is_starred","","",6,null],[12,"pinned_to","","",6,null],[12,"reactions","","",6,null],[12,"edited","","",6,null],[12,"attachments","","",6,null],[13,"BotMessage","slack","Wraps the [`bot_message`](https://api.slack.com/events/message/bot_message) message event.",6,null],[12,"ts","slack::Message","",6,null],[12,"text","","",6,null],[12,"attachments","","",6,null],[12,"bot_id","","",6,null],[12,"username","","",6,null],[12,"icons","","",6,null],[13,"MeMessage","slack","Wraps the [`me_message`](https://api.slack.com/events/message/me_message) message event.",6,null],[12,"channel","slack::Message","",6,null],[12,"user","","",6,null],[12,"text","","",6,null],[12,"ts","","",6,null],[13,"MessageChanged","slack","Wraps the [`message_changed`](https://api.slack.com/events/message/message_changed) message\nevent.",6,null],[12,"hidden","slack::Message","",6,null],[12,"channel","","",6,null],[12,"ts","","",6,null],[12,"message","","",6,null],[13,"MessageDeleted","slack","Wraps the [`message_deleted`](https://api.slack.com/events/message/message_deleted) message\nevent.",6,null],[12,"hidden","slack::Message","",6,null],[12,"channel","","",6,null],[12,"ts","","",6,null],[12,"deleted_ts","","",6,null],[13,"ChannelJoin","slack","Wraps the [`channel_join`](https://api.slack.com/events/message/channel_join) message\nevent.",6,null],[12,"ts","slack::Message","",6,null],[12,"user","","",6,null],[12,"text","","",6,null],[12,"inviter","","",6,null],[13,"ChannelLeave","slack","Wraps the [`channel_leave`](https://api.slack.com/events/message/channel_leave) message\nevent.",6,null],[12,"ts","slack::Message","",6,null],[12,"user","","",6,null],[12,"text","","",6,null],[13,"ChannelTopic","slack","Wraps the [`channel_topic`](https://api.slack.com/events/message/channel_topic) message\nevent.",6,null],[12,"ts","slack::Message","",6,null],[12,"user","","",6,null],[12,"topic","","",6,null],[12,"text","","",6,null],[13,"ChannelPurpose","slack","Wraps the [`channel_purpose`](https://api.slack.com/events/message/channel_purpose) message\nevent.",6,null],[12,"ts","slack::Message","",6,null],[12,"user","","",6,null],[12,"purpose","","",6,null],[12,"text","","",6,null],[13,"ChannelName","slack","Wraps the [`channel_name`](https://api.slack.com/events/message/channel_name) message\nevent.",6,null],[12,"ts","slack::Message","",6,null],[12,"user","","",6,null],[12,"old_name","","",6,null],[12,"name","","",6,null],[12,"text","","",6,null],[13,"ChannelArchive","slack","Wraps the [`channel_archive`](https://api.slack.com/events/message/channel_archive) message\nevent.",6,null],[12,"ts","slack::Message","",6,null],[12,"text","","",6,null],[12,"user","","",6,null],[12,"members","","",6,null],[13,"ChannelUnarchive","slack","Wraps the [`channel_unarchive`](https://api.slack.com/events/message/channel_unarchive)\nmessage event.",6,null],[12,"ts","slack::Message","",6,null],[12,"text","","",6,null],[12,"user","","",6,null],[13,"GroupJoin","slack","Wraps the [`group_join`](https://api.slack.com/events/message/group_join) message event.",6,null],[12,"ts","slack::Message","",6,null],[12,"user","","",6,null],[12,"text","","",6,null],[12,"inviter","","",6,null],[13,"GroupLeave","slack","Wraps the [`group_leave`](https://api.slack.com/events/message/group_leave) message event.",6,null],[12,"ts","slack::Message","",6,null],[12,"user","","",6,null],[12,"text","","",6,null],[13,"GroupTopic","slack","Wraps the [`group_topic`](https://api.slack.com/events/message/group_topic) message event.",6,null],[12,"ts","slack::Message","",6,null],[12,"user","","",6,null],[12,"topic","","",6,null],[12,"text","","",6,null],[13,"GroupPurpose","slack","Wraps the [`group_purpose`](https://api.slack.com/events/message/group_purpose) message\nevent.",6,null],[12,"ts","slack::Message","",6,null],[12,"user","","",6,null],[12,"purpose","","",6,null],[12,"text","","",6,null],[13,"GroupName","slack","Wraps the [`group_name`](https://api.slack.com/events/message/group_name) message event.",6,null],[12,"ts","slack::Message","",6,null],[12,"user","","",6,null],[12,"old_name","","",6,null],[12,"name","","",6,null],[12,"text","","",6,null],[13,"GroupArchive","slack","Wraps the [`group_archive`](https://api.slack.com/events/message/group_archive) message\nevent.",6,null],[12,"ts","slack::Message","",6,null],[12,"text","","",6,null],[12,"user","","",6,null],[12,"members","","",6,null],[13,"GroupUnarchive","slack","Wraps the [`group_unarchive`](https://api.slack.com/events/message/group_unarchive)\nmessage event.",6,null],[12,"ts","slack::Message","",6,null],[12,"text","","",6,null],[12,"user","","",6,null],[13,"FileShare","slack","Wraps the [`file_share`](https://api.slack.com/events/message/file_share) message event.",6,null],[12,"ts","slack::Message","",6,null],[12,"text","","",6,null],[12,"file","","",6,null],[12,"user","","",6,null],[12,"upload","","",6,null],[13,"FileComment","slack","Wraps the [`file_comment`](https://api.slack.com/events/message/file_comment) message\nevent.",6,null],[12,"ts","slack::Message","",6,null],[12,"text","","",6,null],[12,"file","","",6,null],[12,"comment","","",6,null],[13,"FileMention","slack","Wraps the [`file_mention`](https://api.slack.com/events/message/file_mention) message\nevent.",6,null],[12,"ts","slack::Message","",6,null],[12,"text","","",6,null],[12,"file","","",6,null],[12,"user","","",6,null],[13,"PinnedItem","slack","Wraps the [`pinned_item`](https://api.slack.com/events/message/pinned_item) message event.",6,null],[12,"user","slack::Message","",6,null],[12,"item_type","","",6,null],[12,"text","","",6,null],[12,"item","","",6,null],[12,"channel","","",6,null],[12,"ts","","",6,null],[12,"attachments","","",6,null],[13,"UnpinnedItem","slack","Wraps the [`unpinned_item`](https://api.slack.com/events/message/unpinned_item) message\nevent.",6,null],[12,"user","slack::Message","",6,null],[12,"item_type","","",6,null],[12,"text","","",6,null],[12,"item","","",6,null],[12,"channel","","",6,null],[12,"ts","","",6,null],[12,"attachments","","",6,null],[3,"WebSocketMessage","slack","Represents a WebSocket message.",null,null],[12,"opcode","","Type of WebSocket message",7,null],[12,"cd_status_code","","Optional status code to send when closing a connection.\n(only used if this message is of Type::Close)",7,null],[12,"payload","","Main payload",7,null],[3,"RtmClient","","The actual messaging client.",null,null],[3,"Sender","","Thread-safe API for sending messages asynchronously",null,null],[4,"Event","","Represents Slack [rtm event](https://api.slack.com/rtm) types.",null,null],[13,"Hello","","Represents the slack [`hello`](https://api.slack.com/events/hello) event.",8,null],[13,"Message","","Represents the slack [`message`](https://api.slack.com/events/message)\nevent.",8,null],[13,"UserTyping","","Represents the slack\n[`user_typing`](https://api.slack.com/events/user_typing) event.",8,null],[12,"channel","slack::Event","",8,null],[12,"user","","",8,null],[13,"ChannelMarked","slack","Represents the slack\n[`channel_marked`](https://api.slack.com/events/channel_marked) event.",8,null],[12,"channel","slack::Event","",8,null],[12,"ts","","",8,null],[13,"ChannelCreated","slack","Represents the slack\n[`channel_created`](https://api.slack.com/events/channel_created) event.",8,null],[12,"channel","slack::Event","",8,null],[13,"ChannelJoined","slack","Represents the slack\n[`channel_joined`](https://api.slack.com/events/channel_joined) event.",8,null],[12,"channel","slack::Event","",8,null],[13,"ChannelLeft","slack","Represents the slack\n[`channel_left`](https://api.slack.com/events/channel_left) event.",8,null],[12,"channel","slack::Event","",8,null],[13,"ChannelDeleted","slack","Represents the slack\n[`channel_deleted`](https://api.slack.com/events/channel_deleted) event.",8,null],[12,"channel","slack::Event","",8,null],[13,"ChannelRename","slack","Represents the slack\n[`channel_rename`](https://api.slack.com/events/channel_rename) event.",8,null],[12,"channel","slack::Event","",8,null],[13,"ChannelArchive","slack","Represents the slack\n[`channel_archive`](https://api.slack.com/events/channel_archive) event.",8,null],[12,"channel","slack::Event","",8,null],[12,"user","","",8,null],[13,"ChannelUnArchive","slack","Represents the slack\n[`channel_unarchive`](https://api.slack.com/events/channel_unarchive) event.",8,null],[12,"channel","slack::Event","",8,null],[12,"user","","",8,null],[13,"ChannelHistoryChanged","slack","Represents the slack\n[`channel_history_changed`](https://api.slack.\ncom/events/channel_history_changed) event.",8,null],[12,"latest","slack::Event","",8,null],[12,"ts","","",8,null],[12,"event_ts","","",8,null],[13,"ImCreated","slack","Represents the slack\n[`im_created`](https://api.slack.com/events/im_created) event.",8,null],[12,"user","slack::Event","",8,null],[12,"channel","","",8,null],[13,"ImOpen","slack","Represents the slack [`im_open`](https://api.slack.com/events/im_open)\nevent.",8,null],[12,"user","slack::Event","",8,null],[12,"channel","","",8,null],[13,"ImClose","slack","Represents the slack [`im_close`](https://api.slack.com/events/im_close)\nevent.",8,null],[12,"user","slack::Event","",8,null],[12,"channel","","",8,null],[13,"ImMarked","slack","Represents the slack [`im_marked`](https://api.slack.com/events/im_marked)\nevent.",8,null],[12,"channel","slack::Event","",8,null],[12,"ts","","",8,null],[13,"ImHistoryChanged","slack","Represents the slack\n[`im_history_changed`](https://api.slack.com/events/im_history_changed)\nevent.",8,null],[12,"latest","slack::Event","",8,null],[12,"ts","","",8,null],[12,"event_ts","","",8,null],[13,"GroupJoined","slack","Represents the slack\n[`group_joined`](https://api.slack.com/events/group_joined) event.",8,null],[12,"channel","slack::Event","",8,null],[13,"GroupLeft","slack","Represents the slack\n[`group_left`](https://api.slack.com/events/group_left) event.",8,null],[12,"channel","slack::Event","",8,null],[13,"GroupOpen","slack","Represents the slack\n[`group_open`](https://api.slack.com/events/group_open) event.",8,null],[12,"user","slack::Event","",8,null],[12,"channel","","",8,null],[13,"GroupClose","slack","Represents the slack\n[`group_close`](https://api.slack.com/events/group_close) event.",8,null],[12,"user","slack::Event","",8,null],[12,"channel","","",8,null],[13,"GroupArchive","slack","Represents the slack\n[`group_archive`](https://api.slack.com/events/group_archive) event.",8,null],[12,"channel","slack::Event","",8,null],[13,"GroupUnArchive","slack","Represents the slack\n[`group_unarchive`](https://api.slack.com/events/group_unarchive) event.",8,null],[12,"channel","slack::Event","",8,null],[13,"GroupRename","slack","Represents the slack\n[`group_rename`](https://api.slack.com/events/group_rename) event.",8,null],[12,"channel","slack::Event","",8,null],[13,"GroupMarked","slack","Represents the slack\n[`group_marked`](https://api.slack.com/events/group_marked) event.",8,null],[12,"channel","slack::Event","",8,null],[12,"ts","","",8,null],[13,"GroupHistoryChanged","slack","Represents the slack\n[`group_history_changed`](https://api.slack.\ncom/events/group_history_changed) event.",8,null],[12,"latest","slack::Event","",8,null],[12,"ts","","",8,null],[12,"event_ts","","",8,null],[13,"FileCreated","slack","Represents the slack\n[`file_created`](https://api.slack.com/events/file_created) event.",8,null],[12,"file","slack::Event","",8,null],[13,"FileShared","slack","Represents the slack\n[`file_shared`](https://api.slack.com/events/file_shared) event.",8,null],[12,"file","slack::Event","",8,null],[13,"FileUnShared","slack","Represents the slack\n[`file_unshared`](https://api.slack.com/events/file_unshared) event.",8,null],[12,"file","slack::Event","",8,null],[13,"FilePublic","slack","Represents the slack\n[`file_public`](https://api.slack.com/events/file_public) event.",8,null],[12,"file","slack::Event","",8,null],[13,"FilePrivate","slack","Represents the slack\n[`file_private`](https://api.slack.com/events/file_private) event.",8,null],[12,"file","slack::Event","",8,null],[13,"FileChange","slack","Represents the slack\n[`file_change`](https://api.slack.com/events/file_change) event.",8,null],[12,"file","slack::Event","",8,null],[13,"FileDeleted","slack","Represents the slack\n[`file_deleted`](https://api.slack.com/events/file_deleted) event.",8,null],[12,"file_id","slack::Event","",8,null],[12,"event_ts","","",8,null],[13,"FileCommentAdded","slack","Represents the slack\n[`file_comment_added`](https://api.slack.com/events/file_comment_added)\nevent.",8,null],[12,"file","slack::Event","",8,null],[12,"comment","","",8,null],[13,"FileCommentEdited","slack","Represents the slack\n[`file_comment_edited`](https://api.slack.com/events/file_comment_edited)\nevent.",8,null],[12,"file","slack::Event","",8,null],[12,"comment","","",8,null],[13,"FileCommentDeleted","slack","Represents the slack\n[`file_comment_deleted`](https://api.slack.com/events/file_comment_deleted)\nevent.",8,null],[12,"file","slack::Event","",8,null],[12,"comment","","",8,null],[13,"PinAdded","slack","Represents the slack [`pin_added`](https://api.slack.com/events/pin_added)\nevent.",8,null],[12,"user","slack::Event","",8,null],[12,"channel_id","","",8,null],[12,"item","","",8,null],[12,"event_ts","","",8,null],[13,"PinRemoved","slack","Represents the slack\n[`pin_removed`](https://api.slack.com/events/pin_removed) event.",8,null],[12,"user","slack::Event","",8,null],[12,"channel_id","","",8,null],[12,"item","","",8,null],[12,"has_pins","","",8,null],[12,"event_ts","","",8,null],[13,"PresenceChange","slack","Represents the slack\n[`presence_change`](https://api.slack.com/events/presence_change) event.",8,null],[12,"user","slack::Event","",8,null],[12,"presence","","",8,null],[13,"ManualPresenceChange","slack","Represents the slack\n[`manual_presence_change`](https://api.slack.\ncom/events/manual_presence_change) event.",8,null],[12,"presence","slack::Event","",8,null],[13,"PrefChange","slack","Represents the slack\n[`pref_change`](https://api.slack.com/events/pref_change) event.",8,null],[12,"name","slack::Event","",8,null],[12,"value","","",8,null],[13,"UserChange","slack","Represents the slack\n[`user_change`](https://api.slack.com/events/user_change) event.",8,null],[12,"user","slack::Event","",8,null],[13,"TeamJoin","slack","Represents the slack [`team_join`](https://api.slack.com/events/team_join)\nevent.",8,null],[12,"user","slack::Event","",8,null],[13,"StarAdded","slack","Represents the slack\n[`star_added`](https://api.slack.com/events/star_added) event.",8,null],[12,"user","slack::Event","",8,null],[12,"item","","",8,null],[12,"event_ts","","",8,null],[13,"StarRemoved","slack","Represents the slack\n[`star_removed`](https://api.slack.com/events/star_removed) event.",8,null],[12,"user","slack::Event","",8,null],[12,"item","","",8,null],[12,"event_ts","","",8,null],[13,"ReactionAdded","slack","Represents the slack\n[`reaction_added`](https://api.slack.com/events/reaction_added) event.",8,null],[12,"user","slack::Event","",8,null],[12,"reaction","","",8,null],[12,"item","","",8,null],[12,"item_user","","",8,null],[12,"event_ts","","",8,null],[13,"ReactionRemoved","slack","Represents the slack\n[`reaction_removed`](https://api.slack.com/events/reaction_removed) event.",8,null],[12,"user","slack::Event","",8,null],[12,"reaction","","",8,null],[12,"item","","",8,null],[12,"item_user","","",8,null],[12,"event_ts","","",8,null],[13,"EmojiChanged","slack","Represents the slack\n[`emoji_changed`](https://api.slack.com/event/emoji_changed) event.",8,null],[12,"event_ts","slack::Event","",8,null],[13,"CommandsChanged","slack","Represents the slack\n[`commands_changed`](https://api.slack.com/event/commands_changed) event.",8,null],[12,"event_ts","slack::Event","",8,null],[13,"TeamPlanChange","slack","Represents the slack\n[`team_plan_change`](https://api.slack.com/event/team_plan_change) event.",8,null],[12,"plan","slack::Event","",8,null],[13,"TeamPrefChange","slack","Represents the slack\n[`team_pref_change`](https://api.slack.com/event/team_pref_change) event.",8,null],[12,"name","slack::Event","",8,null],[12,"value","","",8,null],[13,"TeamRename","slack","Represents the slack\n[`team_rename`](https://api.slack.com/event/team_rename) event.",8,null],[12,"name","slack::Event","",8,null],[13,"TeamDomainChange","slack","Represents the slack\n[`team_domain_change`](https://api.slack.com/event/team_domain_change)\nevent.",8,null],[12,"url","slack::Event","",8,null],[12,"domain","","",8,null],[13,"EmailDomainChanged","slack","Represents the slack\n[`email_domain_changeed`](https://api.slack.\ncom/event/email_domain_changeed) event.",8,null],[12,"email_domain","slack::Event","",8,null],[12,"event_ts","","",8,null],[13,"BotAdded","slack","Represents the slack [`bot_added`](https://api.slack.com/event/bot_added)\nevent.",8,null],[12,"bot","slack::Event","",8,null],[13,"BotChanged","slack","Represents the slack\n[`bot_changed`](https://api.slack.com/event/bot_changed) event.",8,null],[12,"bot","slack::Event","",8,null],[13,"AccountsChanged","slack","Represents the slack\n[`accounts_changed`](https://api.slack.com/event/accounts_changed) event.",8,null],[13,"TeamMigrationStarted","","Represents the slack\n[`team_migration_started`](https://api.slack.\ncom/event/team_migration_started) event.",8,null],[13,"ReconnectUrl","","Represents the slack\n[`reconnect_url`](https://api.slack.com/event/reconnect_url)\nevent.",8,null],[13,"MessageSent","","Represents a confirmation of a message sent",8,null],[12,"reply_to","slack::Event","",8,null],[12,"ts","","",8,null],[12,"text","","",8,null],[13,"MessageError","slack","Represents an error sending a message",8,null],[12,"reply_to","slack::Event","",8,null],[12,"code","","",8,null],[12,"message","","",8,null],[4,"WsMessage","slack","Used for passing websocket messages in channels",null,null],[13,"Close","","",9,null],[13,"Text","","",9,null],[13,"Pong","","",9,null],[0,"error","","",null,null],[4,"Error","slack::error","slack::Error represents errors that can happen while using the RtmClient",null,null],[13,"Http","","Http client error",10,null],[13,"WebSocket","","WebSocket connection error",10,null],[13,"Utf8","","Error decoding websocket text frame Utf8",10,null],[13,"Url","","Error parsing url",10,null],[13,"JsonDecode","","Error decoding Json",10,null],[13,"JsonParse","","Error parsing Json",10,null],[13,"JsonEncode","","Error encoding Json",10,null],[13,"Api","","Slack Api Error",10,null],[13,"Internal","","Errors that do not fit under the other types, Internal is for EG channel errors.",10,null],[11,"fmt","","",10,null],[11,"from","","",10,{"inputs":[{"name":"error"}],"output":{"name":"error"}}],[11,"from","","",10,{"inputs":[{"name":"websocketerror"}],"output":{"name":"error"}}],[11,"from","","",10,{"inputs":[{"name":"decodererror"}],"output":{"name":"error"}}],[11,"from","","",10,{"inputs":[{"name":"parsererror"}],"output":{"name":"error"}}],[11,"from","","",10,{"inputs":[{"name":"encodererror"}],"output":{"name":"error"}}],[11,"from","","",10,{"inputs":[{"name":"error"}],"output":{"name":"error"}}],[11,"from","","",10,{"inputs":[{"name":"fromutf8error"}],"output":{"name":"error"}}],[11,"from","","",10,{"inputs":[{"name":"error"}],"output":{"name":"error"}}],[11,"fmt","","",10,null],[11,"description","","",10,null],[11,"cause","","",10,null],[11,"fmt","slack","",8,null],[11,"clone","","",8,null],[11,"decode","","",8,{"inputs":[{"name":"d"}],"output":{"name":"result"}}],[6,"WsClient","","",null,null],[8,"EventHandler","","Implement this trait in your code to handle message events",null,null],[10,"on_event","","When a message is received this will be called with self, the slack client,\nand the result of parsing the event received, as well as the raw json string.",11,null],[10,"on_ping","","Called when a ping is received; you do NOT need to handle the reply pong,\nbut you may use this event to track the connection as a keep-alive.",11,null],[10,"on_close","","Called when the connection is closed for any reason.",11,null],[10,"on_connect","","Called when the connection is opened.",11,null],[11,"get_msg_uid","","Get the next message id",12,null],[11,"send","","Send a raw message",12,null],[11,"send_message_chid","","Send a message to the specified channel id",12,null],[11,"new","","Creates a new client from a token",13,{"inputs":[{"name":"str"}],"output":{"name":"rtmclient"}}],[11,"get_name","","Returns the name of the bot/user connected to the client.\nOnly valid after login, otherwise None.",13,null],[11,"get_id","","Returns the id of the bot/user connected to the client.\nOnly valid after login, otherwise None.",13,null],[11,"get_team","","Returns the Team struct of the bot/user connected to the client.\n/ Only valid after login, otherwise None.",13,null],[11,"get_user_id","","Get a user id from a username\nOnly valid after login.",13,null],[11,"get_channel_id","","Get a channel id from a channel name, note that channel_name does not begin with a '#'\nOnly valid after login.",13,null],[11,"get_group_id","","Get a group id from a group name\nOnly valid after login.",13,null],[11,"get_users","","Returns a vector of Users from the team the bot/client is connected to.\nOnly valid after login.",13,null],[11,"get_channels","","Returns a vector of Channels from the team the bot/client is connected to.\nOnly valid after login.",13,null],[11,"get_groups","","Returns a vector of Groups from the team the bot/client is connected to.\nOnly valid after login.",13,null],[11,"get_start_ims","","Returns a vector of Ims received on login the bot/client is connected to.\nOnly valid after login, otherwise None.",13,null],[11,"get_msg_uid","","Returns a unique identifier to be used in the 'id' field of a message\nsent to slack.",13,null],[11,"channel","","Get a thread-safe message sender",13,null],[11,"send","","Allows sending a json string message over the websocket connection.\nNote that this only passes the message over a channel to the\nMessaging task, and therfore a succesful return value does not\nmean the message has been actually put on the wire yet.\nNote that you will need to form a valid json reply yourself if you\nuse this method, and you will also need to retrieve a unique id for\nthe message via RtmClient.get_msg_uid()\nOnly valid after login.",13,null],[11,"send_message","","Allows sending a textual string message over the websocket connection,\nto the requested channel id. Ideal usage would be EG:\nextract the channel in on_receive and then send back a message to the channel.\nNote that this only passes the message over a channel to the\nMessaging task, and therfore a succesful return value does not\nmean the message has been actually put on the wire yet.\nThis method also handles getting a unique id and formatting the actual json\nsent.\nOnly valid after login.",13,null],[11,"login","","Logs in to slack. Call this before calling run.\nAlternatively use login_and_run",13,null],[11,"run","","Runs the message receive loop",13,null],[11,"login_and_run","","Runs the main loop for the client after logging in to slack,\nreturns an error if the process fails at an point, or an Ok(()) on succesful\nclose.\nTakes a EventHandler (implemented by the user) to call events handlers on.\nonce the first on_receive() or on_ping is called on the EventHandler, you\ncan soon the 'Only valid after login' methods are safe to use.\nSending is run in a thread in parallel while the receive loop runs on the main thread.\nBoth loops should end on return.\nSending should be thread safe as the messages are passed in via a channel in\nRtmClient.send and RtmClient.send_message",13,null],[11,"list_users","","Uses https://api.slack.com/methods/users.list to get a list of users",13,null],[11,"list_channels","","Uses https://api.slack.com/methods/channels.list to get a list of channels",13,null],[11,"list_groups","","Uses https://api.slack.com/methods/groups.list to get a list of groups",13,null],[11,"update_users","","Uses https://api.slack.com/methods/users.list to update users",13,null],[11,"update_channels","","Uses https://api.slack.com/methods/channels.list to update channels",13,null],[11,"update_groups","","Uses https://api.slack.com/methods/groups.list to update groups",13,null],[11,"post_message","","Wraps https://api.slack.com/methods/chat.postMessage\njson_payload can be a json formatted action or simple text that will be posted as a message.\nSee https://api.slack.com/docs/formatting",13,null],[11,"delete_message","","Wraps https://api.slack.com/methods/chat.delete to delete a message\nSee the slack api docs for timestamp formatting.",13,null],[11,"mark","","Wraps https://api.slack.com/methods/channels.mark to set the read cursor in a channel\nSee the slack api docs for timestamp formatting.",13,null],[11,"set_topic","","Wraps https://api.slack.com/methods/channels.setTopic\nif channel starts with a # then it will be looked up with get_channel_id\ntopic will be json escaped.",13,null],[11,"set_purpose","","Wraps https://api.slack.com/methods/channels.setPurpose\nif channel starts with a # then it will be looked up with get_channel_id\npurpose will be json escaped.",13,null],[11,"add_reaction_timestamp","","Wraps https://api.slack.com/methods/reactions.add to add an emoji reaction to a message\nif channel starts with a # then it will be looked up with get_channel_id",13,null],[11,"add_reaction_file","","Wraps https://api.slack.com/methods/reactions.add to add an emoji reaction to a file",13,null],[11,"add_reaction_file_comment","","Wraps https://api.slack.com/methods/reactions.add to add an emoji reaction to a file comment",13,null],[11,"update_message","","Wraps https://api.slack.com/methods/chat.update\njson_payload can be a json formatted action or simple text that will be posted as a message.\nSee https://api.slack.com/docs/formatting",13,null],[11,"im_open","","Wraps https://api.slack.com/methods/im.open to open a direct message channel with a user.",13,null],[11,"channels_history","","Wraps https://api.slack.com/methods/channels.history to retrieve the history of messages and\nevents from a channel.",13,null],[11,"im_close","","Wraps https://api.slack.com/methods/im.close to close a direct message channel.",13,null],[11,"im_history","","Wraps https://api.slack.com/methods/im.history to retrieve the history of messages and\nevents from a direct message channel.",13,null],[11,"im_list","","Wraps https://api.slack.com/methods/im.list to get the list of all open direct message\nchannels the user has open.",13,null],[11,"im_mark","","Wraps https://api.slack.com/methods/im.mark to move the read cursor in a direct message\nchannel.",13,null],[11,"decode","","",1,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"fmt","","",1,null],[11,"clone","","",1,null],[11,"decode","","",2,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"fmt","","",2,null],[11,"clone","","",2,null],[11,"decode","","",5,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"fmt","","",5,null],[11,"clone","","",5,null],[11,"decode","","",4,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"fmt","","",4,null],[11,"clone","","",4,null],[11,"decode","","",3,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"fmt","","",3,null],[11,"clone","","",3,null],[11,"encode","","",0,null],[11,"decode","","",0,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"fmt","","",0,null],[11,"clone","","",0,null],[11,"fmt","","",6,null],[11,"clone","","",6,null],[11,"decode","","",6,{"inputs":[{"name":"d"}],"output":{"name":"result"}}],[11,"text","","Create a new WebSocket message with text data",7,{"inputs":[{"name":"s"}],"output":{"name":"message"}}],[11,"binary","","Create a new WebSocket message with binary data",7,{"inputs":[{"name":"b"}],"output":{"name":"message"}}],[11,"close","","Create a new WebSocket message that signals the end of a WebSocket\nconnection, although messages can still be sent after sending this",7,{"inputs":[],"output":{"name":"message"}}],[11,"close_because","","Create a new WebSocket message that signals the end of a WebSocket\nconnection and provide a text reason and a status code for why.\nMessages can still be sent after sending this message.",7,{"inputs":[{"name":"u16"},{"name":"s"}],"output":{"name":"message"}}],[11,"ping","","Create a ping WebSocket message, a pong is usually sent back\nafter sending this with the same data",7,{"inputs":[{"name":"p"}],"output":{"name":"message"}}],[11,"pong","","Create a pong WebSocket message, usually a response to a\nping message",7,{"inputs":[{"name":"p"}],"output":{"name":"message"}}],[11,"into_pong","","Convert a ping message to a pong, keeping the data.\nThis will fail if the original message is not a ping.",7,null],[11,"fmt","","",7,null],[11,"clone","","",7,null],[11,"eq","","",7,null],[11,"ne","","",7,null],[11,"is_last","","",7,null],[11,"opcode","","",7,null],[11,"reserved","","",7,null],[11,"payload","","",7,null],[11,"size","","",7,null],[11,"write_payload","","",7,null],[11,"dataframes","","",7,null],[11,"from_dataframes","","Attempt to form a message from a series of data frames",7,{"inputs":[{"name":"vec"}],"output":{"name":"result"}}]],"paths":[[3,"Attachment"],[3,"Channel"],[3,"Group"],[3,"Im"],[3,"Team"],[3,"User"],[4,"Message"],[3,"WebSocketMessage"],[4,"Event"],[4,"WsMessage"],[4,"Error"],[8,"EventHandler"],[3,"Sender"],[3,"RtmClient"]]}; initSearch(searchIndex);