1#![cfg_attr(feature = "lender", doc = " [`lender::Lender`]: lender::Lender")]
24#![cfg_attr(
25 feature = "lending-iterator",
26 doc = " [`lending_iterator::LendingIterator`]: lending_iterator::LendingIterator",
27)]
28#![cfg_attr(
29 feature = "alloc",
30 doc = " [`MergingIter`]: merging_iter::MergingIter",
31)]
32#![cfg_attr(
33 feature = "alloc",
34 doc = " [`PooledIter`]: pooled_iter::PooledIter",
35)]
36#![cfg_attr(
37 feature = "std",
38 doc = " [`ThreadsafePooledIter`]: threadsafe_pooled_iter::ThreadsafePooledIter",
39)]
40#![cfg_attr(doc, doc = include_str!("../README.md"))]
45
46#![cfg_attr(
47 feature = "lending-iterator",
48 expect(
49 non_ascii_idents, clippy::disallowed_script_idents,
50 reason = "`gat` uses non-ascii character",
51 ),
52)]
53
54#![cfg_attr(docsrs, feature(doc_cfg))]
55
56#![no_std]
57
58#[cfg(feature = "alloc")]
59extern crate alloc;
60#[cfg(feature = "std")]
61extern crate std;
62
63mod comparator;
64mod cursor;
65mod pooled;
66mod seekable;
67mod seekable_iterators;
68
69mod lending_iterator_support;
70
71#[cfg(feature = "alloc")]
72mod merging_iter;
73#[cfg(feature = "anchored-pool")]
74mod pooled_iter;
75#[cfg(feature = "anchored-pool")]
76mod threadsafe_pooled_iter;
77
78#[cfg(test)]
79mod test_iter;
80
81#[cfg(feature = "lender")]
85mod lender_adapter;
86#[cfg(feature = "lending-iterator")]
87mod lending_iterator_adapter;
88
89
90pub use self::{
91 comparator::{Comparator, OrdComparator},
92 cursor::{CursorIterator, CursorLendingIterator, CursorPooledIterator},
93 lending_iterator_support::{ImplyBound, LendItem, LentItem},
94 pooled::{OutOfBuffers, PooledIterator},
95 seekable::{ItemToKey, Seekable},
96 seekable_iterators::{SeekableIterator, SeekableLendingIterator, SeekablePooledIterator},
97};
98
99#[cfg(feature = "lender")]
100#[cfg_attr(docsrs, doc(cfg(feature = "lender")))]
101pub use self::lender_adapter::{LenderAdapter, PooledLenderAdapter};
102#[cfg(feature = "lending-iterator")]
103#[cfg_attr(docsrs, doc(cfg(feature = "lending-iterator")))]
104pub use self::lending_iterator_adapter::{LendingIteratorAdapter, PooledLendingIteratorAdapter};
105
106#[cfg(feature = "alloc")]
107#[cfg_attr(docsrs, doc(cfg(feature = "alloc")))]
108pub use self::merging_iter::MergingIter;
109#[cfg(feature = "anchored-pool")]
110#[cfg_attr(docsrs, doc(cfg(feature = "anchored-pool")))]
111pub use self::{
112 pooled_iter::{PooledIter, PoolItem},
113 threadsafe_pooled_iter::{ThreadsafePooledIter, ThreadsafePoolItem},
114};