pub enum StrategyName {
Lex,
ReverseLex,
Shuffle,
Halton,
Sobol,
Lhs,
Extrema,
Shells,
Diagonal,
Antidiagonal,
}Expand description
Named ordering strategies per spec §3.6 (plus Shuffle).
Each strategy declares its accepted input IndexFn shape
per the spec §3.6 strategy table. V4 (§5) enforces the
per-strategy input-shape contract; R2 (§10.2) implements
the per-strategy push-down rule.
Variants§
Lex
Natural enumeration order — pass-through. Accepts any
input including None. The only strategy whose
materialization is Streaming (§10.2 R1).
ReverseLex
Reverse the input’s index range. Accepts any non-None
discrete IndexFn; rejected over continuous.
Shuffle
Random permutation. PRNG seed captured at
materialization. Accepts any non-None IndexFn
including continuous.
Halton
Halton low-discrepancy sequence. K-D over Lattice; 1-D over single-axis index spaces; native to Continuous (canonical use case).
Sobol
Sobol low-discrepancy sequence. Same shape as Halton.
Lhs
Latin Hypercube stratified sampling. K-D over Lattice; degenerate (= Shuffle) over 1-D; native to Continuous.
Extrema
K-D lattice corners (2^N). Sorted by distance metric; emit top k. Discrete Lattice with N≥2 axes or Continuous box; degenerate over 1-D.
Shells
Concentric shell partitioning. Discrete only; rejected over continuous (ill-defined without discretization).
Diagonal
Index-sum-ascending walk. Discrete Lattice with N≥2 axes; rejected over continuous.
Antidiagonal
Index-sum-descending walk. Discrete Lattice with N≥2 axes; rejected over continuous.
Implementations§
Source§impl StrategyName
impl StrategyName
Sourcepub fn is_streaming(self) -> bool
pub fn is_streaming(self) -> bool
true if the strategy is Lex — the only streaming
strategy (§3.6, §6.2, §10.2 R1).
Sourcepub fn is_index_sampling(self) -> bool
pub fn is_index_sampling(self) -> bool
true if the strategy operates over a 1-D index space
without geometric interpretation. Index-sampling
strategies (Halton/Sobol/Lhs/Shuffle/ReverseLex) work
over any non-None IndexFn; lattice-geometric
strategies (Extrema/Shells/Diagonal/Antidiagonal)
require Lattice with ≥2 axes.
Sourcepub fn is_lattice_geometric(self) -> bool
pub fn is_lattice_geometric(self) -> bool
true if the strategy is a lattice-geometric measure
(corners, shells, diagonals). These require a multi-axis
Lattice and reject continuous inputs.
Trait Implementations§
Source§impl Clone for StrategyName
impl Clone for StrategyName
Source§fn clone(&self) -> StrategyName
fn clone(&self) -> StrategyName
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for StrategyName
Source§impl Debug for StrategyName
impl Debug for StrategyName
Source§impl<'de> Deserialize<'de> for StrategyName
impl<'de> Deserialize<'de> for StrategyName
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Display for StrategyName
impl Display for StrategyName
impl Eq for StrategyName
Source§impl Hash for StrategyName
impl Hash for StrategyName
Source§impl PartialEq for StrategyName
impl PartialEq for StrategyName
Source§impl Serialize for StrategyName
impl Serialize for StrategyName
impl StructuralPartialEq for StrategyName
Auto Trait Implementations§
impl Freeze for StrategyName
impl RefUnwindSafe for StrategyName
impl Send for StrategyName
impl Sync for StrategyName
impl Unpin for StrategyName
impl UnsafeUnpin for StrategyName
impl UnwindSafe for StrategyName
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.