5 个版本

使用旧的 Rust 2015

0.2.1 2017 年 7 月 8 日
0.2.0 2017 年 7 月 8 日
0.1.2 2017 年 6 月 10 日
0.1.1 2017 年 6 月 9 日
0.1.0 2017 年 6 月 9 日

#1301Rust 模式

MIT/Apache 许可证

21KB
430

字符串连接

sconcat 包提供字符、字符串切片和拥有字符串的连接。

连接从 Cat 元素开始,可以使用 + 运算符连接任意数量的字符、字符串切片或字符串。连接可以转换为或附加到 String

如果连接包含至少一个拥有字符串,最左侧的拥有字符串将被调整大小以适应整个连接,结果将存储在这个字符串中。空间在开始时分配一次,因此最多只有一个实际分配。

此包是免费软件,根据您的选择,受Apache 许可证 2.0 版MIT 许可证的许可。

基本用法

此包的文档可用。该包提供一个常量 Cat,可用于启动连接表达式。然后可以将连接转换为或附加到 String。最终长度在开始时计算,以确保最多只有一个分配或重新分配。

示例

use sconcat::Cat;

let cat1 = Cat + "Hello, " + "world! " + '';
let s1 = String::from(cat1);
assert_eq!(s1, "Hello, world! ☺");

let mut s2 = String::from("Hello");
s2 += Cat + ',' + " world" + String::from("! ") + '';
assert_eq!(s2, "Hello, world! ☺");

let mut buf = String::from("Hello, ");
// 7 bytes for "world! " and 3 bytes for '☺'
buf.reserve(10);
let ptr = buf.as_ptr();
// buf is large enough, so no reallocations take place
let cat3 = Cat + buf + "world! " + '';
let s3 = String::from(cat3);
assert_eq!(s3, "Hello, world! ☺");
assert_eq!(s3.as_ptr(), ptr);

用法

要在您的包中使用 sconcat,请在包根目录中添加 extern crate sconcat;,并在 Cargo.toml 中将 sconcat 添加为依赖项。

[dependencies]
sconcat = "0.2"

可选功能

该包支持一个可选功能 fast_fmt,它添加对 fast_fmt 包的依赖。当启用此功能时,连接实现 fast_fmt::Fmt。要启用此功能,可以在 Cargo.toml 中添加依赖项:

[dependencies]
sconcat = { version = "0.2", features = ["fast_fmt"] }

依赖项