[][src]Struct slack_blocks::blocks::actions::Contents

pub struct Contents { /* fields omitted */ }

Actions Block

slack api docs 🔗

A block that is used to hold interactive elements 🔗

Implementations

impl Contents[src]

pub fn new() -> Self[src]

Create an empty Actions block (shorthand for Default::default())

Example

use slack_blocks::blocks::{Block, actions};

let actions = actions::Contents::new();
let block: Block = actions.into();
// < send block to slack's API >

pub fn with_block_id(self, block_id: impl ToString) -> Self[src]

Set the block_id for interactions on an existing actions::Contents

Arguments

  • block_id - 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.

Example

use slack_blocks::blocks::{Block, actions};

let actions = actions::Contents::new().with_block_id("tally_ho");
let block: Block = actions.into();
// < send block to slack's API >

pub fn from_elements(
    elements: impl IntoIterator<Item = BlockElement>
) -> Result<Self, ()>
[src]

Populate an Actions block with a collection of block_elements::BlockElements, which may not be supported by Actions blocks.

If you can create a collection of actions::BlockElement, either by creating them directly or invoking block_elements::BlockElement::into, use from_action_elements.

Arguments

  • elements - An array of interactive element objects 🔗 For a list of BlockElement types that are, see BlockElement. There is a maximum of 5 elements in each action block.

Errors

Errors if the block_elements::BlockElement is one that is not supported by Actions blocks.

For a list of BlockElement types that are, see BlockElement.

Runtime Validation

only validates that the block elements are compatible with Actions, for full runtime model validation see the validate method.

Example

use slack_blocks::blocks::{Block, actions};
use slack_blocks::compose;
use slack_blocks::block_elements;

let btn = block_elements::BlockElement::Button;
let actions = actions::Contents::from_elements(vec![btn])?;
let block: Block = actions.into();
// < send block to slack's API >

pub fn from_action_elements(
    elements: impl IntoIterator<Item = BlockElement>
) -> Self
[src]

Populate an Actions block with a collection of BlockElements that are supported by Actions blocks.

This also can be called via the From<Vec<self::BlockElement>> implementation.

If you have a collection of elements that may not be supported, see from_elements.

Arguments

  • elements - An array of interactive element objects 🔗 For a list of BlockElement types that are supported, see BlockElement. There is a maximum of 5 elements in each action block.

Errors

Errors if the block_elements::BlockElement is one that is not supported by Actions blocks.

Runtime Validation

only validates that the block elements are compatible with Actions, for full runtime model validation see the validate method.

Example

use slack_blocks::blocks::{Block, actions};
use slack_blocks::compose;
use slack_blocks::block_elements;

let btn = actions::BlockElement::Button;
let actions = actions::Contents::from_action_elements(vec![btn]);
let block: Block = actions.into();

// < send block to slack's API >

pub fn validate(&self) -> Result<(), ValidationErrors>[src]

Validate that this Section block agrees with Slack's model requirements

Errors

  • If with_block_id was called with a block id longer than 255 chars
  • If from_elements or from_action_elements was called with more than 5 elements.

Example

use slack_blocks::blocks;
use slack_blocks::compose;

let long_string = std::iter::repeat(' ').take(256).collect::<String>();

let block = blocks::actions
    ::Contents
    ::from_action_elements(vec![])
    .with_block_id(long_string);

assert_eq!(true, matches!(block.validate(), Err(_)));

Trait Implementations

impl Clone for Contents[src]

impl Debug for Contents[src]

impl Default for Contents[src]

impl<'de> Deserialize<'de> for Contents[src]

impl From<Contents> for Block[src]

impl From<Vec<BlockElement>> for Contents[src]

impl Hash for Contents[src]

impl PartialEq<Contents> for Contents[src]

impl Serialize for Contents[src]

impl StructuralPartialEq for Contents[src]

impl TryFrom<Vec<BlockElement>> for Contents[src]

type Error = ()

The type returned in the event of a conversion error.

impl Validate for Contents[src]

Auto Trait Implementations

Blanket Implementations

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

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

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

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

impl<T> From<T> for T[src]

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

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

type Owned = T

The resulting type after obtaining ownership.

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

type Error = Infallible

The type returned in the event of a conversion error.

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

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

The type returned in the event of a conversion error.