#string #concat #push

concat-in-place

字符串和向量拼接的高效宏

2 个稳定版本

1.1.0 2022年2月27日
1.0.0 2020年1月27日

#666Rust 模式

Download history 936/week @ 2024-04-20 1565/week @ 2024-04-27 1555/week @ 2024-05-04 1257/week @ 2024-05-11 1069/week @ 2024-05-18 722/week @ 2024-05-25 808/week @ 2024-06-01 622/week @ 2024-06-08 507/week @ 2024-06-15 532/week @ 2024-06-22 596/week @ 2024-06-29 889/week @ 2024-07-06 752/week @ 2024-07-13 715/week @ 2024-07-20 707/week @ 2024-07-27 1349/week @ 2024-08-03

每月3,662 次下载

MIT/Apache

8KB
68

concat-in-place

Crates.io Docs.rs

提供字符串和向量的有效拼接

这些宏的目标是在拼接字符串缓冲区和向量时减少所需的分配量;通过一个宏使其实际实现变得简单。

实现说明

  • 调用者必须提供一个用于附加切片的缓冲区
  • 缓冲区的大小调整为适应所有切片的总长度

字符串拼接

将任意数量的字符串切片附加到字符串缓冲区

use concat_in_place::strcat;

let domain = "domain.com";
let endpoint = "inventory/parts";
let id = "10512";

let mut url = String::new();
let slice = strcat!(&mut url, domain "/" endpoint "/" id);
assert_eq!(slice, "domain.com/inventory/parts/10512");

实现说明

技术上与具有以下方法的任何字符串类型兼容

  • capacity
  • len
  • push_str

向量拼接

将任意数量的切片附加到向量

use concat_in_place::veccat;

let domain = b"domain.com";
let endpoint = b"inventory/parts";
let id = b"10512";

let mut url = Vec::new();
let slice = veccat!(&mut url, domain b"/" endpoint b"/" id);
assert_eq!(slice, b"domain.com/inventory/parts/10512");

实现说明

技术上与具有以下方法的任何类型兼容

  • capacity
  • len
  • reserve
  • extend_from_slice

无运行时依赖项