Skip to main content

resolve_input_files

Function resolve_input_files 

Source
pub fn resolve_input_files<F: Filesystem>(
    fs: &F,
    workspace: &Workspace,
    project: &Project,
    inputs: &[InputSpec],
    algo: HashAlgo,
) -> Result<Vec<OwnedInputFile>, BuildKeyError>
Expand description

Resolve every InputSpec declared on a task against fs and hash the bytes of each matched file under algo.

Each spec contributes zero or more OwnedInputFiles to the returned vector. A PathPattern::Literal always contributes exactly one entry on success; a non-matching glob contributes none. Errors surface the first failure encountered while walking or reading; later inputs in the same task are not attempted.

Symlink semantics follow CACHE-006: the workspace-absolute path recorded is the matching entry’s own path (so two symlinks to the same target produce two distinct contributions), while the bytes fed into the hash come from the symlink’s canonical target (Filesystem::read follows symlinks).

§Errors

Returns a BuildKeyError variant describing the first failure encountered: a literal input that resolves to a missing path or non-regular-file, a glob walk that fails on metadata or recursion, or a content read that fails. Caller responsibility to surface as a user-facing diagnostic.