Struct fuel_txpool::types::ContractId
pub struct ContractId(_);
Expand description
FuelVM atomic type.
Implementations§
§impl ContractId
impl ContractId
pub const fn new(bytes: [u8; 32]) -> ContractId
pub const fn new(bytes: [u8; 32]) -> ContractId
Bytes constructor.
pub const fn zeroed() -> ContractId
pub const fn zeroed() -> ContractId
Zeroes bytes constructor.
pub unsafe fn from_slice_unchecked(bytes: &[u8]) -> ContractId
pub unsafe fn from_slice_unchecked(bytes: &[u8]) -> ContractId
Add a conversion from arbitrary slices into owned
Safety
This function will not panic if the length of the slice is smaller than
Self::LEN
. Instead, it will cause undefined behavior and read random disowned
bytes
pub unsafe fn as_ref_unchecked(bytes: &[u8]) -> &ContractId
pub unsafe fn as_ref_unchecked(bytes: &[u8]) -> &ContractId
§impl ContractId
impl ContractId
pub const SEED: [u8; 4] = 1179993420u32.to_be_bytes()
pub const SEED: [u8; 4] = 1179993420u32.to_be_bytes()
Seed for the calculation of the contract id from its code.
https://github.com/FuelLabs/fuel-specs/blob/master/specs/protocol/identifiers.md#contract-id
Methods from Deref<Target = [u8; 32]>§
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[..]
.
1.57.0 · sourcepub fn as_mut_slice(&mut self) -> &mut [T] ⓘ
pub fn as_mut_slice(&mut self) -> &mut [T] ⓘ
Returns a mutable slice containing the entire array. Equivalent to
&mut 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 each_mut(&mut self) -> [&mut T; N]
🔬This is a nightly-only experimental API. (array_methods
)
pub fn each_mut(&mut self) -> [&mut T; N]
array_methods
)Borrows each element mutably and returns an array of mutable references
with the same size as self
.
Example
#![feature(array_methods)]
let mut floats = [3.1, 2.7, -1.0];
let float_refs: [&mut f64; 3] = floats.each_mut();
*float_refs[0] = 0.0;
assert_eq!(float_refs, [&mut 0.0, &mut 2.7, &mut -1.0]);
assert_eq!(floats, [0.0, 2.7, -1.0]);
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 split_array_mut<const M: usize>(&mut self) -> (&mut [T; M], &mut [T])
🔬This is a nightly-only experimental API. (split_array
)
pub fn split_array_mut<const M: usize>(&mut self) -> (&mut [T; M], &mut [T])
split_array
)Divides one mutable 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 mut v = [1, 0, 3, 0, 5, 6];
let (left, right) = v.split_array_mut::<2>();
assert_eq!(left, &mut [1, 0][..]);
assert_eq!(right, &mut [3, 0, 5, 6]);
left[1] = 2;
right[1] = 4;
assert_eq!(v, [1, 2, 3, 4, 5, 6]);
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]);
}
sourcepub fn rsplit_array_mut<const M: usize>(&mut self) -> (&mut [T], &mut [T; M])
🔬This is a nightly-only experimental API. (split_array
)
pub fn rsplit_array_mut<const M: usize>(&mut self) -> (&mut [T], &mut [T; M])
split_array
)Divides one mutable 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 mut v = [1, 0, 3, 0, 5, 6];
let (left, right) = v.rsplit_array_mut::<4>();
assert_eq!(left, &mut [1, 0]);
assert_eq!(right, &mut [3, 0, 5, 6][..]);
left[1] = 2;
right[1] = 4;
assert_eq!(v, [1, 2, 3, 4, 5, 6]);
Trait Implementations§
§impl AsMut<[u8]> for ContractId
impl AsMut<[u8]> for ContractId
§impl AsRef<[u8]> for ContractId
impl AsRef<[u8]> for ContractId
§impl Clone for ContractId
impl Clone for ContractId
§fn clone(&self) -> ContractId
fn clone(&self) -> ContractId
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl Debug for ContractId
impl Debug for ContractId
§impl Default for ContractId
impl Default for ContractId
§fn default() -> ContractId
fn default() -> ContractId
§impl Deref for ContractId
impl Deref for ContractId
§impl DerefMut for ContractId
impl DerefMut for ContractId
§impl<'de> Deserialize<'de> for ContractId
impl<'de> Deserialize<'de> for ContractId
§fn deserialize<D>(
deserializer: D
) -> Result<ContractId, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D
) -> Result<ContractId, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
§impl Display for ContractId
impl Display for ContractId
§impl Fill for ContractId
impl Fill for ContractId
§impl From<[u8; 32]> for ContractId
impl From<[u8; 32]> for ContractId
§fn from(bytes: [u8; 32]) -> ContractId
fn from(bytes: [u8; 32]) -> ContractId
§impl From<ContractId> for [u8; 32]
impl From<ContractId> for [u8; 32]
§fn from(salt: ContractId) -> [u8; 32]
fn from(salt: ContractId) -> [u8; 32]
§impl FromStr for ContractId
impl FromStr for ContractId
§impl Hash for ContractId
impl Hash for ContractId
§impl LowerHex for ContractId
impl LowerHex for ContractId
§impl Ord for ContractId
impl Ord for ContractId
§impl PartialEq<ContractId> for ContractId
impl PartialEq<ContractId> for ContractId
§fn eq(&self, other: &ContractId) -> bool
fn eq(&self, other: &ContractId) -> bool
self
and other
values to be equal, and is used
by ==
.§impl PartialOrd<ContractId> for ContractId
impl PartialOrd<ContractId> for ContractId
§fn partial_cmp(&self, other: &ContractId) -> Option<Ordering>
fn partial_cmp(&self, other: &ContractId) -> 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 ContractId
impl Serialize for ContractId
§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 ContractId
impl TryFrom<&[u8]> for ContractId
§type Error = TryFromSliceError
type Error = TryFromSliceError
§fn try_from(bytes: &[u8]) -> Result<ContractId, TryFromSliceError>
fn try_from(bytes: &[u8]) -> Result<ContractId, TryFromSliceError>
§impl UpperHex for ContractId
impl UpperHex for ContractId
impl Copy for ContractId
impl Eq for ContractId
impl StructuralEq for ContractId
impl StructuralPartialEq for ContractId
Auto Trait Implementations§
impl RefUnwindSafe for ContractId
impl Send for ContractId
impl Sync for ContractId
impl Unpin for ContractId
impl UnwindSafe for ContractId
Blanket Implementations§
§impl<T> Base32Len for Twhere
T: AsRef<[u8]>,
impl<T> Base32Len for Twhere
T: AsRef<[u8]>,
§fn base32_len(&self) -> usize
fn base32_len(&self) -> usize
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<'a, T> StorageAsMut for T
impl<'a, T> StorageAsMut for T
§impl<'a, T> StorageAsRef for T
impl<'a, T> StorageAsRef for T
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
)