3 个版本
0.1.2 | 2024 年 8 月 6 日 |
---|---|
0.1.1 | 2024 年 8 月 6 日 |
0.1.0 | 2024 年 8 月 6 日 |
#426 在 Rust 模式
301 每月下载量
13KB
71 代码行
__| __|
| \__ \
_)_| ____/ //~\
// ~~\\
_ /─── ~~ \\
/ \ ─── ~~ ~~\
/ ~~\\ / ~~~ \
// ~~\\\ ~\ / ~~~ ~~\\
// ~~~ \~─~──── ~~ ~~~~~
~──// ~~~
───────╮ ~~~~ ~ ~ ~ ~~~~~~~ ~~~~~~~~~~~~~
# # │╮ ~~~~~~~~~~~~│ '│╭──── ╭─ ╭^^^^^^^^^
│╯ │` │ ╰╮───╯ ╭──╯ │ @ @ @ @
# #╭╮│╮ ╭╯ │ ╭───╯ ╭───┼─────────
╭─╰╯──^^╮ │` │. │──╯ │
╭─╰───────╯^╮───────│ │ '│ ╭─│ # # # #
────────╮@ @ │──╮ │ ..│ ╰─│
│ │ ╰───╭╯ ╭╯ │
# # # #│@ @ │ │ ╰─╮ '│ ╭─│ # # # #
│────╯ '│` │ . ╰╮ │ ╰─│
# # # #│ │ │ │ │
│ ╭╯ . ╰╮ ╭─│ # # # #
# # # #│ '│` ╭──╯ . ╰╮ ╰─│
│ │ │ . │ │
概述
yerevan.rs 是一个计算表达式(do-notations)库,为 Rust 提供支持,灵感来自 F# 的 CEs,但在语法设计方面有所变化和改进。
文档
首先定义一个结构体,该结构体实现了 yerevan.rs 计算表达式所需的所有必要函数。例如:
yer! {
MyOption =>
let! ...
let ...
ret ...
}
yer! 表达式 | 描述 |
---|---|
$your_struct => |
将结构体定义为计算表达式函数的提供者。 |
let! $your_var = $your_expression |
使用在宏中定义的最后结构体作为 bind 函数的提供者,并调用 $that_struct::bind($your_expression, &|$your_var| { 下一个代码 }) 表达式。 |
$your_var |
定义变量 $your_var |
do! $your_expression |
使用在宏中定义的最后结构体作为 bind 函数的提供者,并调用 $that_struct::bind($your_expression, &|_| { 下一个代码 }) 表达式。 |
do $your_expression |
简单地运行 $your_expression |
ret! $your_expression |
使用在宏中定义的最后结构体作为 ret_from 函数的提供者,并调用 $that_struct::ret_from($your_expression) 表达式。 |
ret $your_expression |
使用在宏中最后定义的结构体作为 ret 函数的提供者,并调用 $that_struct::ret($your_expression) 表达式。 |
yield $your_expression |
使用在宏中最后定义的结构体作为 combine 和 ret_yield 函数的提供者,并调用 $that_struct::combine(yer!($that_struct => 下一段代码, $that_struct::ret_yield($your_expression)) 表达式。 |
示例
即将...