slack-rust 0.0.1-alpha

Slack API Client
Documentation
use crate::block::block_object::TextBlockObject;
use crate::block::blocks::{Block, BlockAction};
use serde::{Deserialize, Serialize};
use serde_with::skip_serializing_none;
use std::collections::HashMap;

#[skip_serializing_none]
#[derive(Deserialize, Serialize, Debug, Default, PartialEq)]
pub struct ViewState {
    pub values: HashMap<String, HashMap<String, BlockAction>>,
}

#[skip_serializing_none]
#[derive(Deserialize, Serialize, Debug, Default, PartialEq)]
pub struct View {
    pub id: Option<String>,
    pub team_id: Option<String>,
    #[serde(rename = "type")]
    pub type_filed: Option<ViewType>,
    pub blocks: Option<Vec<Block>>,
    pub private_metadata: Option<String>,
    pub callback_id: Option<String>,
    pub state: Option<ViewState>,
    pub title: Option<TextBlockObject>,
    pub close: Option<TextBlockObject>,
    pub submit: Option<TextBlockObject>,
    pub hash: Option<String>,
    pub clear_on_close: Option<bool>,
    pub notify_on_close: Option<bool>,
    pub root_view_id: Option<String>,
    pub previous_view_id: Option<String>,
    pub app_id: Option<String>,
    pub external_id: Option<String>,
    pub bot_id: Option<String>,
}

#[derive(Deserialize, Serialize, Debug, PartialEq)]
#[serde(rename_all = "snake_case")]
pub enum ViewType {
    Modal,
    Home,
}