#![no_std]
#![recursion_limit = "2048"]
#![allow(internal_features)]
#![allow(incomplete_features)]
#![forbid(unsafe_op_in_unsafe_fn)]
#![feature(core_intrinsics)]
#![feature(generic_const_exprs)]
#![doc = include_str!("../README.md")]
#[cfg(test)]
extern crate std;
pub mod btree;
pub mod fixedvec;
pub mod hashmap;
pub mod pivot;
pub mod queue;
pub mod ring;
pub mod stack;
pub use btree::BTree;
pub use fixedvec::FixedVec;
pub use hashmap::HashMap;
pub use pivot::{Pivot, PivotBuffer};
pub use queue::Queue;
pub use ring::RingBuffer;
pub use stack::Stack;
#[macro_export]
macro_rules! fixedvec {
($($x:expr),*) => {{
let mut fv = $crate::FixedVec::new();
$(
let _ = fv.push($x);
)*
fv
}};
($elem:expr; $n:expr) => {{
let mut fv = $crate::FixedVec::new();
for _ in 0..$n {
let _ = fv.push($elem);
}
fv
}};
}
#[macro_export]
macro_rules! hashmap {
{} => {{
$crate::HashMap::new()
}};
{ $($key:expr => $value:expr),* $(,)? } => {{
let mut map = $crate::HashMap::new();
$(
let _ = map.insert($key, $value);
)*
map
}};
}
#[macro_export]
macro_rules! unlikely {
($cond:expr) => {
core::intrinsics::unlikely($cond)
};
}
#[macro_export]
macro_rules! likely {
($cond:expr) => {
core::intrinsics::likely($cond)
};
}