pub struct SubgraphId(/* private fields */);Expand description
A Subgraph ID is a 32-byte identifier for a subgraph.
§Generating test data
The SubgraphId type implements the fake crate’s fake::Dummy trait, allowing you to
generate random SubgraphId values for testing.
Note that the fake feature must be enabled to use this functionality.
See the Dummy trait impl for usage examples.
Implementations§
Source§impl SubgraphId
 
impl SubgraphId
Sourcepub const ZERO: Self = _
 
pub const ZERO: Self = _
The “zero” SubgraphId.
This is a constant value that represents the zero ID. It is equivalent to parsing a zeroed 32-byte array.
Sourcepub const fn new(value: B256) -> Self
 
pub const fn new(value: B256) -> Self
Create a new SubgraphId.
Sourcepub fn as_bytes(&self) -> &[u8; 32]
 
pub fn as_bytes(&self) -> &[u8; 32]
Get the bytes of the SubgraphId as a slice.
Methods from Deref<Target = B256>§
pub const ZERO: FixedBytes<N> = _
Sourcepub fn as_slice(&self) -> &[u8] ⓘ
 
pub fn as_slice(&self) -> &[u8] ⓘ
Returns a slice containing the entire array. Equivalent to &s[..].
Sourcepub fn covers(&self, other: &FixedBytes<N>) -> bool
 
pub fn covers(&self, other: &FixedBytes<N>) -> bool
Returns true if all bits set in self are also set in b.
Sourcepub fn const_eq(&self, other: &FixedBytes<N>) -> bool
 
pub fn const_eq(&self, other: &FixedBytes<N>) -> bool
Compile-time equality. NOT constant-time equality.
Sourcepub fn const_is_zero(&self) -> bool
 
pub fn const_is_zero(&self) -> bool
Returns true if no bits are set.
Methods from Deref<Target = [u8; N]>§
Sourcepub fn as_ascii(&self) -> Option<&[AsciiChar; N]>
 🔬This is a nightly-only experimental API. (ascii_char)
pub fn as_ascii(&self) -> Option<&[AsciiChar; N]>
ascii_char)Converts this array of bytes into an array of ASCII characters,
or returns None if any of the characters is non-ASCII.
§Examples
#![feature(ascii_char)]
const HEX_DIGITS: [std::ascii::Char; 16] =
    *b"0123456789abcdef".as_ascii().unwrap();
assert_eq!(HEX_DIGITS[1].as_str(), "1");
assert_eq!(HEX_DIGITS[10].as_str(), "a");Sourcepub unsafe fn as_ascii_unchecked(&self) -> &[AsciiChar; N]
 🔬This is a nightly-only experimental API. (ascii_char)
pub unsafe fn as_ascii_unchecked(&self) -> &[AsciiChar; N]
ascii_char)Converts this array of bytes into an array of ASCII characters, without checking whether they’re valid.
§Safety
Every byte in the array must be in 0..=127, or else this is UB.
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[..].
1.77.0 · Sourcepub fn each_ref(&self) -> [&T; N]
 
pub fn each_ref(&self) -> [&T; N]
Borrows each element and returns an array of references with the same
size as self.
§Example
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.
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);1.77.0 · Sourcepub fn each_mut(&mut self) -> [&mut T; N]
 
pub fn each_mut(&mut self) -> [&mut T; N]
Borrows each element mutably and returns an array of mutable references
with the same size as self.
§Example
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§
Source§impl AsRef<[u8]> for SubgraphId
 
impl AsRef<[u8]> for SubgraphId
Source§impl AsRef<FixedBytes<32>> for SubgraphId
 
impl AsRef<FixedBytes<32>> for SubgraphId
Source§impl Borrow<[u8]> for SubgraphId
 
impl Borrow<[u8]> for SubgraphId
Source§impl Clone for SubgraphId
 
impl Clone for SubgraphId
Source§fn clone(&self) -> SubgraphId
 
fn clone(&self) -> SubgraphId
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SubgraphId
 
impl Debug for SubgraphId
Source§impl Deref for SubgraphId
 
impl Deref for SubgraphId
Source§impl<'de> Deserialize<'de> for SubgraphId
 
