Struct ckb_fixed_hash_core::H512
source · [−]Expand description
The 64-byte fixed-length binary data.
The name comes from the number of bits in the data.
In JSONRPC, it is encoded as a 0x-prefixed hex string.
Tuple Fields
0: [u8; 64]
Implementations
sourceimpl H512
impl H512
sourcepub fn from_trimmed_str(input: &str) -> Result<Self, FromStrError>
pub fn from_trimmed_str(input: &str) -> Result<Self, FromStrError>
To convert a trimmed hexadecimal string into Self
.
If the beginning of a hexadecimal string are one or more zeros, then these zeros should be omitted.
There should be only one zero at the beginning of a hexadecimal string at most.
For example, if x
is H16
(a 16 bits binary data):
- when
x = [0, 0]
, the trimmed hexadecimal string should be “0” or “”. - when
x = [0, 1]
, the trimmed hexadecimal string should be “1”. - when
x = [1, 0]
, the trimmed hexadecimal string should be “100”.
use ckb_fixed_hash_core::H512 as Hash;
const BYTES_SIZE: usize = 64;
let mut inner = [0u8; BYTES_SIZE];
{
let actual = Hash(inner.clone());
let expected1 = Hash::from_trimmed_str("").unwrap();
let expected2 = Hash::from_trimmed_str("0").unwrap();
assert_eq!(actual, expected1);
assert_eq!(actual, expected2);
}
{
inner[BYTES_SIZE - 1] = 1;
let actual = Hash(inner);
let expected = Hash::from_trimmed_str("1").unwrap();
assert_eq!(actual, expected);
}
{
assert!(Hash::from_trimmed_str("00").is_err());
assert!(Hash::from_trimmed_str("000").is_err());
assert!(Hash::from_trimmed_str("0000").is_err());
assert!(Hash::from_trimmed_str("01").is_err());
assert!(Hash::from_trimmed_str("001").is_err());
assert!(Hash::from_trimmed_str("0001").is_err());
}
Trait Implementations
sourceimpl<'de> Deserialize<'de> for H512
impl<'de> Deserialize<'de> for H512
sourcefn 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>,
Deserialize this value from the given Serde deserializer. Read more
sourceimpl Ord for H512
impl Ord for H512
sourceimpl PartialOrd<H512> for H512
impl PartialOrd<H512> for H512
sourcefn partial_cmp(&self, other: &Self) -> Option<Ordering>
fn partial_cmp(&self, other: &Self) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
impl Eq for H512
Auto Trait Implementations
impl RefUnwindSafe for H512
impl Send for H512
impl Sync for H512
impl Unpin for H512
impl UnwindSafe for H512
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more