#builder #jsx #xml #builder-pattern

mox

XML 的模拟:构建模式类似 JSX 的语法

5 个版本 (破坏性更新)

0.12.0 2021 年 2 月 2 日
0.11.0 2021 年 1 月 10 日
0.10.0 2020 年 7 月 7 日
0.2.0 2019 年 11 月 20 日
0.1.0 2018 年 11 月 10 日

#34#jsx


2 个crate中使用(通过 slack-blocks

MIT/Apache

16KB
261

mox

mox 实现了 mox! 宏:“XML 的模拟”。一个用于调用构建器的类似 JSX 的 Rust DSL。

[0.12.0] - 2021-02-01

变更

  • mox-impl 已停止发布,其内容已直接包含在此crate中。

移除

  • topo 的依赖。

[0.11.0] - 2021-01-10

新增

  • "属性初始化简写" 允许从本地作用域中同名绑定中提取属性

    let onclick = |_| { ... };
    mox!(<button onclick>"click me?"</button>)
    
  • 模块嵌套标签名: mox!(<krate::module::tag>"foo"</krate::module::tag>)

  • 属性支持不带花括号的单个表达式值: <button disabled=true/>

  • XML 注释: mox!(<div> <!-- COMMENT HERE --> </div>)

变更

  • mox! 调用现在由 syn-rsx crate 解析。
  • 非标签子元素将添加 .into_child() 到它们中。

[0.10.0] - 2020-07-06

移除

  • 支持在标签中使用 _=(...) 风格的函数调用。

新增

  • 实现现在在 mox-impl 包中进行,以便可以从 moxie 独立发布。

变更

  • 当用作属性时,会处理与 Rust 关键字冲突的情况。
  • 直接展开为构建方法,而不是使用宏调用来模拟它们。
  • 展开的构建器语法与拥有构建器和类型父/子绑定兼容。
  • 每个标签都包含在其自己的 topo::call(...) 中。

[0.2.0] - 2019-11-19

这个版本是与 moxie v0.2.0 同时进行完整重写的。

[0.1.0] - 2018-11-09

首次发布。

依赖项

~1.5MB
~36K SLoC