Struct diem_sdk::types::account_address::AccountAddress
pub struct AccountAddress(_);
Expand description
A struct that represents an account address.
Implementations§
§impl AccountAddress
impl AccountAddress
pub const fn new(address: [u8; 16]) -> AccountAddress
pub const ZERO: AccountAddress = Self([0u8; Self::LENGTH])
pub const ZERO: AccountAddress = Self([0u8; Self::LENGTH])
Hex address: 0x0
pub fn random() -> AccountAddress
pub fn short_str_lossless(&self) -> String
pub fn to_vec(&self) -> Vec<u8, Global> ⓘ
pub fn to_u8(self) -> [u8; 16]
pub fn from_hex_literal( literal: &str ) -> Result<AccountAddress, AccountAddressParseError>
pub fn from_hex<T>(hex: T) -> Result<AccountAddress, AccountAddressParseError>where T: AsRef<[u8]>,
pub fn to_hex(&self) -> String
pub fn from_bytes<T>( bytes: T ) -> Result<AccountAddress, AccountAddressParseError>where T: AsRef<[u8]>,
Methods from Deref<Target = [u8; 16]>§
1.57.0 · sourcepub fn as_slice(&self) -> &[T] ⓘ
pub fn as_slice(&self) -> &[T] ⓘ
Returns a slice containing the entire array. Equivalent to &s[..]
.
sourcepub fn each_ref(&self) -> [&T; N]
🔬This is a nightly-only experimental API. (array_methods
)
pub fn each_ref(&self) -> [&T; N]
array_methods
)Borrows each element and returns an array of references with the same
size as self
.
Example
#![feature(array_methods)]
let floats = [3.1, 2.7, -1.0];
let float_refs: [&f64; 3] = floats.each_ref();
assert_eq!(float_refs, [&3.1, &2.7, &-1.0]);
This method is particularly useful if combined with other methods, like
map
. This way, you can avoid moving the original
array if its elements are not Copy
.
#![feature(array_methods)]
let strings = ["Ferris".to_string(), "♥".to_string(), "Rust".to_string()];
let is_ascii = strings.each_ref().map(|s| s.is_ascii());
assert_eq!(is_ascii, [true, false, true]);
// We can still access the original array: it has not been moved.
assert_eq!(strings.len(), 3);
sourcepub fn split_array_ref<const M: usize>(&self) -> (&[T; M], &[T])
🔬This is a nightly-only experimental API. (split_array
)
pub fn split_array_ref<const M: usize>(&self) -> (&[T; M], &[T])
split_array
)Divides one array reference into two at an index.
The first will contain all indices from [0, M)
(excluding
the index M
itself) and the second will contain all
indices from [M, N)
(excluding the index N
itself).
Panics
Panics if M > N
.
Examples
#![feature(split_array)]
let v = [1, 2, 3, 4, 5, 6];
{
let (left, right) = v.split_array_ref::<0>();
assert_eq!(left, &[]);
assert_eq!(right, &[1, 2, 3, 4, 5, 6]);
}
{
let (left, right) = v.split_array_ref::<2>();
assert_eq!(left, &[1, 2]);
assert_eq!(right, &[3, 4, 5, 6]);
}
{
let (left, right) = v.split_array_ref::<6>();
assert_eq!(left, &[1, 2, 3, 4, 5, 6]);
assert_eq!(right, &[]);
}
sourcepub fn rsplit_array_ref<const M: usize>(&self) -> (&[T], &[T; M])
🔬This is a nightly-only experimental API. (split_array
)
pub fn rsplit_array_ref<const M: usize>(&self) -> (&[T], &[T; M])
split_array
)Divides one array reference into two at an index from the end.
The first will contain all indices from [0, N - M)
(excluding
the index N - M
itself) and the second will contain all
indices from [N - M, N)
(excluding the index N
itself).
Panics
Panics if M > N
.
Examples
#![feature(split_array)]
let v = [1, 2, 3, 4, 5, 6];
{
let (left, right) = v.rsplit_array_ref::<0>();
assert_eq!(left, &[1, 2, 3, 4, 5, 6]);
assert_eq!(right, &[]);
}
{
let (left, right) = v.rsplit_array_ref::<2>();
assert_eq!(left, &[1, 2, 3, 4]);
assert_eq!(right, &[5, 6]);
}
{
let (left, right) = v.rsplit_array_ref::<6>();
assert_eq!(left, &[]);
assert_eq!(right, &[1, 2, 3, 4, 5, 6]);
}
Trait Implementations§
§impl Arbitrary for AccountAddress
impl Arbitrary for AccountAddress
§type Parameters = <[u8; 16] as Arbitrary>::Parameters
type Parameters = <[u8; 16] as Arbitrary>::Parameters
arbitrary_with
accepts for configuration
of the generated Strategy
. Parameters must implement Default
.§type Strategy = Map<<[u8; 16] as Arbitrary>::Strategy, fn(_: [u8; 16]) -> AccountAddress>
type Strategy = Map<<[u8; 16] as Arbitrary>::Strategy, fn(_: [u8; 16]) -> AccountAddress>
Strategy
used to generate values of type Self
.§fn arbitrary_with(
_top: <AccountAddress as Arbitrary>::Parameters
) -> <AccountAddress as Arbitrary>::Strategy
fn arbitrary_with( _top: <AccountAddress as Arbitrary>::Parameters ) -> <AccountAddress as Arbitrary>::Strategy
§impl AsRef<[u8]> for AccountAddress
impl AsRef<[u8]> for AccountAddress
§impl Clone for AccountAddress
impl Clone for AccountAddress
§fn clone(&self) -> AccountAddress
fn clone(&self) -> AccountAddress
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl Debug for AccountAddress
impl Debug for AccountAddress
§impl Deref for AccountAddress
impl Deref for AccountAddress
§impl<'de> Deserialize<'de> for AccountAddress
impl<'de> Deserialize<'de> for AccountAddress
§fn deserialize<D>(
deserializer: D
) -> Result<AccountAddress, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>( deserializer: D ) -> Result<AccountAddress, <D as Deserializer<'de>>::Error>where D: Deserializer<'de>,
§impl Display for AccountAddress
impl Display for AccountAddress
§impl From<&AccountAddress> for [u8; 16]
impl From<&AccountAddress> for [u8; 16]
§fn from(addr: &AccountAddress) -> [u8; 16]
fn from(addr: &AccountAddress) -> [u8; 16]
§impl From<[u8; 16]> for AccountAddress
impl From<[u8; 16]> for AccountAddress
§fn from(bytes: [u8; 16]) -> AccountAddress
fn from(bytes: [u8; 16]) -> AccountAddress
§impl From<AccountAddress> for [u8; 16]
impl From<AccountAddress> for [u8; 16]
§fn from(addr: AccountAddress) -> [u8; 16]
fn from(addr: AccountAddress) -> [u8; 16]
§impl FromStr for AccountAddress
impl FromStr for AccountAddress
§type Err = AccountAddressParseError
type Err = AccountAddressParseError
§fn from_str(s: &str) -> Result<AccountAddress, AccountAddressParseError>
fn from_str(s: &str) -> Result<AccountAddress, AccountAddressParseError>
s
to return a value of this type. Read more§impl Hash for AccountAddress
impl Hash for AccountAddress
§impl HashAccountAddress for AccountAddress
impl HashAccountAddress for AccountAddress
§impl LowerHex for AccountAddress
impl LowerHex for AccountAddress
§impl Ord for AccountAddress
impl Ord for AccountAddress
§impl PartialEq<AccountAddress> for AccountAddress
impl PartialEq<AccountAddress> for AccountAddress
§fn eq(&self, other: &AccountAddress) -> bool
fn eq(&self, other: &AccountAddress) -> bool
self
and other
values to be equal, and is used
by ==
.§impl PartialOrd<AccountAddress> for AccountAddress
impl PartialOrd<AccountAddress> for AccountAddress
§fn partial_cmp(&self, other: &AccountAddress) -> Option<Ordering>
fn partial_cmp(&self, other: &AccountAddress) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read more§impl Serialize for AccountAddress
impl Serialize for AccountAddress
§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,
§impl TryFrom<&[u8]> for AccountAddress
impl TryFrom<&[u8]> for AccountAddress
§fn try_from(bytes: &[u8]) -> Result<AccountAddress, AccountAddressParseError>
fn try_from(bytes: &[u8]) -> Result<AccountAddress, AccountAddressParseError>
Tries to convert the provided byte array into Address.
§type Error = AccountAddressParseError
type Error = AccountAddressParseError
§impl TryFrom<String> for AccountAddress
impl TryFrom<String> for AccountAddress
§type Error = AccountAddressParseError
type Error = AccountAddressParseError
§fn try_from(s: String) -> Result<AccountAddress, AccountAddressParseError>
fn try_from(s: String) -> Result<AccountAddress, AccountAddressParseError>
§impl TryFrom<Vec<u8, Global>> for AccountAddress
impl TryFrom<Vec<u8, Global>> for AccountAddress
§fn try_from(
bytes: Vec<u8, Global>
) -> Result<AccountAddress, AccountAddressParseError>
fn try_from( bytes: Vec<u8, Global> ) -> Result<AccountAddress, AccountAddressParseError>
Tries to convert the provided byte buffer into Address.
§type Error = AccountAddressParseError
type Error = AccountAddressParseError
§impl UpperHex for AccountAddress
impl UpperHex for AccountAddress
impl Copy for AccountAddress
impl Eq for AccountAddress
impl StructuralEq for AccountAddress
impl StructuralPartialEq for AccountAddress
Auto Trait Implementations§
impl RefUnwindSafe for AccountAddress
impl Send for AccountAddress
impl Sync for AccountAddress
impl Unpin for AccountAddress
impl UnwindSafe for AccountAddress
Blanket Implementations§
source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> TestOnlyHash for Twhere
T: Serialize + ?Sized,
impl<T> TestOnlyHash for Twhere T: Serialize + ?Sized,
§fn test_only_hash(&self) -> HashValue
fn test_only_hash(&self) -> HashValue
source§impl<T> ToHex for Twhere
T: AsRef<[u8]>,
impl<T> ToHex for Twhere T: AsRef<[u8]>,
source§fn encode_hex<U>(&self) -> Uwhere
U: FromIterator<char>,
fn encode_hex<U>(&self) -> Uwhere U: FromIterator<char>,
self
into the result. Lower case
letters are used (e.g. f9b4ca
)source§fn encode_hex_upper<U>(&self) -> Uwhere
U: FromIterator<char>,
fn encode_hex_upper<U>(&self) -> Uwhere U: FromIterator<char>,
self
into the result. Upper case
letters are used (e.g. F9B4CA
)