pub struct FixedStringKey<const N: usize>(/* private fields */);Expand description
A fixed-size key based on a string, suitable for use in the StaticBTree.
It stores the string’s bytes in a fixed-size array [u8; N].
If the input string is shorter than N, it’s padded with null bytes (\0).
If the input string is longer than N, it’s truncated.
Comparison (Ord) is based on the byte array content.
Implementations§
Source§impl<const N: usize> FixedStringKey<N>
impl<const N: usize> FixedStringKey<N>
Sourcepub fn from_str(s: &str) -> Self
pub fn from_str(s: &str) -> Self
Creates a key from a string slice, padding with 0 bytes or truncating if necessary to fit exactly N bytes.
§Examples
let key_short = FixedStringKey::<10>::from_str("hello");
assert_eq!(key_short.to_string_lossy(), "hello");
let key_long = FixedStringKey::<3>::from_str("world");
assert_eq!(key_long.to_string_lossy(), "wor");
let key_exact = FixedStringKey::<5>::from_str("exact");
assert_eq!(key_exact.to_string_lossy(), "exact");Sourcepub fn to_string_lossy(&self) -> String
pub fn to_string_lossy(&self) -> String
Attempts to convert back to a String, stopping at the first null byte or using all N bytes if no null byte is found.
Note: This conversion is lossy if the original string contained null bytes before the Nth byte, or if it was truncated.
§Examples
let key1 = FixedStringKey::<10>::from_str("test");
assert_eq!(key1.to_string_lossy(), "test");
let key2 = FixedStringKey::<5>::from_str("example"); // truncated to "examp"
assert_eq!(key2.to_string_lossy(), "examp");
let s_with_null = "null\0xy"; // String containing null byte
let key3 = FixedStringKey::<8>::from_str(s_with_null);
assert_eq!(key3.to_string_lossy(), "null"); // Stops at null byteTrait Implementations§
Source§impl<const N: usize> Clone for FixedStringKey<N>
impl<const N: usize> Clone for FixedStringKey<N>
Source§fn clone(&self) -> FixedStringKey<N>
fn clone(&self) -> FixedStringKey<N>
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<const N: usize> Debug for FixedStringKey<N>
impl<const N: usize> Debug for FixedStringKey<N>
Source§impl<const N: usize> Default for FixedStringKey<N>
impl<const N: usize> Default for FixedStringKey<N>
Source§impl<const N: usize> Key for FixedStringKey<N>
impl<const N: usize> Key for FixedStringKey<N>
Source§const SERIALIZED_SIZE: usize = N
const SERIALIZED_SIZE: usize = N
The exact size of the key in bytes when serialized.
This is crucial for calculating node sizes and offsets.
Source§fn write_to<W: Write>(&self, writer: &mut W) -> Result<usize>
fn write_to<W: Write>(&self, writer: &mut W) -> Result<usize>
Serializes the key into the provided writer. Read more
Source§impl<const N: usize> Max for FixedStringKey<N>
impl<const N: usize> Max for FixedStringKey<N>
Source§impl<const N: usize> Min for FixedStringKey<N>
impl<const N: usize> Min for FixedStringKey<N>
Source§impl<const N: usize> Ord for FixedStringKey<N>
impl<const N: usize> Ord for FixedStringKey<N>
Source§fn cmp(&self, other: &FixedStringKey<N>) -> Ordering
fn cmp(&self, other: &FixedStringKey<N>) -> Ordering
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl<const N: usize> PartialEq for FixedStringKey<N>
impl<const N: usize> PartialEq for FixedStringKey<N>
Source§fn eq(&self, other: &FixedStringKey<N>) -> bool
fn eq(&self, other: &FixedStringKey<N>) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl<const N: usize> PartialOrd for FixedStringKey<N>
impl<const N: usize> PartialOrd for FixedStringKey<N>
impl<const N: usize> Eq for FixedStringKey<N>
impl<const N: usize> StructuralPartialEq for FixedStringKey<N>
Auto Trait Implementations§
impl<const N: usize> Freeze for FixedStringKey<N>
impl<const N: usize> RefUnwindSafe for FixedStringKey<N>
impl<const N: usize> Send for FixedStringKey<N>
impl<const N: usize> Sync for FixedStringKey<N>
impl<const N: usize> Unpin for FixedStringKey<N>
impl<const N: usize> UnsafeUnpin for FixedStringKey<N>
impl<const N: usize> UnwindSafe for FixedStringKey<N>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.