82 个版本 (24 个破坏性更新)
0.25.0 | 2021 年 6 月 5 日 |
---|---|
0.23.1 | 2021 年 6 月 2 日 |
0.9.12 | 2020 年 8 月 6 日 |
0.9.11 | 2020 年 7 月 26 日 |
#482 在 数据结构 中
每月 223 次下载
380KB
4.5K SLoC
slack-blocks
此包将 Slack 的优秀 Block Kit 🔗 带入 Rust 生态系统。
内部包含 Slack 所有布局块、块元素和组合对象的模型。每个结构都复制了 Slack 的 API 文档,以便您无需离开编辑器即可记住块套件 API 的详细信息。
每个模型都有构建器,利用 Rust 的类型系统帮助您提供所有必需的字段,因此您可以对自己的应用程序充满信心。
常见编译器错误的故障排除
未找到 方法 build 的 ...Builder
- 深入查看错误消息,您会找到类似 RequiredMethodNotCalled<method::foo>
的内容,这意味着您需要调用 .foo()
,然后才能调用 .build()
!
示例
使用 Slack 文档中的示例
{
"type": "section",
"text": {
"text": "*Sally* has requested you set the deadline for the Nano launch project",
"type": "mrkdwn"
},
"accessory": {
"type": "datepicker",
"action_id": "datepicker123",
"initial_date": "1990-04-28",
"placeholder": {
"type": "plain_text",
"text": "Select a date"
}
}
}
您可以使用原始构建器如下所示
use slack_blocks::{text::ToSlackMarkdown, blocks::Section, elems::DatePicker};
let section = Section::builder()
.text("*Sally* has requested you set the deadline for the Nano launch project".markdown())
.accessory(DatePicker::builder()
.action_id("datepicker123")
.initial_date((28, 4, 1990))
.placeholder("Select a date")
.build()
)
.build();
或启用 unstable
功能并使用 xml 宏
use slack_blocks::blox::*;
let pick_date = blox! {
<date_picker action_id="datepicker123"
placeholder="Select a date"
initial_date=(28, 4, 1990) />
};
let section = blox! {
<section_block accessory=pick_date>
<text kind=plain>"*Sally* has requested you set the deadline for the Nano launch project"</text>
</section_block>
};
许可协议
根据您的选择,许可协议为以下之一
- Apache 许可证 2.0 版 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
。
贡献
除非您明确声明,否则任何提交给作品以供包含的故意贡献,根据 Apache-2.0 许可证定义,均应按上述方式双许可,不附加任何额外条款或条件。
依赖项
~0.4–1.8MB
~40K SLoC