Struct ckb_fixed_hash::H520[][src]

pub struct H520(pub [u8; 65]);

The 65-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.

Implementations

impl H520[src]

pub fn as_bytes(&self) -> &[u8][src]

Converts Self to a byte slice.

pub fn from_slice(input: &[u8]) -> Result<H520, FromSliceError>[src]

To convert the byte slice back into Self.

impl H520[src]

pub fn from_trimmed_str(input: &str) -> Result<H520, FromStrError>[src]

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::H520 as Hash;
const BYTES_SIZE: usize = 65;

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

impl AsMut<[u8]> for H520[src]

impl AsRef<[u8]> for H520[src]

impl Clone for H520[src]

impl Debug for H520[src]

impl Default for H520[src]

impl<'de> Deserialize<'de> for H520[src]

impl Display for H520[src]

impl Eq for H520[src]

impl From<[u8; 65]> for H520[src]

impl FromStr for H520[src]

type Err = FromStrError

The associated error which can be returned from parsing.

impl Hash for H520[src]

impl LowerHex for H520[src]

impl Ord for H520[src]

impl PartialEq<H520> for H520[src]

impl PartialOrd<H520> for H520[src]

impl Serialize for H520[src]

Auto Trait Implementations

impl RefUnwindSafe for H520

impl Send for H520

impl Sync for H520

impl Unpin for H520

impl UnwindSafe for H520

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.