pub struct Subsystem<H = BuildHasherDefault<Murmur3>> { /* private fields */ }
Expand description
Manages optimized string allocation.
See the module-level documentation for more.
Implementations
sourceimpl Subsystem<BuildHasherDefault<Murmur3>>
impl Subsystem<BuildHasherDefault<Murmur3>>
sourcepub fn new(
max_strings: usize,
parent_logger: &Logger<Arc<dyn SendSyncRefUnwindSafeDrain<Err = NeverStruct, Ok = ()> + 'static>>
) -> Subsystem<BuildHasherDefault<Murmur3>>
pub fn new(
max_strings: usize,
parent_logger: &Logger<Arc<dyn SendSyncRefUnwindSafeDrain<Err = NeverStruct, Ok = ()> + 'static>>
) -> Subsystem<BuildHasherDefault<Murmur3>>
Initialize the string subsystem with the specified capacity for unique strings.
Example
use astral::string;
let string_subsystem = string::Subsystem::new(64, &logger);
sourceimpl<H> Subsystem<H>where
H: BuildHasher,
impl<H> Subsystem<H>where
H: BuildHasher,
sourcepub fn with_hasher(
max_strings: usize,
parent_logger: &Logger<Arc<dyn SendSyncRefUnwindSafeDrain<Err = NeverStruct, Ok = ()> + 'static>>,
hasher: H
) -> Subsystem<H>
pub fn with_hasher(
max_strings: usize,
parent_logger: &Logger<Arc<dyn SendSyncRefUnwindSafeDrain<Err = NeverStruct, Ok = ()> + 'static>>,
hasher: H
) -> Subsystem<H>
Initialize the string subsystem with the specified capacity for unique strings, and a hasher.
Example
use std::hash::BuildHasherDefault;
use astral::{
util::hash::Murmur3,
string::{self, Text},
};
let hasher = BuildHasherDefault::<Murmur3>::default();
let string_subsystem = string::Subsystem::with_hasher(64, &logger, hasher);
let text = Text::new("foo", &string_subsystem);
assert_eq!(text, "foo");
sourceimpl<H> Subsystem<H>
impl<H> Subsystem<H>
sourcepub fn used_memory(&self) -> usize
pub fn used_memory(&self) -> usize
Returns the used memory.
Requires the track-strings
feature to be enabled.
sourcepub fn allocations(&self) -> usize
pub fn allocations(&self) -> usize
Returns the used memory chunks.
Requires the track-strings
feature to be enabled.
sourcepub fn strings_allocated(&self) -> usize
pub fn strings_allocated(&self) -> usize
Returns the number of unique allocated strings.
Requires the track-strings
feature to be enabled.
sourcepub fn average_string_length(&self) -> usize
pub fn average_string_length(&self) -> usize
Returns the average string length.
Requires the track-strings
feature to be enabled.
sourcepub fn logger(
&self
) -> &Logger<Arc<dyn SendSyncRefUnwindSafeDrain<Err = NeverStruct, Ok = ()> + 'static>>
pub fn logger(
&self
) -> &Logger<Arc<dyn SendSyncRefUnwindSafeDrain<Err = NeverStruct, Ok = ()> + 'static>>
Returns the logger of this string subsystem.
Example
use astral::thirdparty::slog::info;
use astral::string;
let string_subsystem = string::Subsystem::new(64, &logger);
info!(string_subsystem.logger(), "foo bar"; "additional" => "information");
Trait Implementations
impl<H> Send for Subsystem<H>
impl<H> Sync for Subsystem<H>
Auto Trait Implementations
impl<H = BuildHasherDefault<Murmur3>> !RefUnwindSafe for Subsystem<H>
impl<H> Unpin for Subsystem<H>where
H: Unpin,
impl<H> UnwindSafe for Subsystem<H>where
H: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more