Struct serenity::builder::ExecuteWebhook [] [src]

pub struct ExecuteWebhook(pub Map<String, Value>);

A builder to create the inner content of a Webhook's execution.

This is a structured way of cleanly creating the inner execution payload, to reduce potential argument counts.

Refer to the documentation for execute_webhook on restrictions with execution payloads and its fields.

Examples

Creating two embeds, and then sending them as part of the delivery payload of Webhook::execute:

use serenity::http;
use serenity::model::Embed;
use serenity::utils::Colour;

let id = 245037420704169985;
let token = "ig5AO-wdVWpCBtUUMxmgsWryqgsW3DChbKYOINftJ4DCrUbnkedoYZD0VOH1QLr-S3sV";

let webhook = http::get_webhook_with_token(id, token)
    .expect("valid webhook");

let website = Embed::fake(|e| e
    .title("The Rust Language Website")
    .description("Rust is a systems programming language.")
    .colour(Colour::from_rgb(222, 165, 132)));

let resources = Embed::fake(|e| e
    .title("Rust Resources")
    .description("A few resources to help with learning Rust")
    .colour(0xDEA584)
    .field(|f| f
        .inline(false)
        .name("The Rust Book")
        .value("A comprehensive resource for all topics related to Rust"))
    .field(|f| f
        .inline(false)
        .name("Rust by Example")
        .value("A collection of Rust examples on topics, useable in-browser")));

let _ = webhook.execute(false, |w| w
    .content("Here's some information on Rust:")
    .embeds(vec![website, resources]));

Methods

impl ExecuteWebhook
[src]

Override the default avatar of the webhook with an image URL.

Examples

Overriding the default avatar:

let avatar_url = "https://i.imgur.com/KTs6whd.jpg";

let _ = webhook.execute(false, |w| w
    .avatar_url(avatar_url)
    .content("Here's a webhook"));

Set the content of the message.

Note that when setting at least one embed via embeds, this may be omitted.

Examples

Sending a webhook with a content of "foo":

if let Err(why) = webhook.execute(false, |w| w.content("foo")) {
    println!("Err sending webhook: {:?}", why);
}

Set the embeds associated with the message.

This should be used in combination with Embed::fake, creating one or more fake embeds to send to the API.

Examples

Refer to the struct-level documentation for an example on how to use embeds.

Whether the message is a text-to-speech message.

Examples

Sending a webhook with text-to-speech enabled:

if let Err(why) = webhook.execute(false, |w| w.content("hello").tts(true)) {
    println!("Err sending webhook: {:?}", why);
}

Override the default username of the webhook.

Examples

Overriuding the username to "hakase":

if let Err(why) = webhook.execute(false, |w| w.content("hello").username("hakase")) {
    println!("Err sending webhook: {:?}", why);
}

Trait Implementations

impl Clone for ExecuteWebhook
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl Debug for ExecuteWebhook
[src]

Formats the value using the given formatter.

impl Default for ExecuteWebhook
[src]

Returns a default set of values for a Webhook execution.

The only default value is tts being set to false.

Examples

Creating an ExecuteWebhook builder:

use serenity::utils::builder::ExecuteWebhook;

let executer = ExecuteWebhook::default();