Skip to main content

Crate bynk_project

Crate bynk_project 

Source
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-emit hand-renders.
paths
roots
schema_registry
Events track, slice 3c (#980): the cross-build schema registry’s document shape and (de)serialisation.

Structs§

AttributedError
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). None is the project-level bucket: validations spanning files (group/cycle/directory consistency) with no single owning file.