Expand description
Bynk’s project model (#1113, P4.0): discovery, the unit dependency graph, path resolution, cross-unit consistency checks, and the schema-registry document’s read/write halves.
Extracted from bynk-emit/src/project.rs and its project/ submodule
tree so bynk-emit becomes a dependent of this crate rather than owning
this code directly (design/tracks/project-model.md §3, §6 row P4.0).
bynk-check/bynk-syntax/grammar/AST/emitter language surface is
untouched — a crate-boundary and internal-representation move, not a
language change.
What did not move (stays in bynk-emit, per the slice’s own scope):
schema_registry::reconcile and its helpers (bynk_check-coupled via
UnitTable, pending P4.1’s bynk-check entry point); diagnostics::Mode,
ErrorSink, ProjectAnalysis, ProjectFailure, ContextSequenceInfo,
ContextBoundaryInfo (facts about how the pipeline is driven/consumed,
not about the project itself); symbols (UnitTable, bynk_check-coupled
via resolver::MethodTable); validate/tests_emit (checking and test
codegen, not project modelling).
The public surface below is enumerated by hand (R10.4-style) — no blanket
pub use module::*.
Re-exports§
pub use consistency::check_directory_kind_consistency;pub use consistency::check_directory_name_consistency;pub use consistency::check_group_kind_consistency;pub use consistency::check_path_name_alignment;pub use discovery::ParsedFile;pub use discovery::case_effective_tier;pub use discovery::check_file_directory_conflicts;pub use discovery::discover_bynk_files;pub use discovery::discover_project_files;pub use discovery::parse_sources;pub use discovery::read_adapter_binding;pub use discovery::read_source;pub use discovery::suite_effective_tier_is_system;pub use graph::detect_consumes_cycles;pub use graph::detect_provider_dependency_cycles;pub use json::json_string;pub use paths::ProjectPaths;pub use paths::ProjectPathsError;pub use paths::commons_dir_for;pub use paths::is_multi_file_layout;pub use paths::is_unpinned_range;pub use paths::normalize_rel;pub use paths::renamed_unit_name;pub use paths::render_package_json;pub use paths::try_read_project_paths;pub use paths::try_read_project_paths_with;pub use paths::ts_output_path;pub use paths::unit_path_matches;pub use paths::worker_dir_name;pub use paths::worker_handlers_output_path;pub use paths::worker_handlers_source_path;pub use roots::Roots;pub use roots::SchemaLock;pub use roots::UnitKind;
Modules§
- consistency
- discovery
- graph
- json
- The one JSON string escaper for every manifest
bynk-emithand-renders. - paths
- roots
- schema_
registry - Events track, slice 3c (#980): the cross-build schema registry’s document shape and (de)serialisation.
Structs§
- Attributed
Error - v0.24 (ADR 0052): a compile error attributed — where possible — to the
project-relative source file it belongs to, tagged at the collection
point (the phase that produced it knows which file it was processing).
Noneis the project-level bucket: validations spanning files (group/cycle/directory consistency) with no single owning file.