#![forbid(unsafe_code)]
mod balance;
mod candidate_generator;
#[cfg(feature = "chematic_crystal")]
mod chematic_crystal_adapter;
#[cfg(feature = "commercial_catalog")]
mod commercial_catalog;
mod composition;
mod condition_precedents;
mod config;
mod error;
mod evidence;
mod execution_record;
mod frac;
mod literature_conditions;
mod literature_evidence;
#[cfg(feature = "literature_corpus")]
mod literature_observation_conflicts;
#[cfg(feature = "literature_corpus")]
mod literature_observations;
#[cfg(feature = "materials_project")]
mod materials_project_adapter;
#[cfg(feature = "mikiwame")]
mod mikiwame_adapter;
mod multi_step;
mod planner;
mod precursor;
mod prior_experiment_evidence;
mod process;
mod provenance;
mod provider;
mod reaction;
mod rejection;
mod report;
mod route_suitability;
mod score;
mod target;
mod thermodynamics;
#[cfg(feature = "experimental_grammar")]
mod transformation_grammar;
pub use balance::{balance, curated_byproducts};
pub use candidate_generator::{
CandidateGeneratorEnsemble, CatalogExactGenerator, EnsembleOutput, FrequencyPriorGenerator,
GeneratedCandidate, GeneratorId, ThermodynamicStabilityGenerator,
};
#[cfg(feature = "chematic_crystal")]
pub use chematic_crystal_adapter::to_mikiwame_structure;
#[cfg(feature = "commercial_catalog")]
pub use commercial_catalog::{
AvailabilityStatus, CasNumber, CommercialCatalogColumnMap, CommercialCatalogError,
CommercialCatalogLoadMode, CommercialCatalogLoadReport, CommercialCombination,
CommercialExclusion, CommercialExclusionCode, CommercialOfferId, CommercialOfferSelection,
CommercialPlanAssessment, CommercialPlanningConfig, CommercialPlanningRequest,
CommercialPrecursorCatalog, CommercialPrecursorOffer, CommercialRankingPolicy,
CommercialSourceType, CommercialWarning, CurrencyCode, MissingCommercialDataPolicy, Money,
OfferProvenance, PackageMass, ParticleSizeRangeUm, PurityFraction, RejectedOffer,
SearchBudgetSummary, UnresolvedCommercialField, assess_commercial_plans,
assess_commercial_plans_with_policy, assess_commercial_precursors,
assess_commercial_precursors_with_policy,
};
pub use composition::{Composition, ELEMENT_SYMBOLS, Element};
pub use condition_precedents::{ConditionConflict, ConditionPrecedent, ProcessPrecedent};
pub use config::{PlanningConfig, SearchBudget};
pub use error::{GugenError, ProviderError, Result};
pub use evidence::{EvidenceKind, EvidenceScope, EvidenceStrength, PlanningEvidence};
pub use execution_record::{
ActualPrecursorAmount, ActualProcessStep, ActualStepDetail, Deviation, DeviationCategory,
EXECUTION_RECORD_SCHEMA_VERSION, ExecutionCharacterization, ExecutionProvenance, PlanIdentity,
SynthesisExecutionRecord, SynthesisOutcome,
};
#[cfg(feature = "serde")]
pub use execution_record::{
ExecutionRecordLoadMode, ExecutionRecordLoadReport, parse_execution_records,
};
pub use literature_conditions::{CuratedConditionRecord, InMemoryLiteratureConditionProvider};
pub use literature_evidence::{
CrossDoiFieldStatus, LiteratureRouteEvidence, RouteObservationAssessment, SourcedValue,
StepGroupAssessment, StepGroupKey, literature_evidence_limitations,
};
#[cfg(feature = "literature_corpus")]
pub use literature_observation_conflicts::LiteratureObservationCorpusProvider;
#[cfg(feature = "literature_corpus")]
pub use literature_observations::{
CORPUS_SNAPSHOT_SCHEMA_VERSION, CorpusHeatingObservation, CorpusManifest,
LiteratureObservationCorpus, LoadMode, LoadReport, RejectedObservation,
};
#[cfg(feature = "materials_project")]
pub use materials_project_adapter::MaterialsProjectSnapshotProvider;
#[cfg(feature = "mikiwame")]
pub use mikiwame_adapter::{StructuralDiagnosticEffects, structural_effects};
pub use multi_step::{RouteError, SynthesisRoute, search_two_step_routes};
pub use planner::{Planner, PlannerBuilder};
pub use precursor::{
AcceptedPrecursorSet, AvailabilityMetadata, InMemoryPrecursorCatalog, PrecursorCandidate,
PrecursorId, PrecursorSearchOutcome, PrecursorSelection, search_precursor_sets,
};
#[cfg(feature = "search_diagnostics")]
pub use precursor::{SearchDiagnosticTrace, TieBreakPolicy, search_precursor_sets_diagnostic};
pub use prior_experiment_evidence::{InMemoryExecutionRecordProvider, PriorExperimentEvidence};
pub use process::{
Atmosphere, CharacterizationMethod, CoolingMode, DurationRange, FormingMethod, GrindingMethod,
HeatingPurpose, InertGas, MaterialAmount, MixingMethod, PlannedStep, PressureRange,
ProcessStep, ProcessTemplateResult, RampRateRange, ReducingAgent, RouteFamily, StepRequirement,
TemperatureRange, applicable_route_family_templates, conventional_solid_state_template,
mechanochemical_template,
};
pub use provenance::PlanningProvenance;
pub use provider::{
CandidateGenerator, LiteratureEvidenceProvider, PrecursorCatalog,
PriorExperimentEvidenceProvider, ProcessEvidenceProvider, RouteSuitabilityProvider,
ThermodynamicProvider,
};
pub use reaction::{
BalancedReaction, CompetingPhase, ReactionEnergy, ReactionSpecies, ThermodynamicConditions,
};
pub use rejection::{RejectedCandidate, RejectionCode};
pub use report::{
ApplicabilityAssessment, ApplicabilityLevel, NotRecommendedPlan, PlanId, PlanningWarning,
SCHEMA_VERSION, SynthesisPlan, SynthesisPlanningReport, TargetSummary, UnresolvedRequirement,
WarningSeverity,
};
pub use route_suitability::{
CuratedSuitabilityRecord, InMemoryRouteSuitabilityProvider, RouteRecommendation,
RouteSuitabilityAssessment, SuitabilityFinding, SuitabilityVerdict, derive_recommendation,
};
pub use score::{
ConfidenceAssessment, PlanAssessment, PlanScoreBreakdown, PlanningAssumption, RankingWeights,
Score01, ranking_weights_digest, score_plan,
};
pub use target::{
PhaseRequirement, PlanningConstraints, TargetMaterialView, TargetSpecification, TargetStructure,
};
pub use thermodynamics::{
DecompositionComparison, Kelvin, SolidThermodynamicEntry, ThermodynamicDatasetIdentity,
ThermodynamicSelectivityAssessment, balanced_reaction_delta_ev_per_atom,
decomposition_margin_ev_per_atom, reduced_mass_amu, relative_solid_gibbs_ev_per_atom,
};
#[cfg(feature = "experimental_grammar")]
pub use transformation_grammar::{
AcidCarbonatePhosphateGrammar, CarbonateToOxideGrammar, DedupedProposal, GrammarEvidenceClass,
GrammarId, HydroxideToOxideGrammar, NitrateToOxideGrammar, ProposedIntermediate,
TransformationGrammar, default_grammars, propose_all,
};