#string #performance #concat #size #tiny #improve #reusable

no-std nanokit

一系列小型、可重用实用方法,用于减少代码大小并提高性能

1 个不稳定版本

0.1.0 2024 年 4 月 5 日

#893Rust 模式

Download history 392/week @ 2024-04-05 33/week @ 2024-04-12 2/week @ 2024-05-17 1/week @ 2024-05-24 9/week @ 2024-06-07 75/week @ 2024-06-14 43/week @ 2024-06-21

每月 127 次下载

自定义许可协议

30KB
530

nanokit

Crates.io Docs.rs CI

关于

一系列小型、可重用实用方法,用于减少代码大小并提高性能。开发者和贡献者的 Readme 文件可在 README-DEV.MD 中找到。

字符串构建

快速拼接字符串的方法

use nanokit::string_concat::concat_2;
let base_msg = "Hello, ";
let text = "world!";
let result = concat_2(base_msg, text);
assert_eq!(result, "Hello, world!");

并且适用于实现了 AsRef<str> 的任何类型

use nanokit::string_concat::concat_2;
let base_string = String::from("The quick brown fox ");
let text_string = String::from("jumps over the lazy dog.");
let result = concat_2(base_string, text_string);
assert_eq!(result, "The quick brown fox jumps over the lazy dog.");

这与类似 concat_strsstring_concat 的库相似,但与将字符串推送到预先分配的 String 实例不同,我们而是不安全地创建一个新的 String 实例并调整其长度。

这可以节省大约 150 字节 的代码,在那些不使用字符串拼接(push_str 或 add)的代码库中。也节省了一些指令。

存在其他方法 concat_3concat_4concat_5

不安全拼接

如果您知道最终字符串长度小于 isize::MAX,则可以节省另一个拼接操作中的 2 条指令。

use nanokit::string_concat::concat_2;
let base_msg = "Hello, ";
let text = "world!";
let result = concat_2_no_overflow(base_msg, text);
assert_eq!(result, "Hello, world!");

功能

  • no-inline-concat:禁用字符串拼接函数的内联(节省代码大小)。

贡献

有关如何为此项目做出贡献的指南,请参阅 CONTRIBUTING

许可协议

nanokitReloaded 库套件的一部分。在 MIT 许可下发布。

如果您觉得这个库很有用,请回馈!

没有运行时依赖