PseudoScript
Module

project

component

Deps #

public
project::Deps

Resolves a workspace's declared dependencies into modules the checker binds as externals (§8.3): reads `pds.lock` + `pds_modules/`, materialises each direct dependency's `.pds` modules under its dependency-name prefix, and resolves a local path dependency's directory.

Parent

Scenarios

DependenciesLoadAsExternals

Dependencies load as prefixed externals for cross-workspace resolution.

  • given a workspace declaring a git or local dependency, vendored under pds_modules/
  • when its dependency modules are read
  • then each direct dependency's .pds modules load under the dependency-name prefix (§8.3)
  • but the dependency's own pds_modules/ are not re-exported
Flow Flow — DependenciesLoadAsExternals scroll to zoom · drag to pan
FEATUREDependenciesLoadAsExternalsfor DepsGIVENa workspace declaring a git or localdependency, vendored underpds_modules/WHENits dependency modules are readTHENeach direct dependency's .pds modulesload under the dependency-name prefix(§8.3)BUTthe dependency's own pds_modules/ arenot re-exported
data

IoError #

public
project::IoError

A filesystem failure surfaced to the caller: the path or manifest that could not be read, with a human-readable message.

Entities Entity diagram scroll to zoom · drag to pan
RECORDIoErrormessagestring
component

Loader #

private
project::Loader

Resolves and reads a workspace off disk: finds the root by walking up to the nearest `pds.toml`, then walks the tree for visible `.pds` files and loads each as a `(fqn, source)` module — mapping its path to a flat module FQN (§8.1) and skipping `target/` and `pds_modules/`.

Parent

Inbound

Outbound

  • from project::Result
  • from project::Result

Scenarios

FindWorkspaceRoot

The root is the nearest ancestor holding `pds.toml`.

  • given a path inside a workspace directory tree
  • when the root is resolved
  • then the nearest ancestor directory holding a pds.toml is the root
  • but a tree with no pds.toml up to the filesystem root fails with an IoError
Flow Flow — FindWorkspaceRoot scroll to zoom · drag to pan
FEATUREFindWorkspaceRootfor LoaderGIVENa path inside a workspace directorytreeWHENthe root is resolvedTHENthe nearest ancestor directory holdinga pds.toml is the rootBUTa tree with no pds.toml up to thefilesystem root fails with an IoError
LoadModulesSkippingBuildAndVendor

The walk loads `.pds` modules and skips build and vendor directories.

  • given a workspace whose tree includes target/ and pds_modules/ directories
  • when its modules are loaded
  • then every visible .pds file becomes a (fqn, source) module
  • and each file's path maps to its flat module FQN (§8.1)
  • but files under target/ and pds_modules/ are skipped
Flow Flow — LoadModulesSkippingBuildAndVendor scroll to zoom · drag to pan
FEATURELoadModulesSkippingBuildAndVendorfor LoaderGIVENa workspace whose tree includestarget/ and pds_modules/ directoriesWHENits modules are loadedTHENevery visible .pds file becomes a(fqn, source) moduleANDeach file's path maps to its flatmodule FQN (§8.1)BUTfiles under target/ and pds_modules/are skipped
container

Project #

public
project::Project

`crates/pseudoscript-project`. The disk-facing loader: resolves the workspace root, reads its `.pds` modules, and materialises dependency modules from the vendor directory. The only place the native toolchain touches the filesystem for project loading.

Inbound

Outbound

Components Component diagram scroll to zoom · drag to pan
PseudoscriptProjectCOMPONENTLoaderResolves and reads a workspace off disk:finds the root by walking up to the nearest…COMPONENTDepsResolves a workspace's declared dependenciesinto modules the checker binds as externals…CONTAINERCli`crates/pseudoscript` — the binary crate(`pds`). The composition root and only I/O…
Generated by pds doc.