#[non_exhaustive]pub enum BypassReason {
Show 42 variants
NonUtf8Argument {
index: usize,
},
ResponseFile(String),
UnknownFlag(String),
UnknownCodegenOption(String),
MissingValue(String),
CompilerQuery,
StandardInput,
MissingInput,
MultipleInputs,
Incremental,
UnsupportedCrateType(String),
UnsupportedEmit(String),
NoCacheableOutput,
NoDepInfo,
SplitOutputDirectories,
InvalidOutputPath(PathBuf),
ImplicitEmitWithOutputFile(PathBuf),
NativeLibrary,
AmbiguousOutputName(PathBuf),
UnportableNativeLink(String),
UnsupportedSearchPath(String),
UnresolvedExtern(String),
UnmappedAbsolutePath(PathBuf),
NonUtf8Path(PathBuf),
RelativeWorkingDirectory(PathBuf),
RelativePathMapping(PathBuf),
InvalidPathPlaceholder(String),
MissingRequiredInput(String),
InvalidInputDigest(String),
ConflictingInput(String),
MalformedDepInfo(String),
DepInfoRead {
path: PathBuf,
message: String,
},
RelativeDepInfoPath(PathBuf),
UnsafeDepInfoPath(PathBuf),
InputRead {
path: PathBuf,
message: String,
},
InputChanged(PathBuf),
InputModifiedDuringCompilation(PathBuf),
DiscoveryWorkingDirectory,
ConflictingEnvironment(String),
Serialization(String),
UnsupportedPrediction,
InvalidPredictedInput(String),
}Expand description
Reason an invocation cannot safely use the action cache.
A bypass is an expected conservative outcome, not necessarily a compiler
error. Variants carry diagnostic context while BypassReason::kind
provides a stable aggregation key.
This set exists to shrink: every invocation the adapter learns to model
retires a variant, and every construct it learns to reject adds one. Match
on BypassReason::kind for aggregation rather than on the variants.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
NonUtf8Argument
An argument cannot be represented in the canonical UTF-8 key.
ResponseFile(String)
A rustc response file could not be read or parsed exactly.
UnknownFlag(String)
A compiler flag is not modeled by this adapter version.
UnknownCodegenOption(String)
A -C option is not modeled by this adapter version.
MissingValue(String)
A recognized flag was not followed by its required value.
CompilerQuery
The invocation queries compiler information instead of compiling.
StandardInput
Source would be read from standard input and cannot be rediscovered.
MissingInput
No Rust source input was supplied.
MultipleInputs
More than one source input was supplied.
Incremental
Incremental state makes the outputs unsuitable for action caching.
UnsupportedCrateType(String)
The requested crate type is outside the supported cacheability tier.
UnsupportedEmit(String)
The requested emit kind is outside the supported cacheability tier.
NoCacheableOutput
The invocation emits no artifact in the supported cacheability tier.
NoDepInfo
The invocation does not emit the dep-info needed for input discovery.
SplitOutputDirectories
Outputs cannot be represented as one cache directory.
InvalidOutputPath(PathBuf)
An output path does not name a file.
ImplicitEmitWithOutputFile(PathBuf)
-o leaves the name of an implicit emit ambiguous.
NativeLibrary
Native-library lookup is not modeled as a precise input.
AmbiguousOutputName(PathBuf)
An output’s name does not say whether it is a program or a library.
UnportableNativeLink(String)
A native link would embed something no other checkout can reproduce.
UnsupportedSearchPath(String)
A library search-path kind is not modeled.
UnresolvedExtern(String)
An extern name does not resolve to a concrete input artifact.
UnmappedAbsolutePath(PathBuf)
An absolute path has no stable placeholder mapping.
NonUtf8Path(PathBuf)
A path cannot be represented in a canonical UTF-8 action key.
RelativeWorkingDirectory(PathBuf)
The action working directory is not absolute.
RelativePathMapping(PathBuf)
A path-mapping root is not absolute.
InvalidPathPlaceholder(String)
A mapping placeholder is empty or contains unsafe characters.
MissingRequiredInput(String)
An input referenced by compiler arguments is missing from the context.
InvalidInputDigest(String)
A supplied compiler-input digest is malformed.
ConflictingInput(String)
One normalized input path has multiple distinct digests.
MalformedDepInfo(String)
rustc dep-info does not follow the supported format.
DepInfoRead
A dep-info file could not be read as UTF-8 text.
RelativeDepInfoPath(PathBuf)
The requested dep-info output path is not absolute.
UnsafeDepInfoPath(PathBuf)
A dep-info output path contains a comma and cannot be safely rendered.
InputRead
A discovered compiler input could not be read or was not a file.
InputChanged(PathBuf)
Input contents changed after they were hashed.
InputModifiedDuringCompilation(PathBuf)
An input’s modification time overlaps the compiler execution.
DiscoveryWorkingDirectory
Discovered inputs and the action use different working directories.
ConflictingEnvironment(String)
One observed environment input has conflicting values.
Serialization(String)
Canonical action serialization failed.
UnsupportedPrediction
The stored prediction uses an unsupported version or exceeds limits.
InvalidPredictedInput(String)
A normalized predicted path cannot be mapped back to the host.
Implementations§
Trait Implementations§
Source§impl Clone for BypassReason
impl Clone for BypassReason
Source§fn clone(&self) -> BypassReason
fn clone(&self) -> BypassReason
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for BypassReason
impl Debug for BypassReason
Source§impl Display for BypassReason
impl Display for BypassReason
impl Eq for BypassReason
Source§impl Error for BypassReason
impl Error for BypassReason
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()