pub struct Digest(/* private fields */);Expand description
A 32-byte Blake2b256 hash output.
§BCS
A Digest’s BCS serialized form is defined by the following:
digest = %x20 32OCTETDue to historical reasons, even though a Digest has a fixed-length of 32, Sui’s binary
representation of a Digest is prefixed with its length meaning its serialized binary form (in
bcs) is 33 bytes long vs a more compact 32 bytes.
Implementations§
Source§impl Digest
impl Digest
Sourcepub const fn new(digest: [u8; 32]) -> Self
pub const fn new(digest: [u8; 32]) -> Self
Generates a new digest from the provided 32 byte array containing u8 values.
Sourcepub fn generate<R>(rng: R) -> Self
Available on crate feature rand only.
pub fn generate<R>(rng: R) -> Self
rand only.Generates a new digest from the provided random number generator.
Sourcepub const fn inner(&self) -> &[u8; 32]
pub const fn inner(&self) -> &[u8; 32]
Returns a slice to the inner array representation of this digest.
Sourcepub const fn into_inner(self) -> [u8; 32]
pub const fn into_inner(self) -> [u8; 32]
Returns the inner array representation of this digest.
Sourcepub fn from_base58<T: AsRef<[u8]>>(base58: T) -> Result<Self, DigestParseError>
pub fn from_base58<T: AsRef<[u8]>>(base58: T) -> Result<Self, DigestParseError>
Decodes a digest from a Base58 encoded string.
Sourcepub const fn from_static(base58: &'static str) -> Self
pub const fn from_static(base58: &'static str) -> Self
Decodes a digest from a Base58 encoded &’static str.
Similar to from_base58 except any errors are unwrapped, turning them into panics.
Sourcepub fn to_base58(&self) -> String
pub fn to_base58(&self) -> String
Returns a Base58 encoded string representation of this digest.
Sourcepub fn from_bytes<T: AsRef<[u8]>>(bytes: T) -> Result<Self, DigestParseError>
pub fn from_bytes<T: AsRef<[u8]>>(bytes: T) -> Result<Self, DigestParseError>
Generates a digest from bytes.
Trait Implementations§
Source§impl Arbitrary for Digest
impl Arbitrary for Digest
Source§type Parameters = ()
type Parameters = ()
arbitrary_with accepts for configuration
of the generated Strategy. Parameters must implement Default.Source§type Strategy = BoxedStrategy<Digest>
type Strategy = BoxedStrategy<Digest>
Strategy used to generate values of type Self.Source§fn arbitrary_with(args: <Self as Arbitrary>::Parameters) -> Self::Strategy
fn arbitrary_with(args: <Self as Arbitrary>::Parameters) -> Self::Strategy
Source§impl<'de> Deserialize<'de> for Digest
impl<'de> Deserialize<'de> for Digest
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Ord for Digest
impl Ord for Digest
Source§impl PartialOrd for Digest
impl PartialOrd for Digest
impl Copy for Digest
impl Eq for Digest
impl StructuralPartialEq for Digest
Auto Trait Implementations§
impl Freeze for Digest
impl RefUnwindSafe for Digest
impl Send for Digest
impl Sync for Digest
impl Unpin for Digest
impl UnwindSafe for Digest
Blanket Implementations§
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere
T: CastFrom<U>,
self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. Read moreSource§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<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