Skip to main content

Crate nexus_ascii

Crate nexus_ascii 

Source
Expand description

Fixed-capacity ASCII strings for high-performance systems.

This crate provides stack-allocated, fixed-capacity ASCII string types optimized for trading systems and other latency-sensitive applications.

§no_std Support

This crate is no_std compatible by default. Enable the std feature for Error trait implementations.

§Design Principles

  • Immutable: Strings are immutable after creation. Hash is computed once.
  • Copy: All string types are Copy. Use newtypes for move semantics.
  • Performance: Single 64-bit comparison for equality fast path.
  • Full ASCII: Supports 0x01-0x7F (null is structural, not content). Use AsciiText for printable-only.

§Example

use nexus_ascii::{AsciiString, AsciiError};

// Construction
let s: AsciiString<32> = AsciiString::try_from("BTC-USD")?;

// Equality is fast (header comparison first)
let s2: AsciiString<32> = AsciiString::try_from("BTC-USD")?;
assert_eq!(s, s2);

// Access underlying data
assert_eq!(s.as_str(), "BTC-USD");
assert_eq!(s.len(), 7);

Modules§

hash
Hash function for AsciiString.
simd
SIMD-accelerated validation functions.

Structs§

AsciiChar
A single ASCII character (0x00-0x7F).
AsciiStr
A borrowed slice of validated ASCII bytes.
AsciiString
A fixed-capacity, immutable ASCII string.
AsciiStringBuilder
A mutable builder for constructing AsciiString values.
AsciiText
A fixed-capacity ASCII string containing only printable characters.
AsciiTextStr
A borrowed slice of validated printable ASCII bytes.
FlatAsciiString
A fixed-capacity, null-terminated ASCII byte buffer.
FlatAsciiText
A fixed-capacity flat ASCII buffer containing only printable characters.
IntegerTooLarge
Error returned when an integer is too large to fit in the target capacity.
InvalidAsciiChar
Error when creating an AsciiChar from an invalid value.

Enums§

AsciiError
Errors that can occur when constructing ASCII types.

Type Aliases§

AsciiString8
8-byte capacity ASCII string.
AsciiString16
16-byte capacity ASCII string.
AsciiString32
32-byte capacity ASCII string.
AsciiString64
64-byte capacity ASCII string.
AsciiString128
128-byte capacity ASCII string.
AsciiString256
256-byte capacity ASCII string.
AsciiStringBuilder8
8-byte capacity ASCII string builder.
AsciiStringBuilder16
16-byte capacity ASCII string builder.
AsciiStringBuilder32
32-byte capacity ASCII string builder.
AsciiStringBuilder64
64-byte capacity ASCII string builder.
AsciiStringBuilder128
128-byte capacity ASCII string builder.
AsciiText8
8-byte capacity printable ASCII text.
AsciiText16
16-byte capacity printable ASCII text.
AsciiText32
32-byte capacity printable ASCII text.
AsciiText64
64-byte capacity printable ASCII text.
AsciiText128
128-byte capacity printable ASCII text.
FlatAsciiString8
8-byte capacity flat ASCII string.
FlatAsciiString16
16-byte capacity flat ASCII string.
FlatAsciiString32
32-byte capacity flat ASCII string.
FlatAsciiString64
64-byte capacity flat ASCII string.
FlatAsciiString128
128-byte capacity flat ASCII string.
FlatAsciiString256
256-byte capacity flat ASCII string.
FlatAsciiText8
8-byte capacity flat printable ASCII text.
FlatAsciiText16
16-byte capacity flat printable ASCII text.
FlatAsciiText32
32-byte capacity flat printable ASCII text.
FlatAsciiText64
64-byte capacity flat printable ASCII text.
FlatAsciiText128
128-byte capacity flat printable ASCII text.