orengine-utils 3.1.0

This repository provides utilities for building high-performance applications.
Documentation
# orengine-utils


This repository provides utilities for building high-performance applications.

- **[`hints`]./src/hints.rs** — compiler hints that affect how code is emitted or optimized.
- **[`backoff`]./src/backoff.rs** — includes the [`Backoff`]./src/backoff.rs structure for 
   implementing retry/backoff strategies.
- **[`cache_padded`]./src/cache_padded.rs** — The [`cache_padded module`]./src/cache_padded.rs provides cache-padded
  atomics types and
  the [`CachePadded`]./src/cache_padded.rs wrapper.
- **[`light_arc`]./src/light_arc.rs** — provides the [`LightArc`]./src/light_arc.rs type, 
  a lightweight reference-counted smart pointer.
- **[`instant`]./src/instant.rs** — provides the [`OrengineInstant`]./src/instant.rs type for
  efficient time handling and compact time representation. It is unavalible with the `no_std` feature.
- **[`array_queue`]./src/array_queue.rs** — provides the [`ArrayQueue`]./src/array_queue.rs type, 
  an array-based queue implementation.
- **[`vec_queue`]./src/vec_queue.rs** — provides the [`VecQueue`]./src/vec_queue.rs type,
  a vector-based queue implementation.
- **[`numa`]./src/numa.rs** — provides sufficient utilities for working with NUMA nodes.
- **[`treap`]./src/treap.rs** — provides the [`Treap`]./src/treap.rs type, a randomized BST
  with subtree-augmented filtering for efficient filtered min/max queries.
- **[`cheap_random`]./src/cheap_random.rs** — provides fast non-cryptographic xorshift PRNGs
  for `u32` and `u64`, both stateful and thread-local. Thread-local variants are unavailable
  with the `no_std` feature.
- **[`config_macro`]./src/config_macro.rs** — provides the `config_target_pointer_width_64`, 
    `config_target_pointer_width_32`, and `config_target_pointer_width_16` macros, 
  which are used to right compile the program based on the target platform.
- **[`rw_serde`]./src/rw_serde** — provides the `Serializer` and `Deserializer` types, which are used to serialize and
  deserialize values directly to and from any type implementing
  [`std::io::Write`] and [`std::io::Read`].
- **[`small_string`]./src/small_string.rs** — provides the [`SmallString`]./src/small_string.rs type, a string type
  that can store small strings on the stack.
- **[`varint`]./src/varint.rs** — provides the [`Varint`]./src/varint.rs type, a variable-length integer encoding
  for efficient serialization.

# `no-std`


It provides the `no_std` feature, that makes it use `core` and `alloc` crates instead of `std`.
With this feature, this crate provides almost all the functionality. It excludes the `instant` module.