1#![no_std]
8
9extern crate self as fbl;
10
11mod array;
12mod canary;
13mod conditional_select_nospec;
14mod confine_array_index;
15mod doubly_linked_list;
16mod inline_array;
17mod opaque_ref_counted;
18mod packed_pointer;
19mod ptr_traits;
20mod recyclable;
21mod ref_counted;
22mod ref_ptr;
23mod ring_buffer;
24mod sentinel;
25mod singly_linked_list;
26mod size_tracker;
27mod slab_allocator;
28mod string_buffer;
29mod tag;
30mod unique_ptr;
31mod vector;
32mod wavl_tree;
33
34#[cfg(test)]
35mod intrusive_container_test_support;
36
37pub use array::Array;
38pub use canary::{Canary, magic};
39pub use conditional_select_nospec::{conditional_select_nospec_eq, conditional_select_nospec_lt};
40pub use confine_array_index::confine_array_index;
41pub use doubly_linked_list::{
42 DoublyLinkedList, DoublyLinkedListContainable, DoublyLinkedListNode, ForwardIterator, Iterator,
43 ReverseIterator, remove_from_container,
44};
45pub use fbl_macros::{
46 DoublyLinkedListContainable, Recyclable, SinglyLinkedListContainable, WavlTreeContainable,
47 ref_counted,
48};
49pub use inline_array::InlineArray;
50pub use opaque_ref_counted::OpaqueRefCounted;
51pub use packed_pointer::PackedPointer;
52pub use pin_init;
53pub use ptr_traits::{ManagedPtr, PtrTraits};
54pub use recyclable::{Recyclable, UninitRecyclable};
55pub use ref_counted::{HasRefCount, RefCounted};
56pub use ref_ptr::RefPtr;
57pub use ring_buffer::RingBuffer;
58pub use sentinel::*;
59pub use singly_linked_list::{SinglyLinkedList, SinglyLinkedListContainable, SinglyLinkedListNode};
60pub use size_tracker::{NonTrackingSize, SizeTracker, TrackingSize};
61pub use slab_allocator::{
62 DEFAULT_SLAB_ALLOCATOR_SLAB_SIZE, InstancedSlabAllocated, RawLock, SlabAllocator, SlabOrigin,
63 StaticSlabAllocated,
64};
65pub use string_buffer::StringBuffer;
66pub use tag::DefaultObjectTag;
67pub use unique_ptr::UniquePtr;
68pub use vector::Vector;
69pub use wavl_tree::{
70 Cursor, CursorMut, WavlTree, WavlTreeContainable, WavlTreeKeyable, WavlTreeNode,
71};