Struct slack_blocks::blocks::section::build::SectionBuilder[][src]

pub struct SectionBuilder<'a, Text> { /* fields omitted */ }
Expand description

Build an Section block

Allows you to construct safely, with compile-time checks on required setter methods.

Required Methods

SectionBuilder::build() is only available if these methods have been called:

  • text or field(s), both may be called.

Example

use slack_blocks::{blocks::Section,
                   elems::Image,
                   text,
                   text::ToSlackPlaintext};

let block =
  Section::builder().text("foo".plaintext())
                    .field("bar".plaintext())
                    .field("baz".plaintext())
                    // alternatively:
                    .fields(vec!["bar".plaintext(),
                                 "baz".plaintext()]
                                 .into_iter()
                                 .map(text::Text::from)
                    )
                    .accessory(Image::builder().image_url("foo.png")
                                               .alt_text("pic of foo")
                                               .build())
                    .build();

Implementations

Create a new SectionBuilder

Set accessory (Optional)

Add text (Required: this or field(s))

The text for the block, in the form of a text object 🔗.

Maximum length for the text in this field is 3000 characters.

Set fields (Required: this or text)

A collection of text objects 🔗.

Any text objects included with fields will be rendered in a compact format that allows for 2 columns of side-by-side text.

Maximum number of items is 10.

Maximum length for the text in each item is 2000 characters.

Append a single field to fields.

This is supported on crate feature blox only.

XML macro children, appends fields to the Section.

To set text, use the text attribute.

use slack_blocks::{blocks::Section, blox::*, text, text::ToSlackPlaintext};

let xml = blox! {
  <section_block text={"Section".plaintext()}>
    <text kind=plain>"Foo"</text>
    <text kind=plain>"Bar"</text>
  </section_block>
};

let equiv = Section::builder().text("Section".plaintext())
                              .field("Foo".plaintext())
                              .field("Bar".plaintext())
                              .build();

assert_eq!(xml, equiv);

Set block_id (Optional)

A string acting as a unique identifier for a block.

You can use this block_id when you receive an interaction payload to identify the source of the action 🔗.

If not specified, a block_id will be generated.

Maximum length for this field is 255 characters.

All done building, now give me a darn actions block!

no method name 'build' found for struct 'SectionBuilder<...>'? Make sure all required setter methods have been called. See docs for SectionBuilder.

use slack_blocks::blocks::Section;

let foo = Section::builder().build(); // Won't compile!
use slack_blocks::{blocks::Section,
                   compose::text::ToSlackPlaintext,
                   elems::Image};

let block =
  Section::builder().text("foo".plaintext())
                    .accessory(Image::builder().image_url("foo.png")
                                               .alt_text("pic of foo")
                                               .build())
                    .build();

Trait Implementations

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

This is supported on crate feature blox only.

Identity function

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.