Skip to main content

Crate paramodel_elements

Crate paramodel_elements 

Source
Expand description

Paramodel — the central algebra crate.

Everything paramodel models lives here: the parameter algebra (parameter / domain / constraint / value / validation / expression), the attribute layer (labels, tags, plugs, sockets, wires), the element model (Element, Dependency, runtime), and the trial-as-element-parameterization layer (Trial, Assignments).

The crate was formerly split into paramodel-core and paramodel-elements, with Trial living in paramodel-trials. That split cost indirection without buying value — Trial is a specific parameterization of an element graph over specific coordinates, which puts it in the same semantic unit as Element. Downstream specialisation (trial sets, outcomes, plans, compilation, execution) still lives in sibling crates — this one is the algebra they’re built on.

Re-exports§

pub use attributes::AttributeError;
pub use attributes::Attributed;
pub use attributes::Facet;
pub use attributes::FacetKey;
pub use attributes::FacetValue;
pub use attributes::LabelKey;
pub use attributes::LabelValue;
pub use attributes::Labels;
pub use attributes::Plug;
pub use attributes::Pluggable;
pub use attributes::PortName;
pub use attributes::Socket;
pub use attributes::TagKey;
pub use attributes::TagValue;
pub use attributes::Tags;
pub use attributes::Tier;
pub use attributes::Wire;
pub use attributes::WireMatch;
pub use attributes::fits;
pub use attributes::validate_namespace;
pub use attributes::wiring_for;
pub use configuration::ConfigEntry;
pub use configuration::Configuration;
pub use configuration::ExportName;
pub use configuration::Exports;
pub use configuration::TokenExpr;
pub use constraint::BoolConstraint;
pub use constraint::Constraint;
pub use constraint::DoubleConstraint;
pub use constraint::IntConstraint;
pub use constraint::SelectionConstraint;
pub use constraint::StringConstraint;
pub use dependency::Dependency;
pub use dependency::RelationshipType;
pub use domain::Cardinality;
pub use domain::Domain;
pub use domain::DomainError;
pub use domain::DoubleDomain;
pub use domain::IntegerDomain;
pub use domain::LabeledEntry;
pub use domain::LabeledSelectionResolver;
pub use domain::RegexPattern;
pub use domain::ResolverId;
pub use domain::SelectionDomain;
pub use domain::SelectionResolver;
pub use domain::SelectionResolverRegistry;
pub use domain::StringDomain;
pub use element::Element;
pub use error::ElementError;
pub use error::Error;
pub use error::Result;
pub use expression::BinOp;
pub use expression::BuiltinFn;
pub use expression::DerivationError;
pub use expression::EvalValue;
pub use expression::Expression;
pub use expression::Literal;
pub use expression::UnOp;
pub use expression::ValueBindings;
pub use fingerprint::Fingerprint;
pub use fingerprint::FingerprintBuilder;
pub use ids::TrialId;
pub use lifecycle::HealthCheckSpec;
pub use lifecycle::LiveStatusSummary;
pub use lifecycle::OperationalState;
pub use lifecycle::ShutdownSemantics;
pub use lifecycle::StateTransition;
pub use names::ElementName;
pub use names::Name;
pub use names::NameError;
pub use names::ParameterName;
pub use parameter::BooleanParameter;
pub use parameter::DerivedParameter;
pub use parameter::DoubleParameter;
pub use parameter::IntegerParameter;
pub use parameter::Parameter;
pub use parameter::ParameterError;
pub use parameter::SelectionParameter;
pub use parameter::StringParameter;
pub use runtime::ElementRuntime;
pub use runtime::ElementRuntimeRegistry;
pub use runtime::MaterializationOutputs;
pub use runtime::ResolvedConfiguration;
pub use runtime::StateObservation;
pub use runtime::StateTransitionListener;
pub use runtime::TrialContext;
pub use trial::Assignments;
pub use trial::TRIAL_TAG;
pub use trial::Trial;
pub use trial::TrialError;
pub use trial::TrialMetadata;
pub use types::ElementTypeDescriptor;
pub use types::ElementTypeDescriptorRegistry;
pub use types::OpenRegistry;
pub use types::TypeId;
pub use validation::ValidationResult;
pub use value::BooleanValue;
pub use value::BoundaryKind;
pub use value::DoubleValue;
pub use value::GeneratorInfo;
pub use value::IntegerValue;
pub use value::Provenance;
pub use value::SelectionItem;
pub use value::SelectionValue;
pub use value::StringValue;
pub use value::Value;
pub use value::ValueKind;

Modules§

attributes
Labels, tags, plugs, sockets, and wires.
configuration
Element configuration and exports.
constraint
Declarative constraint algebra.
dependency
Typed dependency edges between elements.
domain
Parameter domains.
element
The Element struct — anchor type of the whole system.
error
Crate-local error type for paramodel-elements.
expression
Expression language for DerivedParameter.
fingerprint
BLAKE3 content fingerprints.
ids
Machine-generated ULID identifiers.
lifecycle
Lifecycle metadata: health-check timing, operational state, and shutdown semantics.
names
Validated name newtypes.
parameter
Parameters.
runtime
The behavioural surface of an element.
trial
Trial, Assignments, TrialMetadata, and the trial canonical byte encoding.
types
Element type descriptors and the registry that dispatches by type.
validation
Parameter / value validation outcomes.
value
Parameter values, provenance, and canonical fingerprints.

Macros§

name_type
Declare a validated name newtype that implements Name.