Struct serenity::model::invite::Invite

source ·
#[non_exhaustive]
pub struct Invite { pub approximate_member_count: Option<u64>, pub approximate_presence_count: Option<u64>, pub code: String, pub channel: InviteChannel, pub guild: Option<InviteGuild>, pub inviter: Option<User>, pub target_type: Option<InviteTargetType>, pub target_user: Option<UserId>, pub target_application: Option<ApplicationId>, pub expires_at: Option<Timestamp>, pub stage_instance: Option<InviteStageInstance>, pub scheduled_event: Option<ScheduledEvent>, }
Expand description

Information about an invite code.

Information can not be accessed for guilds the current user is banned from.

Discord docs.

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§approximate_member_count: Option<u64>

The approximate number of Members in the related Guild.

§approximate_presence_count: Option<u64>

The approximate number of Members with an active session in the related Guild.

An active session is defined as an open, heartbeating WebSocket connection. These include invisible members.

§code: String

The unique code for the invite.

§channel: InviteChannel

A representation of the minimal amount of information needed about the GuildChannel being invited to.

§guild: Option<InviteGuild>

A representation of the minimal amount of information needed about the Guild being invited to.

§inviter: Option<User>

A representation of the minimal amount of information needed about the User that created the invite.

This can be None for invites created by Discord such as invite-widgets or vanity invite links.

§target_type: Option<InviteTargetType>

The type of target for this voice channel invite.

§target_user: Option<UserId>

The user whose stream to display for this voice channel stream invite.

Only shows up if target_type is Stream.

§target_application: Option<ApplicationId>

The embedded application to open for this voice channel embedded application invite.

Only shows up if target_type is EmmbeddedApplication.

§expires_at: Option<Timestamp>

The expiration date of this invite, returned from Http::get_invite when with_expiration is true.

§stage_instance: Option<InviteStageInstance>

The Stage instance data if there is a public Stage instance in the Stage channel this invite is for.

§scheduled_event: Option<ScheduledEvent>

Guild scheduled event data, only included if guild_scheduled_event_id contains a valid guild scheduled event id (according to Discord docs, whatever that means).

Implementations§

source§

impl Invite

source

pub async fn create( cache_http: impl CacheHttp, channel_id: impl Into<ChannelId>, builder: CreateInvite<'_> ) -> Result<RichInvite>

Available on crate feature model only.

Creates an invite for the given channel.

Note: Requires the Create Instant Invite permission.

§Errors

If the cache is enabled, returns ModelError::InvalidPermissions if the current user lacks permission. Otherwise returns Error::Http, as well as if invalid data is given.

source

pub async fn delete(&self, cache_http: impl CacheHttp) -> Result<Invite>

Available on crate feature model only.

Deletes the invite.

Note: Requires the Manage Guild permission.

§Errors

If the cache is enabled, returns a ModelError::InvalidPermissions if the current user does not have the required permission.

Otherwise may return Error::Http if permissions are lacking, or if the invite is invalid.

source

pub async fn get( http: impl AsRef<Http>, code: &str, member_counts: bool, expiration: bool, event_id: Option<ScheduledEventId> ) -> Result<Invite>

Available on crate feature model only.

Gets information about an invite.

§Arguments
  • code - The invite code.
  • member_counts - Whether to include information about the current number of members in the server that the invite belongs to.
  • expiration - Whether to include information about when the invite expires.
  • event_id - An optional server event ID to include with the invite.

More information about these arguments can be found on Discord’s API documentation.

§Errors

May return an Error::Http if the invite is invalid. Can also return an Error::Json if there is an error deserializing the API response.

source

pub fn url(&self) -> String

Available on crate feature model only.

Returns a URL to use for the invite.

§Examples

Retrieve the URL for an invite with the code WxZumR:

assert_eq!(invite.url(), "https://discord.gg/WxZumR");

Trait Implementations§

source§

impl Clone for Invite

source§

fn clone(&self) -> Invite

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Invite

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Invite

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Serialize for Invite

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneDebuggableStorage for T

source§

impl<T> CloneableStorage for T
where T: Any + Send + Sync + Clone,

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

impl<T> DebuggableStorage for T
where T: Any + Send + Sync + Debug,

source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,