#[non_exhaustive]pub enum PackValidationError {
DuplicateSymlinkDst {
dst: String,
first: usize,
second: usize,
},
GraphCycle {
chain: Vec<String>,
},
DependsOnUnsatisfied {
pack: String,
required: String,
},
ChildPathInvalid {
child_name: String,
path: String,
reason: String,
},
ChildPathDuplicate {
path: String,
urls: Vec<String>,
},
}Expand description
Errors raised by plan-phase validators.
Marked #[non_exhaustive] so future slices (slices 3–6) can add variants
without breaking downstream match arms.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
DuplicateSymlinkDst
Two symlink actions within the same pack resolve to the same
literal dst string. first and second are indices in the
flattened action-walk order (see
PackManifest::iter_all_symlinks).
Fields
GraphCycle
A cycle was detected in the assembled pack graph. chain lists the
pack names from the outermost node down to the recurrence.
DependsOnUnsatisfied
A depends_on entry could not be resolved against any node in the
walked graph.
Fields
ChildPathInvalid
A children[].path value violates the bare-name rule
(^[a-z][a-z0-9-]*$, no separators, no . / .., no empty).
Enforced since v1.1.0 — see the child_path module’s
ChildPathValidator (internal).
Fields
ChildPathDuplicate
Two or more children[] entries within the same parent
resolve to the same effective_path(). Without this gate the
second clone would silently overwrite the first’s working
tree, or — once both have a .git — collide on the
dest-already-exists fast path and skip-fetch the wrong upstream.
Enforced since v1.1.0 — see the child_path module’s
DupChildPathValidator (internal).
Trait Implementations§
Source§impl Clone for PackValidationError
impl Clone for PackValidationError
Source§fn clone(&self) -> PackValidationError
fn clone(&self) -> PackValidationError
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PackValidationError
impl Debug for PackValidationError
Source§impl Display for PackValidationError
impl Display for PackValidationError
Source§impl Error for PackValidationError
impl Error for PackValidationError
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()
Source§impl PartialEq for PackValidationError
impl PartialEq for PackValidationError
impl Eq for PackValidationError
impl StructuralPartialEq for PackValidationError
Auto Trait Implementations§
impl Freeze for PackValidationError
impl RefUnwindSafe for PackValidationError
impl Send for PackValidationError
impl Sync for PackValidationError
impl Unpin for PackValidationError
impl UnsafeUnpin for PackValidationError
impl UnwindSafe for PackValidationError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more