diff --git a/src/encodings.rs b/src/encodings.rs index 3cd69e35..cffac57f 100644 --- a/src/encodings.rs +++ b/src/encodings.rs @@ -60,6 +60,7 @@ mod nodedbimpl; // Module defined inline to be able to dynamically change visibility // (non-inline modules in proc macro input are unstable) #[cfg_attr(feature = "internals", visibility::make(pub))] +#[cfg_attr(docsrs, doc(cfg(feature = "internals")))] mod nodedb { //! # Node Database Functionality For Universal Tree-Like Encodings //! diff --git a/src/encodings/card/dbtotalizer.rs b/src/encodings/card/dbtotalizer.rs index fd705bdc..70bcffec 100644 --- a/src/encodings/card/dbtotalizer.rs +++ b/src/encodings/card/dbtotalizer.rs @@ -598,6 +598,7 @@ impl LitData { /// A totalizer database #[derive(Default, Clone)] #[cfg_attr(feature = "internals", visibility::make(pub))] +#[cfg_attr(docsrs, doc(cfg(feature = "internals")))] pub(in crate::encodings) struct TotDb { /// The node database of the totalizer nodes: Vec, diff --git a/src/encodings/card/totalizer.rs b/src/encodings/card/totalizer.rs index e16e9715..84105888 100644 --- a/src/encodings/card/totalizer.rs +++ b/src/encodings/card/totalizer.rs @@ -53,6 +53,7 @@ impl Totalizer { /// Recursively builds the tree data structure. Attention, low level /// interface, might change! #[cfg_attr(feature = "internals", visibility::make(pub))] + #[cfg_attr(docsrs, doc(cfg(feature = "internals")))] #[must_use] fn build_tree(lits: &[Lit]) -> Node { debug_assert_ne!(lits.len(), 0); @@ -94,6 +95,7 @@ impl Totalizer { /// Fully builds the tree, then returns it #[cfg(feature = "internals")] + #[cfg_attr(docsrs, doc(cfg(feature = "internals")))] #[must_use] pub fn tree(mut self) -> Option { self.extend_tree(); @@ -339,6 +341,7 @@ pub(super) type TotIter<'a> = std::iter::Copied>; /// more complex encodings, for using the totalizer, this should not be directly /// accessed but only through [`Totalizer`]. #[cfg_attr(feature = "internals", visibility::make(pub))] +#[cfg_attr(docsrs, doc(cfg(feature = "internals")))] enum Node { /// An input literal, i.e., a leaf node of the tree Leaf { diff --git a/src/encodings/pb/dpw.rs b/src/encodings/pb/dpw.rs index 69bb26dd..6b132045 100644 --- a/src/encodings/pb/dpw.rs +++ b/src/encodings/pb/dpw.rs @@ -226,6 +226,7 @@ impl DynamicPolyWatchdog { /// Type containing information about the DPW encoding structure #[cfg_attr(feature = "internals", visibility::make(pub))] +#[cfg_attr(docsrs, doc(cfg(feature = "internals")))] #[derive(Clone)] pub(crate) struct Structure { /// The bottom buckets of the encoding. The first one of them is the root of the encoding. @@ -647,6 +648,7 @@ type DpwIter<'a> = std::iter::Map< /// Builds a DPW [`Structure`] over weighted input literals #[cfg_attr(feature = "internals", visibility::make(pub))] +#[cfg_attr(docsrs, doc(cfg(feature = "internals")))] fn lit_weight_queue>(lits: LI, tot_db: &mut TotDb) -> WeightQ { let lit_to_con = |(lit, weight)| { let node = tot_db.insert(Node::leaf(lit)); @@ -661,6 +663,7 @@ fn lit_weight_queue>(lits: LI, tot_db: &mut To /// /// If `cons` is empty #[cfg_attr(feature = "internals", visibility::make(pub))] +#[cfg_attr(docsrs, doc(cfg(feature = "internals")))] fn con_weight_queue>(cons: CI) -> WeightQ { let mut weight_queue: WeightQ = BTreeMap::new(); for con in cons { @@ -688,6 +691,7 @@ fn con_weight_queue>(cons: CI) -> WeightQ { /// /// - If `weight_queue` is empty #[cfg_attr(feature = "internals", visibility::make(pub))] +#[cfg_attr(docsrs, doc(cfg(feature = "internals")))] fn build_structure( weight_queue: &mut WeightQ, prec_div: usize, @@ -818,6 +822,7 @@ fn build_structure( /// - If `bot_struct` has no bottom buckets #[allow(clippy::too_many_lines)] #[cfg_attr(feature = "internals", visibility::make(pub))] +#[cfg_attr(docsrs, doc(cfg(feature = "internals")))] fn merge_structures( bot_struct: &mut Structure, top_struct: Structure, @@ -964,6 +969,7 @@ where /// /// If the clause collector runs out of memory, returns [`crate::OutOfMemory`] #[cfg_attr(feature = "internals", visibility::make(pub))] +#[cfg_attr(docsrs, doc(cfg(feature = "internals")))] fn encode_output( dpw: &Structure, oidx: usize, @@ -987,6 +993,7 @@ where /// /// If `dpw` is not adequately encoded, returns [`Error::NotEncoded`]. #[cfg_attr(feature = "internals", visibility::make(pub))] +#[cfg_attr(docsrs, doc(cfg(feature = "internals")))] fn enforce_ub(dpw: &Structure, ub: usize, tot_db: &TotDb) -> Result, Error> { let output_weight = 1 << (dpw.output_power()); let oidx = ub / output_weight; diff --git a/src/encodings/pb/gte.rs b/src/encodings/pb/gte.rs index d1ce15bb..22bd009b 100644 --- a/src/encodings/pb/gte.rs +++ b/src/encodings/pb/gte.rs @@ -340,6 +340,7 @@ impl Extend<(Lit, usize)> for GeneralizedTotalizer { /// literals happens in the [`GeneralizedTotalizer`] or /// [`super::InvertedGeneralizedTotalizer`] structs. #[cfg_attr(feature = "internals", visibility::make(pub))] +#[cfg_attr(docsrs, doc(cfg(feature = "internals")))] enum Node { /// A weighted input literal, i.e., a leaf node of the tree Leaf { diff --git a/src/utils.rs b/src/utils.rs index 70f2be22..8307cbb4 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -6,6 +6,7 @@ /// /// If `basis` is `1` and `number` is larger than `u32`. #[cfg_attr(feature = "internals", visibility::make(pub))] +#[cfg_attr(docsrs, doc(cfg(feature = "internals")))] #[must_use] pub(crate) fn digits(mut number: usize, mut basis: u8) -> u32 { debug_assert_ne!(basis, 0);