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
orfield(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
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.
pub fn fields<I>(self, fields: I) -> SectionBuilder<'a, Set<text>> where
I: IntoIterator<Item = Text>,
[src]
pub fn fields<I>(self, fields: I) -> SectionBuilder<'a, Set<text>> where
I: IntoIterator<Item = Text>,
[src]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.
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 forSectionBuilder
.
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
Auto Trait Implementations
impl<'a, Text> RefUnwindSafe for SectionBuilder<'a, Text> where
Text: RefUnwindSafe,
impl<'a, Text> Send for SectionBuilder<'a, Text> where
Text: Send,
impl<'a, Text> Sync for SectionBuilder<'a, Text> where
Text: Sync,
impl<'a, Text> Unpin for SectionBuilder<'a, Text> where
Text: Unpin,
impl<'a, Text> UnwindSafe for SectionBuilder<'a, Text> where
Text: UnwindSafe,