Struct ckb_types::H256[]

pub struct H256(pub [u8; 32]);

The 32-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 H256

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

Converts Self to a byte slice.

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

To convert the byte slice back into Self.

impl H256

pub fn from_trimmed_str(input: &str) -> Result<H256, 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::H256 as Hash;
const BYTES_SIZE: usize = 32;

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 H256

impl AsRef<[u8]> for H256

impl Clone for H256

impl Debug for H256

impl Default for H256

impl<'de> Deserialize<'de> for H256

impl Display for H256

impl Eq for H256

impl From<[u8; 32]> for H256

impl FromStr for H256

type Err = FromStrError

The associated error which can be returned from parsing.

impl Hash for H256

impl LowerHex for H256

impl Ord for H256

impl Pack<Byte32> for H256[src]

impl PartialEq<H256> for H256

impl PartialOrd<H256> for H256

impl Serialize for H256

impl<'r> Unpack<H256> for Byte32Reader<'r>[src]

impl Unpack<H256> for Byte32[src]

Auto Trait Implementations

impl RefUnwindSafe for H256

impl Send for H256

impl Sync for H256

impl Unpin for H256

impl UnwindSafe for H256

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.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,