[]Struct ckb_types::H160

pub struct H160(pub [u8; 20]);

The 20-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 H160

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

Converts Self to a byte slice.

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

To convert the byte slice back into Self.

impl H160

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

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 H160

impl AsRef<[u8]> for H160

impl Clone for H160

impl Debug for H160

impl Default for H160

impl<'de> Deserialize<'de> for H160

impl Display for H160

impl Eq for H160

impl From<[u8; 20]> for H160

impl FromStr for H160

type Err = FromStrError

The associated error which can be returned from parsing.

impl Hash for H160

impl LowerHex for H160

impl Ord for H160

impl PartialEq<H160> for H160

impl PartialOrd<H160> for H160

impl Serialize for H160

Auto Trait Implementations

impl RefUnwindSafe for H160

impl Send for H160

impl Sync for H160

impl Unpin for H160

impl UnwindSafe for H160

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>,