1#![no_std]
8
9extern crate self as fbl;
10
11mod array;
12mod bits;
13mod canary;
14mod conditional_select_nospec;
15mod confine_array_index;
16mod doubly_linked_list;
17mod hash_table;
18mod inline_array;
19#[cfg(feature = "kernel")]
20mod name;
21mod opaque_ref_counted;
22mod packed_pointer;
23mod ptr_traits;
24mod recyclable;
25mod ref_counted;
26mod ref_ptr;
27mod ring_buffer;
28mod sentinel;
29mod singly_linked_list;
30mod size_tracker;
31mod slab_allocator;
32mod string_buffer;
33mod tag;
34mod unique_ptr;
35mod vector;
36mod wavl_tree;
37
38#[cfg(test)]
39mod intrusive_container_test_support;
40
41pub use array::Array;
42pub use bits::{BitsSource, BitsTarget, extract_bit, extract_bits};
43pub use canary::{Canary, magic};
44pub use conditional_select_nospec::{conditional_select_nospec_eq, conditional_select_nospec_lt};
45pub use confine_array_index::confine_array_index;
46pub use doubly_linked_list::{
47 DoublyLinkedList, DoublyLinkedListContainable, DoublyLinkedListNode, ForwardIterator,
48 ForwardIteratorMut, Iterator, IteratorMut, ReverseIterator, ReverseIteratorMut,
49 remove_from_container,
50};
51pub use fbl_macros::{
52 DoublyLinkedListContainable, Recyclable, SinglyLinkedListContainable, WavlTreeContainable,
53 ref_counted,
54};
55pub use hash_table::{
56 DefaultHashTraits, DefaultHashable, HashTable, HashTableBucket, HashTableCursorMut,
57 HashTableInsertOrFindResult, HashTableIter, HashTableKeyable, HashTraits,
58};
59pub use inline_array::InlineArray;
60#[cfg(feature = "kernel")]
61pub use name::Name;
62pub use opaque_ref_counted::{IsOpaqueRefCounted, OpaqueRefCounted, OpaqueRefCountedFacade};
63pub use packed_pointer::PackedPointer;
64pub use pin_init;
65pub use ptr_traits::{ManagedPtr, MutPtr, PtrTraits};
66pub use recyclable::{Recyclable, UninitRecyclable};
67pub use ref_counted::{HasRefCount, HasRefCountUpgradeable, RefCounted};
68pub use ref_ptr::RefPtr;
69pub use ring_buffer::RingBuffer;
70pub use sentinel::*;
71pub use singly_linked_list::{SinglyLinkedList, SinglyLinkedListContainable, SinglyLinkedListNode};
72pub use size_tracker::{NonTrackingSize, SizeTracker, TrackingSize};
73pub use slab_allocator::{
74 DEFAULT_SLAB_ALLOCATOR_SLAB_SIZE, InstancedSlabAllocated, IsRawMutex, RawLock, SlabAllocator,
75 SlabOrigin, StaticSlabAllocated,
76};
77pub use string_buffer::StringBuffer;
78pub use tag::DefaultObjectTag;
79pub use unique_ptr::UniquePtr;
80pub use vector::Vector;
81pub use wavl_tree::{
82 Cursor, CursorMut, WavlTree, WavlTreeAugmentedInvariantObserver,
83 WavlTreeAugmentedInvariantObserverTraits, WavlTreeContainable, WavlTreeKeyable, WavlTreeNode,
84 WavlTreeObserver,
85};
86
87#[doc(hidden)]
88pub use zr::OpaqueFacade;
89#[doc(hidden)]
90pub use zr::static_assert as __static_assert;