Short (up to 65,535 bytes) immutable strings to e.g. parse tokens, implemented in Rust. These are sometimes called "German Strings", because Germans have written the paper mentioning them
at main 39 lines 1.0 kB view raw
1// SPDX-FileCopyrightText: Copyright (C) 2024 Roland Csaszar 2// SPDX-License-Identifier: MPL-2.0 3// 4// Project: token-string 5// File: lib.rs 6// Date: 16.Nov.2024 7// ============================================================================= 8#![doc = include_str!("../README.md")] 9//! 10// This is needed for `cargo doc` to get the formatting right. 11//! --- 12//! The documentation of the string itself is at [`TokenString`]. 13//! 14//! To concatenate strings there is a [`Builder`] and the convenience macro 15//! [`crate::concat`]. 16 17#![no_std] 18#![cfg_attr(feature = "pattern", feature(doc_cfg))] 19#![cfg_attr(feature = "pattern", feature(pattern))] 20 21mod builder; 22mod error; 23mod string; 24mod string_ptr; 25 26// Exports. 27pub use builder::{Builder, BuilderIter, Collect, Concat}; 28pub use error::TkStrError; 29pub use string::{ 30 EMPTY, 31 MAX_LENGTH, 32 MAX_LENGTH_SMALL, 33 TokenString, 34 TokenStringIter, 35 TokenStringIterOwn, 36}; 37// Internal use 38pub(crate) use string::{MAX_LENGTH_SMALL_ADD1, PREFIX_LENGTH}; 39pub(crate) use string_ptr::StringPtr;