pub struct CorruptObject {
pub build: u32,
pub version: String,
pub hash: String,
pub actual: String,
pub files: Vec<String>,
}Expand description
A content object whose bytes do not hash to the name it is stored under, attributed to the build that references it and the files it backs.
A hash is 20 hex characters and says nothing on its own. Carrying the build, the version and the referencing paths is what makes the failure reportable.
Its Display is what reaches a toast, and renders
within MAX_MESSAGE_CHARS however many paths the object backs.
Fields§
§build: u32§version: String§hash: StringThe name the object is stored under, which is the hash its bytes must reproduce.
actual: StringWhat the bytes actually hashed to.
files: Vec<String>Every path in the build that reads through this object. Goes to the log
in full; Display names at most [NAMED_FILES] of
them and counts the rest.
Implementations§
Source§impl CorruptObject
impl CorruptObject
Sourcepub fn attribute(
entry: &BuildEntry,
metadata: &BuildMetadata,
hash: &str,
actual: &str,
) -> Self
pub fn attribute( entry: &BuildEntry, metadata: &BuildMetadata, hash: &str, actual: &str, ) -> Self
Attribute a hash mismatch to a build by reverse-mapping the hash through the build’s metadata, which names every path the object backs.
Trait Implementations§
Source§impl Clone for CorruptObject
impl Clone for CorruptObject
Source§fn clone(&self) -> CorruptObject
fn clone(&self) -> CorruptObject
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 CorruptObject
impl Debug for CorruptObject
Source§impl Display for CorruptObject
impl Display for CorruptObject
impl Eq for CorruptObject
Source§impl PartialEq for CorruptObject
impl PartialEq for CorruptObject
impl StructuralPartialEq for CorruptObject
Auto Trait Implementations§
impl Freeze for CorruptObject
impl RefUnwindSafe for CorruptObject
impl Send for CorruptObject
impl Sync for CorruptObject
impl Unpin for CorruptObject
impl UnsafeUnpin for CorruptObject
impl UnwindSafe for CorruptObject
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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§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<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 moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.