Expand description
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.
Tuple Fields
0: [u8; 20]
Implementations
impl H160
impl H160
impl H160
impl H160
pub fn from_trimmed_str(input: &str) -> Result<H160, FromStrError>
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<'de> Deserialize<'de> for H160
impl<'de> Deserialize<'de> for H160
fn deserialize<D>(
deserializer: D
) -> Result<H160, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D
) -> Result<H160, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Ord for H160
impl Ord for H160
1.21.0 · sourceconst fn max(self, other: Self) -> Selfwhere
Self: Sized,
const fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
1.21.0 · sourceconst fn min(self, other: Self) -> Selfwhere
Self: Sized,
const fn min(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the minimum of two values. Read more
1.50.0 · sourceconst fn clamp(self, min: Self, max: Self) -> Selfwhere
Self: Sized + PartialOrd<Self>,
const fn clamp(self, min: Self, max: Self) -> Selfwhere
Self: Sized + PartialOrd<Self>,
Restrict a value to a certain interval. Read more
impl PartialOrd<H160> for H160
impl PartialOrd<H160> for H160
fn partial_cmp(&self, other: &H160) -> Option<Ordering>
fn partial_cmp(&self, other: &H160) -> Option<Ordering>
1.0.0 · sourceconst fn le(&self, other: &Rhs) -> bool
const 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 moreimpl Serialize for H160
impl Serialize for H160
fn serialize<S>(
&self,
serializer: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
Serialize this value into the given Serde serializer. Read more
impl Eq 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
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
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