11 个版本 (7 个重大变更)

0.8.0 2024 年 5 月 11 日
0.7.0 2024 年 3 月 16 日
0.6.0 2024 年 3 月 16 日
0.5.0 2024 年 3 月 16 日
0.1.3 2022 年 5 月 25 日

#393开发工具

Download history 851/week @ 2024-05-01 1626/week @ 2024-05-08 936/week @ 2024-05-15 564/week @ 2024-05-22 1383/week @ 2024-05-29 654/week @ 2024-06-05 426/week @ 2024-06-12 287/week @ 2024-06-19 385/week @ 2024-06-26 355/week @ 2024-07-03 353/week @ 2024-07-10 633/week @ 2024-07-17 503/week @ 2024-07-24 360/week @ 2024-07-31 399/week @ 2024-08-07 481/week @ 2024-08-14

每月 <1,896 下载
93 个 Crates 中使用(直接使用 2 个)

MIT 许可证

17KB
410

模块 :: for_each

experimental rust-status docs.rs Open in Gitpod discord

为列表中的每个元素应用宏。

$Callback 会为传递的列表中的每个元素调用,可选地通过第一个参数传递前缀 $Prefix 和作为最后一个参数传递后缀 $Postfix。宏可以以函数调用方式或映射调用方式调用。前缀和后缀只能以映射调用方式传递。在映射调用方式中,在传递宏路径后,使用关键字 where 和选项,格式为: @KEY Value

在某些情况下,可以不使用回调宏而生成相同的代码,只需使用前缀和后缀。这就是为什么 $Callback 也是可选的。要调用 for_each 而不使用回调,使用映射调用方式,省略回调路径和关键字 where

基本用例 :: 函数式调用

为列表中的每个元素应用宏。

for_each 可以以函数式方式或映射方式调用。将应用于元素的宏名称作为第一个参数传递,以及宏名称之后的元素。使用逗号作为分隔符。

use for_each::for_each;
for_each!( dbg, "a", "b", "c" );

// generates
dbg!( "a" );
dbg!( "b" );
dbg!( "c" );

基本用例 :: 映射式调用

for_each 可以以函数方式或映射方式调用。使用键 @Prefix @Postfix @Each 将选项作为映射的条目传递。选项 @Prefix 和 @Postfix 是可选的,它们的条目可以省略,但 @Each 条目是必需的。选项的顺序应该是 @Prefix, @Postfix, @Each。

use for_each::for_each;

for_each!
{
  dbg where
  @Prefix { "prefix".to_string() + }
  @Postfix { + "postfix" }
  @Each "a" "b" "c"
};

它生成

// generated
dbg!( "prefix".to_string() + "a" + "postfix" );
dbg!( "prefix".to_string() + "b" + "postfix" );
dbg!( "prefix".to_string() + "c" + "postfix" );

基本用法 :: 多于单个标记

前缀和后缀都必须是标记树(tt)。但如果你需要更复杂的内容,请将其放入花括号中 { ... }。宏 for_each 将移除最外层花括号。如果前缀/后缀是单个标记,则花括号是可选的。

use for_each::for_each;

for_each!
{
  dbg where
  @Prefix { "prefix".to_string() + }
  @Postfix { + "postfix" }
  @Each { "a" + "1" } { "b" + "2" } { "c" + "3" }
};

// generates
dbg!( "prefix".to_string() + "a" + "1" + "postfix" );
dbg!( "prefix".to_string() + "b" + "2" + "postfix" );
dbg!( "prefix".to_string() + "c" + "3" + "postfix" );

基本用法 :: 无回调

回调宏是可选的。使用映射调用方式,并通过关键字 where 省略回调宏的路径来调用 for_each 而不使用回调。

use for_each::for_each;
for_each!
{
  @Prefix { dbg! }
  @Each ( "a" ) ( "b" ) ( "c" )
};
// generates
dbg!( "a" );
dbg!( "b" );
dbg!( "c" );

添加到您的项目中

cargo add for_each

从存储库中试用

git clone https://github.com/Wandalen/wTools
cd wTools
cd examples/for_each_trivial
cargo run
>

无运行时依赖