[][src]Struct serenity::builder::CreateEmbed

pub struct CreateEmbed(pub VecMap<&'static str, Value>);

A builder to create a fake Embed object, for use with the ChannelId::send_message and ExecuteWebhook::embeds methods.

Examples

Refer to the documentation for ChannelId::send_message for a very in-depth example on how to use this.

Methods

impl CreateEmbed
[src]

Set the author of the embed.

Refer to the documentation for CreateEmbedAuthor for more information.

Set the colour of the left-hand side of the embed.

This is an alias of colour.

Set the colour of the left-hand side of the embed.

Set the description of the embed.

Note: This can't be longer than 2048 characters.

Set a field. Note that this will not overwrite other fields, and will add to them.

Note: Maximum amount of characters you can put is 256 in a field name and 1024 in a field value.

Adds multiple fields at once.

This is sugar to reduce the need of calling field manually multiple times.

Set the footer of the embed.

Refer to the documentation for CreateEmbedFooter for more information.

Set the image associated with the embed. This only supports HTTP(S).

Set the thumbnail of the embed. This only supports HTTP(S).

Set the timestamp.

You may pass a direct string:

  • 2017-01-03T23:00:00
  • 2004-06-08T16:04:23
  • 2004-06-08T16:04:23

This timestamp must be in ISO-8601 format. It must also be in UTC format.

You can also pass anything that implements chrono::TimeZone.

Examples

Passing a string timestamp:

use serenity::prelude::*;
use serenity::model::channel::Message;

struct Handler;

impl EventHandler for Handler {
    fn message(&self, _: Context, msg: Message) {
        if msg.content == "~embed" {
            let _ = msg.channel_id.send_message(|m| m
             .embed(|e| e
                    .title("hello")
                    .timestamp("2004-06-08T16:04:23")));
        }
    }
}

let mut client = Client::new("token", Handler).unwrap();

client.start().unwrap();

Creating a join-log:

Note: this example isn't efficient and is for demonstrative purposes.

use serenity::prelude::*;
use serenity::model::guild::Member;
use serenity::model::id::GuildId;

struct Handler;

impl EventHandler for Handler {
    fn guild_member_addition(&self, _: Context, guild_id: GuildId, member: Member) {
        use serenity::CACHE;
        let cache = CACHE.read();

        if let Some(guild) = cache.guild(guild_id) {
            let guild = guild.read();

            let channel_search = guild
                .channels
                .values()
                .find(|c| c.read().name == "join-log");

            if let Some(channel) = channel_search {
                let user = member.user.read();

                let _ = channel.read().send_message(|m| m
                    .embed(|e| {
                        let mut e = e
                            .author(|a| a.icon_url(&user.face()).name(&user.name))
                            .title("Member Join");

                        if let Some(ref joined_at) = member.joined_at {
                            e = e.timestamp(joined_at);
                        }

                        e
                    }));
            }
        }
    }
}

let mut client = Client::new("token", Handler).unwrap();

client.start().unwrap();

Set the title of the embed.

Set the URL to direct to when clicking on the title.

Same as calling image with "attachment://filename.(jpg, png)".

Note however, you have to be sure you set an attachment (with ChannelId::send_files) with the provided filename. Or else this won't work.

Trait Implementations

impl Default for CreateEmbed
[src]

Creates a builder with default values, setting the type to rich.

impl From<Embed> for CreateEmbed
[src]

Converts the fields of an embed into the values for a new embed builder.

Some values - such as Proxy URLs - are not preserved.

impl Clone for CreateEmbed
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl Debug for CreateEmbed
[src]

Formats the value using the given formatter. Read more

Auto Trait Implementations

impl Send for CreateEmbed

impl Sync for CreateEmbed

Blanket Implementations

impl<T, U> Into for T where
    U: From<T>, 
[src]

Performs the conversion.

impl<T> ToOwned for T where
    T: Clone
[src]

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

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

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

impl<T> From for T
[src]

Performs the conversion.

impl<T, U> TryFrom for T where
    T: From<U>, 
[src]

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

🔬 This is a nightly-only experimental API. (try_from)

Performs the conversion.

impl<T> Borrow for T where
    T: ?Sized
[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut for T where
    T: ?Sized
[src]

Mutably borrows from an owned value. Read more

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

🔬 This is a nightly-only experimental API. (try_from)

Performs the conversion.

impl<T> Any for T where
    T: 'static + ?Sized
[src]

🔬 This is a nightly-only experimental API. (get_type_id)

this method will likely be replaced by an associated static

Gets the TypeId of self. Read more

impl<T> Erased for T

impl<T> Typeable for T where
    T: Any

Get the TypeId of this object.

impl<T> DebugAny for T where
    T: Any + Debug
[src]

impl<T> CloneAny for T where
    T: Clone + Any
[src]

impl<T> UnsafeAny for T where
    T: Any