#string-literal #literals #pattern #macro #proc-macro #pattern-matching

无 std expand

宏,用于展开字节数组和字符串字面量

7 个版本

0.3.0 2023 年 3 月 18 日
0.2.1 2022 年 10 月 21 日
0.2.0 2020 年 11 月 6 日
0.1.3 2020 年 11 月 3 日
0.1.2 2020 年 10 月 25 日

#14#literal

Download history 114/week @ 2024-03-13 84/week @ 2024-03-20 79/week @ 2024-03-27 106/week @ 2024-04-03 74/week @ 2024-04-10 101/week @ 2024-04-17 113/week @ 2024-04-24 119/week @ 2024-05-01 87/week @ 2024-05-08 114/week @ 2024-05-15 99/week @ 2024-05-22 84/week @ 2024-05-29 94/week @ 2024-06-05 102/week @ 2024-06-12 111/week @ 2024-06-19 109/week @ 2024-06-26

434 每月下载量
用于 2 crates

MPL-2.0 许可证

9KB
74

expand

version deps license ci

宏,用于展开字节数组和字符串字面量

文档

使用说明

use expand::expand;

// expanding a byte string
assert_eq!(
    &expand!([@b"Hello,", b' ', @b"world", b'!']),
    b"Hello, world!"
);

// expanding a string
assert_eq!(
    expand!(vec![@"Hello,", ' ', @"world", '!']),
    "Hello, world!".chars().collect::<Vec<char>>(),
);

// pattern matching
if let expand!([@b"patt", x, y, b'n', ..]) = b"pattern matching" {
    assert_eq!(x, &b'e');
    assert_eq!(y, &b'r');
} else {
    panic!("pattern matching failed");
}

// more pattern matching
if let expand!([@b"msg = \"", xs @ .., b'"']) = br#"msg = "Hello, world!""# {
    assert_eq!(xs, b"Hello, world!");
} else {
    panic!("pattern matching failed");
}

变更日志

查看 CHANGELOG.md

依赖项

~310–770KB
~18K SLoC