///|
/// A channel id bound to the REST client that operates on it.
pub struct ChannelRef {
priv client : Client
priv channel_id : @model.ChannelId
}
///|
/// A message id and its channel id bound to the REST client that operates on
/// it.
pub struct MessageRef {
priv client : Client
priv channel_id : @model.ChannelId
priv message_id : @model.MessageId
}
///|
/// A guild member identity bound to the REST client that operates on it.
pub struct MemberRef {
priv client : Client
priv guild_id : @model.GuildId
priv user_id : @model.UserId
}
///|
/// A user id bound to the REST client that operates on it.
pub struct UserRef {
priv client : Client
priv user_id : @model.UserId
}
///|
/// Bind a channel id to this client.
pub fn Client::channel_ref(
self : Client,
channel_id : @model.ChannelId,
) -> ChannelRef {
{ client: self, channel_id, }
}
///|
/// Bind a channel/message id pair to this client.
pub fn Client::message_ref(
self : Client,
channel_id : @model.ChannelId,
message_id : @model.MessageId,
) -> MessageRef {
{ client: self, channel_id, message_id, }
}
///|
/// Bind a guild/user id pair to this client.
pub fn Client::member_ref(
self : Client,
guild_id : @model.GuildId,
user_id : @model.UserId,
) -> MemberRef {
{ client: self, guild_id, user_id, }
}
///|
/// Bind a user id to this client.
pub fn Client::user_ref(self : Client, user_id : @model.UserId) -> UserRef {
{ client: self, user_id, }
}
///|
/// Derive a client-bound message handle from a message model.
pub fn Client::ref_of_message(
self : Client,
message : @model.Message,
) -> MessageRef {
self.message_ref(message.channel_id, message.id)
}