#string-interning #string #interning #str

g-str

一个用Rust开发的库,可以避免在你的代码中重复字符串

3个不稳定版本

0.2.0 2024年7月14日
0.1.1 2024年7月12日
0.1.0 2024年7月12日

20#interning

Download history 279/week @ 2024-07-12 9/week @ 2024-07-19 4/week @ 2024-07-26

每月292 次下载

GPL-3.0 许可证

17KB
196

g-str

GStr是一个设计简单快速的库。它提供了一种 字符串内省,这意味着其功能是避免在代码中不必要的字符串重复。

	fn main() {
		let string1 = GStr::new("hola");
		let string2 = GStr::new("hola");
		println!("{string1} Jhon!");
		if string1 == string2{
			println!("Somos iguales");
		}
	}

GStr提供了一个结构和Trait

  • GStr: 一个封装字符串并防止字符串重复的结构。

  • StringInfo: 这是一个Trait,其主要目的是以通用方式处理值。这意味着它提供了方法,这些方法可以在不关心传递给结构的 值类型 的情况下由GStr结构使用。

更多信息,您可以在 docs.rs/g-str/ 查找详细的文档。


lib.rs:

GStr 结构是一个安全的字符串封装,可以防止字符串的重复。

use g_str::GStr;
fn main() {
    let cadena = GStr::new("hola");
}

GStr提供了以下方法

  • 防止字符串重复:通过内省字符串,确保每个唯一的字符串只存储一次,从而避免不必要的重复。

  • 快速计数字符:提供了一种快速获取字符串中字符数的方法。

  • 高效比较:允许比较字符串,而无需遍历每个字符,使用引用进行更快的比较。

  • 安全封装:允许字符串同时在多个变量中存在,使用引用计数器来管理字符串的生命周期。这确保了字符串在需要时保持在内存中,并在不再需要时自动删除。

GStr 使用一个 引用计数器 来管理字符串的生命周期(类似于Rc结构)。这意味着每次有新的变量引用字符串时,引用计数器会增加。当变量不再使用字符串时,引用计数器会减少。

无运行时依赖