Skip to main content

ContentHasher

Struct ContentHasher 

Source
pub struct ContentHasher { /* private fields */ }
Expand description

Constant-space v1 content hashing with an exact, checked payload length.

The length precedes the payload in the immutable v1 framing. Callers must measure and stream the same immutable input. Excess input poisons the hasher; neither incomplete nor poisoned input can produce a digest.

Implementations§

Source§

impl ContentHasher

Source

pub fn new(domain: HashDomain, payload_length: u64) -> Self

Starts an exact-length, domain-separated SHA-256 v1 frame.

Source

pub fn update(&mut self, payload: &[u8]) -> Result<(), HashLengthMismatch>

Adds bytes without buffering them, refusing and poisoning excess input.

Source

pub fn finish(self) -> Result<ContentDigest, HashLengthMismatch>

Finishes only after exactly the declared number of bytes was supplied.

Trait Implementations§

Source§

impl Debug for ContentHasher

Source§

fn fmt(&self, formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.