Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/third_party/rust/tinystr/src/   (Firefox Browser Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 3 kB image not shown  

Quelle  lib.rs

  Sprache: Rust
 

// This file is part of ICU4X. For terms of use, please see the file
// called LICENSE at the top level of the ICU4X source tree
// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).

//! `tinystr` is a utility crate of the [`ICU4X`] project.
//!
//! It includes [`TinyAsciiStr`], a core API for representing small ASCII-only bounded length strings.
//!
//! It is optimized for operations on strings of size 8 or smaller. When use cases involve comparison
//! and conversion of strings for lowercase/uppercase/titlecase, or checking
//! numeric/alphabetic/alphanumeric, `TinyAsciiStr` is the edge performance library.
//!
//! # Examples
//!
//! ```rust
//! use tinystr::TinyAsciiStr;
//!
//! let s1: TinyAsciiStr<4> = "tEsT".parse().expect("Failed to parse.");
//!
//! assert_eq!(s1, "tEsT");
//! assert_eq!(s1.to_ascii_uppercase(), "TEST");
//! assert_eq!(s1.to_ascii_lowercase(), "test");
//! assert_eq!(s1.to_ascii_titlecase(), "Test");
//! assert!(s1.is_ascii_alphanumeric());
//! assert!(!s1.is_ascii_numeric());
//!
//! let s2 = TinyAsciiStr::<8>::try_from_raw(*b"New York")
//!     .expect("Failed to parse.");
//!
//! assert_eq!(s2, "New York");
//! assert_eq!(s2.to_ascii_uppercase(), "NEW YORK");
//! assert_eq!(s2.to_ascii_lowercase(), "new york");
//! assert_eq!(s2.to_ascii_titlecase(), "New york");
//! assert!(!s2.is_ascii_alphanumeric());
//! ```
//!
//! # Details
//!
//! When strings are of size 8 or smaller, the struct transforms the strings as `u32`/`u64` and uses
//! bitmasking to provide basic string manipulation operations:
//! * `is_ascii_numeric`
//! * `is_ascii_alphabetic`
//! * `is_ascii_alphanumeric`
//! * `to_ascii_lowercase`
//! * `to_ascii_uppercase`
//! * `to_ascii_titlecase`
//! * `PartialEq`
//!
//! `TinyAsciiStr` will fall back to `u8` character manipulation for strings of length greater than 8.

//!
//! [`ICU4X`]: ../icu/index.html

// https://github.com/unicode-org/icu4x/blob/main/documents/process/boilerplate.md#library-annotations
#![cfg_attr(not(any(test, feature = "std")), no_std)]
#![cfg_attr(
    not(test),
    deny(
        clippy::indexing_slicing,
        clippy::unwrap_used,
        clippy::expect_used,
        clippy::panic,
        clippy::exhaustive_structs,
        clippy::exhaustive_enums,
        missing_debug_implementations,
    )
)]

mod macros;

mod ascii;
mod asciibyte;
mod error;
mod int_ops;
mod unvalidated;

#[cfg(feature = "serde")]
mod serde;

#[cfg(feature = "databake")]
mod databake;

#[cfg(feature = "zerovec")]
mod ule;

#[cfg(any(feature = "serde", feature = "alloc"))]
extern crate alloc;

pub use ascii::TinyAsciiStr;
pub use error::TinyStrError;
pub use unvalidated::UnvalidatedTinyAsciiStr;

/// These are temporary compatability reexports that will be removed
/// in a future version.
pub type TinyStr4 = TinyAsciiStr<4>;
/// These are temporary compatability reexports that will be removed
/// in a future version.
pub type TinyStr8 = TinyAsciiStr<8>;
/// These are temporary compatability reexports that will be removed
/// in a future version.
pub type TinyStr16 = TinyAsciiStr<16>;

#[test]
fn test_size() {
    assert_eq!(
        core::mem::size_of::<TinyStr4>(),
        core::mem::size_of::<Option<TinyStr4>>()
    );
    assert_eq!(
        core::mem::size_of::<TinyStr8>(),
        core::mem::size_of::<Option<TinyStr8>>()
    );
}
// /// Allows unit tests to use the macro
// #[cfg(test)]
// mod tinystr {
//     pub use super::{TinyAsciiStr, TinyStrError};
// }

Messung V0.5 in Prozent
C=82 H=99 G=90

¤ Dauer der Verarbeitung: 0.11 Sekunden  (vorverarbeitet am  2026-06-19) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.