From 21dfc6d58c15256f8115a756029aa8a5c87bc91b Mon Sep 17 00:00:00 2001 From: Micah Elizabeth Scott Date: Wed, 2 Aug 2023 14:46:46 -0700 Subject: [PATCH] equix/fuzz: CI and doc fixes The build found a stale private doc comment as well as an exception that needed to be made in check_doc_features. The check_doc_features change solidifies a decision that things marked with cfg(fuzzing) aren't part of the documented API. --- crates/equix/src/bucket_array.rs | 15 +++++++++------ maint/check_doc_features | 5 +++++ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/crates/equix/src/bucket_array.rs b/crates/equix/src/bucket_array.rs index d446f68d0..2abf748d9 100644 --- a/crates/equix/src/bucket_array.rs +++ b/crates/equix/src/bucket_array.rs @@ -1,14 +1,17 @@ //! A data structure for the solver's bucket sort layers //! -//! This module implements the [`KeyValueBucketArray`] and related types, +//! This module implements the [`hash::KeyValueBucketArray`] and related types, //! forming the basis of our solver's temporary storage. The basic key/value //! bucket array is a hash table customized with a fixed capacity and minimal -//! data types. The overall key/value array is organized in a struct-of-arrays -//! fashion, keeping bucket counts in state memory alongside mutable references -//! to external key and value memories. +//! data types. It's organized in a struct-of-arrays fashion, keeping bucket +//! counts in state memory alongside mutable references to external key and +//! value memories. //! -//! The implementation is split into a higher level which knows about the hash -//! table semantics and a lower level that's responsible for memory safety. +//! For performance and memory efficiency, the hash table layer is built on +//! a manual memory management layer. Individual bucket arrays are backed +//! by [`mem::BucketArrayMemory`]. Layouts defined at compile time can be +//! marked using the [`mem::Uninit`] trait and constructed from a single large +//! buffer of uninitialized reusable memory. pub(crate) mod hash; pub(crate) mod mem; diff --git a/maint/check_doc_features b/maint/check_doc_features index 9ada229fb..9da8df44d 100755 --- a/maint/check_doc_features +++ b/maint/check_doc_features @@ -11,6 +11,11 @@ additional_provided = {} additional_required = {} +# Not interested in the low-level interfaces we provide only for fuzzing +additional_provided['equix'] = [ + ('{BucketArray, BucketArrayMemory, BucketArrayPair, Count, Uninit}', 'fuzzing'), +] + # PreferredRuntime has a somewhat more complexe rule for existing additional_provided['tor-rtcompat'] = [ ('PreferredRuntime', 'feature = "native-tls"'),