impl<'de> Deserialize<'de> for SubgraphId
Source§fn deserialize<__D>(deserializer: __D) -> Result<Self, __D::Error>where
    __D: Deserializer<'de>,
 
fn deserialize<__D>(deserializer: __D) -> Result<Self, __D::Error>where
    __D: Deserializer<'de>,
Source§impl Display for SubgraphId
 
impl Display for SubgraphId
Source§impl Dummy<Faker> for SubgraphId
 
impl Dummy<Faker> for SubgraphId
To use the fake crate to generate random SubgraphId values, the fake feature must
be enabled.
let subgraph_id = fake::Faker.fake::<SubgraphId>();
println!("SubgraphId: {}", subgraph_id);Source§impl From<&SubgraphId> for B256
 
impl From<&SubgraphId> for B256
Source§fn from(id: &SubgraphId) -> Self
 
fn from(id: &SubgraphId) -> Self
Source§impl From<FixedBytes<32>> for SubgraphId
 
impl From<FixedBytes<32>> for SubgraphId
Source§impl From<SubgraphId> for B256
 
impl From<SubgraphId> for B256
Source§fn from(id: SubgraphId) -> Self
 
fn from(id: SubgraphId) -> Self
Source§impl FromStr for SubgraphId
 
impl FromStr for SubgraphId
Source§impl Hash for SubgraphId
 
impl Hash for SubgraphId
Source§impl Ord for SubgraphId
 
impl Ord for SubgraphId
Source§fn cmp(&self, other: &SubgraphId) -> Ordering
 
fn cmp(&self, other: &SubgraphId) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
    Self: Sized,
 
fn max(self, other: Self) -> Selfwhere
    Self: Sized,
Source§impl PartialEq for SubgraphId
 
impl PartialEq for SubgraphId
Source§impl PartialOrd for SubgraphId
 
impl PartialOrd for SubgraphId
Source§impl Serialize for SubgraphIdwhere
    Self: Display,
 
impl Serialize for SubgraphIdwhere
    Self: Display,
Source§impl<'a> TryFrom<&'a [u8]> for SubgraphId
 
impl<'a> TryFrom<&'a [u8]> for SubgraphId
impl Copy for SubgraphId
impl Eq for SubgraphId
impl StructuralPartialEq for SubgraphId
Auto Trait Implementations§
impl Freeze for SubgraphId
impl RefUnwindSafe for SubgraphId
impl Send for SubgraphId
impl Sync for SubgraphId
impl Unpin for SubgraphId
impl UnwindSafe for SubgraphId
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
    T: Clone,
 
impl<T> CloneToUninit for Twhere
    T: Clone,
Source§impl<Q, K> Comparable<K> for Q
 
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
 
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
 
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
 
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
 
impl<Q, K> Equivalent<K> for Q
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>
Source§impl<T> IntoEither for T
 
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
 
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
 
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> ToHex for T
 
impl<T> ToHex for T
Source§fn encode_hex<U>(&self) -> Uwhere
    U: FromIterator<char>,
 
fn encode_hex<U>(&self) -> Uwhere
    U: FromIterator<char>,
ToHexExt insteadself 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>,
ToHexExt insteadself into the result.
Upper case letters are used (e.g. F9B4CA).Source§impl<T> ToHex for T
 
impl<T> ToHex for T
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)Source§impl<T> ToHexExt for T
 
impl<T> ToHexExt for T
Source§fn encode_hex(&self) -> String
 
fn encode_hex(&self) -> String
self into the result.
Lower case letters are used (e.g. f9b4ca).Source§fn encode_hex_upper(&self) -> String
 
fn encode_hex_upper(&self) -> String
self into the result.
Upper case letters are used (e.g. F9B4CA).Source§fn encode_hex_with_prefix(&self) -> String
 
fn encode_hex_with_prefix(&self) -> String
self into the result with prefix 0x.
Lower case letters are used (e.g. 0xf9b4ca).Source§fn encode_hex_upper_with_prefix(&self) -> String
 
fn encode_hex_upper_with_prefix(&self) -> String
self into the result with prefix 0X.
Upper case letters are used (e.g. 0xF9B4CA).