Crate formspec_core

Crate formspec_core 

Source
Expand description

Formspec core processing — FEL, paths, schemas, assembly, mappings, extensions.

Depends on the fel_core crate and holds the non-reactive processing layer used by WASM, Python, and batch evaluators. Human overview: crate README.md. Markdown API export: docs/rustdoc-md/API.md (regenerate with npm run docs:formspec-core).

Re-exports§

pub use assembler::AssemblyError;
pub use assembler::AssemblyProvenance;
pub use assembler::AssemblyResult;
pub use assembler::MapResolver;
pub use assembler::RefResolver;
pub use assembler::assemble_definition;
pub use assembler::assembly_result_to_json_value;
pub use assembly_fel_rewrite::AssemblyFelRewriteMap;
pub use assembly_fel_rewrite::assembly_fel_rewrite_map_from_value;
pub use assembly_fel_rewrite::rewrite_fel_for_assembly;
pub use extension_analysis::ExtensionErrorCode;
pub use extension_analysis::ExtensionItem;
pub use extension_analysis::ExtensionSeverity;
pub use extension_analysis::ExtensionUsageIssue;
pub use extension_analysis::JsonDefinitionItem;
pub use extension_analysis::MapRegistry;
pub use extension_analysis::RegistryEntryInfo;
pub use extension_analysis::RegistryEntryStatus;
pub use extension_analysis::RegistryLookup;
pub use extension_analysis::json_definition_items_tree_from_value;
pub use extension_analysis::map_registry_from_extension_entry_map;
pub use extension_analysis::validate_extension_usage;
pub use fel_analysis::FelAnalysis;
pub use fel_analysis::FelRewriteTargets;
pub use fel_analysis::NavigationTarget;
pub use fel_analysis::RewriteOptions;
pub use fel_analysis::analyze_fel;
pub use fel_analysis::collect_fel_rewrite_targets;
pub use fel_analysis::fel_analysis_to_json_value;
pub use fel_analysis::fel_rewrite_targets_to_json_value;
pub use fel_analysis::get_fel_dependencies;
pub use fel_analysis::rewrite_fel_references;
pub use fel_analysis::rewrite_options_from_camel_case_json;
pub use json_artifacts::changelog_to_json_value;
pub use json_artifacts::extension_usage_issues_to_json_value;
pub use fel_rewrite_exact::rewrite_fel_source_references;
pub use fel_rewrite_exact::rewrite_message_template;
pub use json_util::json_object_to_string_map;
pub use option_sets::resolve_option_sets_on_definition;
pub use response_migration::apply_migrations_to_response_data;
pub use path_utils::ItemLocation;
pub use path_utils::TreeItem;
pub use path_utils::definition_item_location_to_json_value;
pub use path_utils::item_at_path;
pub use path_utils::item_location_at_path;
pub use path_utils::json_definition_item_at_path;
pub use path_utils::json_definition_item_location_at_path;
pub use path_utils::leaf_key;
pub use path_utils::normalize_indexed_path;
pub use path_utils::normalize_path_segment;
pub use path_utils::parent_path;
pub use path_utils::split_normalized_path;
pub use runtime_mapping::ArrayDescriptor;
pub use runtime_mapping::ArrayMode;
pub use runtime_mapping::CoerceType;
pub use runtime_mapping::MappingDiagnostic;
pub use runtime_mapping::MappingDirection;
pub use runtime_mapping::MappingDocument;
pub use runtime_mapping::MappingErrorCode;
pub use runtime_mapping::MappingResult;
pub use runtime_mapping::MappingRule;
pub use runtime_mapping::ReverseOverride;
pub use runtime_mapping::TransformType;
pub use runtime_mapping::UnmappedStrategy;
pub use runtime_mapping::execute_mapping;
pub use runtime_mapping::execute_mapping_doc;
pub use runtime_mapping::mapping_direction_wire;
pub use runtime_mapping::mapping_result_to_json_value;
pub use runtime_mapping::parse_coerce_type;
pub use runtime_mapping::parse_mapping_direction_field;
pub use runtime_mapping::parse_mapping_direction_wire;
pub use runtime_mapping::parse_mapping_document_from_value;
pub use runtime_mapping::parse_mapping_rules_from_value;
pub use schema_validator::ComponentValidationTarget;
pub use schema_validator::DocumentType;
pub use schema_validator::JsonSchemaValidator;
pub use schema_validator::SchemaValidationError;
pub use schema_validator::SchemaValidationPlan;
pub use schema_validator::SchemaValidationResult;
pub use schema_validator::detect_document_type;
pub use schema_validator::json_pointer_to_jsonpath;
pub use schema_validator::schema_validation_plan;
pub use schema_validator::validate_document;
pub use value_coerce::coerce_field_value;
pub use component_tree::visit_component_subtree;
pub use definition_items::coerce_definition_item_key_segment;
pub use definition_items::definition_item_dotted_path;
pub use definition_items::definition_item_key_segment;
pub use definition_items::extension_item_diagnostic_path_from_dotted;
pub use definition_items::visit_definition_items_from_document;
pub use definition_items::visit_definition_items_json;
pub use definition_items::visit_definition_items_json_shallow;
pub use definition_items::visit_definition_items_json_with_policy;
pub use definition_items::DefinitionItemKeyPolicy;
pub use definition_items::DefinitionItemVisitCtx;

Modules§

assembler
Resolves $ref inclusions and assembles self-contained definitions with FEL rewriting.
assembly_fel_rewrite
FEL path rewriting for definition assembly (fragment $ref / keyPrefix semantics).
changelog
Changelog — diffs two definition versions into a structured changelog.
component_tree
Pre-order traversal for component/theme JSON nodes (component + children).
definition_items
Depth-first traversal of definition items / children JSON arrays.
extension_analysis
Validates extension usage in item trees against a registry catalog.
fel_analysis
FEL static analysis and expression rewriting for field references and variables.
fel_rewrite_exact
Exact-text FEL rewriting that preserves non-reference source text.
json_artifacts
serde_json::Value projections for WASM and Python FFI (use with json_to_python on the Py side).
json_util
Small JSON helpers shared across bindings.
option_sets
Inline optionSet field references from optionSets (parity with TS resolveOptionSetsOnDefinition).
path_utils
Dotted path normalization and tree item navigation by path.
registry_client
Registry client — parses registry documents, resolves extensions, validates lifecycle.
response_migration
Apply definition migrations to flat response data (parity with TS migrateResponseData).
runtime_mapping
Bidirectional mapping engine for transforming data between formats.
schema_validator
Schema validation with document type detection and validation dispatch.
value_coerce
Inbound field coercion (parity with TS coerceFieldValue in formspec-engine helpers).
wire_keys
Centralized JSON field names for host bindings (JsonWireStyle).

Enums§

JsonWireStyle
JSON object key style for WASM (camelCase) vs Python (snake_case) bindings.