Crates.io | quetta |
lib.rs | quetta |
version | 0.1.0 |
source | src |
created_at | 2021-10-15 17:56:07.350092 |
updated_at | 2021-10-15 17:56:07.350092 |
description | Immutable, reference-counted strings for rust |
homepage | |
repository | https://github.com/SpacialCircumstances/quetta |
max_upload_size | |
id | 465598 |
size | 15,886 |
(from the Quenya word for "word") is a library providing simple
immutable strings in Rust.
Essentially, it is a wrapper around Arc<str>
, but with support for slicing and compatibility features
with &str
.
The primary type provided is quetta::Text
, which is either a owned string (immutable and refcounted atomically) or a slice into one.
Strings in Rust are relatively cumbersome to use (compared to high-level languages like Java, C#, OCaml etc.). For dealing with strings, there are two common choices:
Use an owned String
&str
or cause copyingUse a string slice &str
String
aroundquetta::Text
aims to make dealing with this easier, especially for applications like GUI apps and compilers that often have to deal and pass around text.
Add this to your Cargo.toml
:
[dependencies]
quetta = "0.1.0"
use quetta::Text;
let t: Text = Text::new("a.b.c");
let s1: Text = t.slice(0, 2);
assert_eq!("a.", s1.as_str());
For more examples, see the documentation or take a look at the code.