#string-interning #interning #string

g-str

una librería desarrollada en rust, que evita la duplicación de cadenas en tu codigo

3 unstable releases

0.2.0 Jul 14, 2024
0.1.1 Jul 12, 2024
0.1.0 Jul 12, 2024

#22 in #interning

38 downloads per month

GPL-3.0 license

17KB
196 lines

g-str

GStr es una librería diseñada para ser simple y rápida. Proporciona un internado de cadenas, lo que significa que su función es evitar la duplicación innecesaria de cadenas.

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

GStr ofrece una estructura y una Trait:

  • GStr: estructura que envuelve la cadena de manera segura y evita la duplicación de la cadena.

  • StringInfo: Es una Trait con el propósito principal de manejar valores de manera generalizada. Esto significa que proporciona métodos que la estructura GStr puede utilizar sin importar el tipo de valor que se le pase.

para mas información puedes buscar la documentación detallada en docs.rs/g-str/.


lib.rs:

La estructura GStr es una envoltura segura para cadenas que evita la duplicación de las mismas.

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

GStr ofrece metodos para:

  • Evitar la duplicación de cadenas: Al internar cadenas, se asegura de que cada cadena única se almacene solo una vez, evitando duplicaciones innecesarias.

  • Contar caracteres rápidamente: Proporciona una forma rápida de obtener el número de caracteres en una cadena.

  • Comparación eficiente: Permite comparar cadenas sin tener que recorrer cada carácter, utilizando referencias para una comparación más rápida.

  • Envoltorio seguro: Permite que una cadena esté presente en varias variables a la vez, utilizando un contador de referencias para gestionar la vida útil de la cadena. Esto asegura que la cadena se mantenga en memoria mientras sea necesaria y se elimine automáticamente cuando ya no se use.

GStr utiliza un contador de referencias para gestionar la vida útil de las cadenas (Similar a lo que hace la estructura Rc). Esto significa que cada vez que una nueva variable hace referencia a una cadena, el contador de referencias aumenta. Cuando una variable deja de usar la cadena, el contador disminuye.

No runtime deps