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 日 |
#1301 在 Rust 模式
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"] }