expand

Crates.ioexpand
lib.rsexpand
version0.3.0
sourcesrc
created_at2020-10-23 16:31:48.258163
updated_at2023-03-18 20:53:31.816105
descriptionMacro to expand byte string and string literals
homepagehttps://github.com/figsoda/expand
repositoryhttps://github.com/figsoda/expand
max_upload_size
id304731
size27,207
(figsoda)

documentation

https://docs.rs/expand

README

expand

version deps license ci

Macro to expand byte string and string literals

Documentation

Usage

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

See CHANGELOG.md

Commit count: 110

cargo fmt