pub struct TensorChecksum {
pub algorithm: ChecksumAlgorithm,
pub value: u64,
pub data_len: usize,
pub computed_at_secs: u64,
}Expand description
A checksum value together with the metadata needed to re-verify data later.
Fields§
§algorithm: ChecksumAlgorithmAlgorithm used to produce value.
value: u64The checksum value.
data_len: usizeLength (in bytes) of the data that was checksummed.
computed_at_secs: u64Unix timestamp (seconds) at which the checksum was computed.
Implementations§
Source§impl TensorChecksum
impl TensorChecksum
Sourcepub fn verify(&self, data: &[u8]) -> bool
pub fn verify(&self, data: &[u8]) -> bool
Recompute the checksum for data using the same algorithm and compare
it against self.value.
Returns true if the data is intact, false if it has been corrupted
(or if data.len() != self.data_len).
§Examples
use ipfrs_tensorlogic::tensor_checksum::{ChecksumAlgorithm, TensorChecksum};
let data = b"tensor payload";
let cs = TensorChecksum {
algorithm: ChecksumAlgorithm::Fnv1a64,
value: ipfrs_tensorlogic::tensor_checksum::fnv1a64(data),
data_len: data.len(),
computed_at_secs: 0,
};
assert!(cs.verify(data));
assert!(!cs.verify(b"corrupted payload"));Trait Implementations§
Source§impl Clone for TensorChecksum
impl Clone for TensorChecksum
Source§fn clone(&self) -> TensorChecksum
fn clone(&self) -> TensorChecksum
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for TensorChecksum
impl Debug for TensorChecksum
impl Eq for TensorChecksum
Source§impl PartialEq for TensorChecksum
impl PartialEq for TensorChecksum
Source§fn eq(&self, other: &TensorChecksum) -> bool
fn eq(&self, other: &TensorChecksum) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for TensorChecksum
Auto Trait Implementations§
impl Freeze for TensorChecksum
impl RefUnwindSafe for TensorChecksum
impl Send for TensorChecksum
impl Sync for TensorChecksum
impl Unpin for TensorChecksum
impl UnsafeUnpin for TensorChecksum
impl UnwindSafe for TensorChecksum
Blanket Implementations§
impl<T> Allocation for T
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
Mutably borrows from an owned value. Read more
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§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
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<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>
Converts
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>
Converts
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