Skip to main content

ParameterSpace

Struct ParameterSpace 

Source
pub struct ParameterSpace { /* private fields */ }
Expand description

A validated immutable fixed-and-swept parameter definition.

Cloning this type clones only an Arc. Parsed source values, lookup indexes, Cartesian strides, explicit cases, and exact source bytes remain in one shared allocation.

Implementations§

Source§

impl ParameterSpace

Source

pub fn load( configuration_directory: impl Into<PathBuf>, ) -> Result<Self, ConfigurationError>

Loads fixed.json and sweep.json from configuration_directory.

The directory is the config/ directory itself. The later ProjectConfig facade accepts a project root and applies that standard suffix automatically.

§Errors

Returns contextual IO or JSON errors, duplicate-key and document-shape errors, fixed/sweep collisions, empty sweep definitions, or checked task count overflow. Neither source file is modified.

Source

pub fn configuration_directory(&self) -> &Path

Returns the configuration directory exactly as supplied at load time.

Source

pub fn fixed_source_json(&self) -> &[u8]

Borrows the validated original bytes of fixed.json unchanged.

These bytes include the source document’s original whitespace, key presentation order, and number spelling.

Source

pub fn sweep_source_json(&self) -> &[u8]

Borrows the validated original bytes of sweep.json unchanged.

Source

pub fn fixed_parameter_count(&self) -> usize

Returns the number of names supplied by fixed.json.

Source

pub fn sweep_parameter_count(&self) -> usize

Returns the number of names supplied by one resolved sweep selection.

Source

pub fn parameter_count(&self) -> usize

Returns the number of entries in every resolved task dictionary.

Source

pub fn task_count(&self) -> u64

Returns the exact checked number of deterministic task combinations.

Source

pub fn contains_parameter(&self, key: &str) -> bool

Reports whether either the fixed table or sweep definition declares an exact parameter key.

Source

pub fn fixed_keys(&self) -> impl ExactSizeIterator<Item = &str>

Iterates fixed parameter names in their JSON declaration order.

Source

pub fn sweep_keys(&self) -> impl ExactSizeIterator<Item = &str>

Iterates swept parameter names in declared axis or first-case order.

Source

pub fn task(&self, ordinal: u64) -> Result<TaskParameters, ConfigurationError>

Resolves one zero-based deterministic task ordinal.

The returned dictionary shares this space’s allocation and computes selected values lazily during lookup. No parameter value is cloned.

Source

pub fn tasks(&self) -> TaskParametersIter

Iterates every resolved task in increasing deterministic ordinal order.

Iterator items cannot fail because the range is constructed from the already validated task count.

Trait Implementations§

Source§

impl Clone for ParameterSpace

Source§

fn clone(&self) -> ParameterSpace

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ParameterSpace

Source§

fn fmt(&self, formatter: &mut Formatter<'_>) -> Result

Formats bounded structural facts without traversing parameter values.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.