diff --git a/hotshot_query_service/all.html b/hotshot_query_service/all.html index a36427522..b81f0c88f 100644 --- a/hotshot_query_service/all.html +++ b/hotshot_query_service/all.html @@ -1 +1 @@ -List of all items in this crate

List of all items

Structs

Enums

Traits

Macros

Functions

Type Aliases

Constants

\ No newline at end of file +List of all items in this crate

List of all items

Structs

Enums

Traits

Macros

Functions

Type Aliases

Constants

\ No newline at end of file diff --git a/hotshot_query_service/availability/enum.BlockId.html b/hotshot_query_service/availability/enum.BlockId.html index 2b12e9486..fb7bc2dcd 100644 --- a/hotshot_query_service/availability/enum.BlockId.html +++ b/hotshot_query_service/availability/enum.BlockId.html @@ -1,18 +1,18 @@ -BlockId in hotshot_query_service::availability - Rust

Enum hotshot_query_service::availability::BlockId

source ·
pub enum BlockId<Types: NodeType> {
+BlockId in hotshot_query_service::availability - Rust

Enum hotshot_query_service::availability::BlockId

source ·
pub enum BlockId<Types: NodeType> {
     Number(usize),
     Hash(BlockHash<Types>),
     PayloadHash(VidCommitment),
-}

Variants§

§

Number(usize)

§

Hash(BlockHash<Types>)

§

PayloadHash(VidCommitment)

Trait Implementations§

source§

impl<Types: NodeType> Clone for BlockId<Types>

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<Types: NodeType> Debug for BlockId<Types>

source§

fn fmt(&self, __f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<Types: NodeType> Display for BlockId<Types>

source§

fn fmt(&self, _derive_more_display_formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<Types: NodeType> From<Commitment<<Types as NodeType>::BlockHeader>> for BlockId<Types>

source§

fn from(original: BlockHash<Types>) -> BlockId<Types>

Converts to this type from the input type.
source§

impl<Types: NodeType> From<usize> for BlockId<Types>

source§

fn from(original: usize) -> BlockId<Types>

Converts to this type from the input type.
source§

impl<Types: NodeType> Hash for BlockId<Types>

source§

fn hash<__HTypes>(&self, __state: &mut __HTypes)
where +}

Variants§

§

Number(usize)

§

Hash(BlockHash<Types>)

§

PayloadHash(VidCommitment)

Trait Implementations§

source§

impl<Types: NodeType> Clone for BlockId<Types>

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<Types: NodeType> Debug for BlockId<Types>

source§

fn fmt(&self, __f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<Types: NodeType> Display for BlockId<Types>

source§

fn fmt(&self, _derive_more_display_formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<Types: NodeType> From<Commitment<<Types as NodeType>::BlockHeader>> for BlockId<Types>

source§

fn from(original: BlockHash<Types>) -> BlockId<Types>

Converts to this type from the input type.
source§

impl<Types: NodeType> From<usize> for BlockId<Types>

source§

fn from(original: usize) -> BlockId<Types>

Converts to this type from the input type.
source§

impl<Types: NodeType> Hash for BlockId<Types>

source§

fn hash<__HTypes>(&self, __state: &mut __HTypes)
where __HTypes: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl<Types: NodeType> Ord for BlockId<Types>

source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl<Types: NodeType> Ord for BlockId<Types>

source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where - Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl<Types: NodeType> PartialEq for BlockId<Types>

source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
source§

impl<Types: NodeType> PartialOrd for BlockId<Types>

source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the + Self: Sized + PartialOrd,
Restrict a value to a certain interval. Read more
source§

impl<Types: NodeType> PartialEq for BlockId<Types>

source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
source§

impl<Types: NodeType> PartialOrd for BlockId<Types>

source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by -the >= operator. Read more
source§

impl<Types: NodeType> Copy for BlockId<Types>

source§

impl<Types: NodeType> Eq for BlockId<Types>

Auto Trait Implementations§

§

impl<Types> Freeze for BlockId<Types>

§

impl<Types> RefUnwindSafe for BlockId<Types>

§

impl<Types> Send for BlockId<Types>

§

impl<Types> Sync for BlockId<Types>

§

impl<Types> Unpin for BlockId<Types>

§

impl<Types> UnwindSafe for BlockId<Types>

Blanket Implementations§

source§

impl<T> Any for T
where +the >= operator. Read more

source§

impl<Types: NodeType> Copy for BlockId<Types>

source§

impl<Types: NodeType> Eq for BlockId<Types>

Auto Trait Implementations§

§

impl<Types> Freeze for BlockId<Types>

§

impl<Types> RefUnwindSafe for BlockId<Types>

§

impl<Types> Send for BlockId<Types>

§

impl<Types> Sync for BlockId<Types>

§

impl<Types> Unpin for BlockId<Types>

§

impl<Types> UnwindSafe for BlockId<Types>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> ArchivePointee for T

§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where diff --git a/hotshot_query_service/availability/enum.LeafId.html b/hotshot_query_service/availability/enum.LeafId.html index b5b2f2aba..b8b198952 100644 --- a/hotshot_query_service/availability/enum.LeafId.html +++ b/hotshot_query_service/availability/enum.LeafId.html @@ -1,17 +1,17 @@ -LeafId in hotshot_query_service::availability - Rust

Enum hotshot_query_service::availability::LeafId

source ·
pub enum LeafId<Types: NodeType> {
+LeafId in hotshot_query_service::availability - Rust

Enum hotshot_query_service::availability::LeafId

source ·
pub enum LeafId<Types: NodeType> {
     Number(usize),
     Hash(LeafHash<Types>),
-}

Variants§

§

Number(usize)

§

Hash(LeafHash<Types>)

Trait Implementations§

source§

impl<Types: NodeType> Clone for LeafId<Types>

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<Types: NodeType> Debug for LeafId<Types>

source§

fn fmt(&self, __f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<Types: NodeType> Display for LeafId<Types>

source§

fn fmt(&self, _derive_more_display_formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<Types: NodeType> From<Commitment<Leaf<Types>>> for LeafId<Types>

source§

fn from(original: LeafHash<Types>) -> LeafId<Types>

Converts to this type from the input type.
source§

impl<Types: NodeType> From<usize> for LeafId<Types>

source§

fn from(original: usize) -> LeafId<Types>

Converts to this type from the input type.
source§

impl<Types: NodeType> Hash for LeafId<Types>

source§

fn hash<__HTypes>(&self, __state: &mut __HTypes)
where +}

Variants§

§

Number(usize)

§

Hash(LeafHash<Types>)

Trait Implementations§

source§

impl<Types: NodeType> Clone for LeafId<Types>

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<Types: NodeType> Debug for LeafId<Types>

source§

fn fmt(&self, __f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<Types: NodeType> Display for LeafId<Types>

source§

fn fmt(&self, _derive_more_display_formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<Types: NodeType> From<Commitment<Leaf<Types>>> for LeafId<Types>

source§

fn from(original: LeafHash<Types>) -> LeafId<Types>

Converts to this type from the input type.
source§

impl<Types: NodeType> From<usize> for LeafId<Types>

source§

fn from(original: usize) -> LeafId<Types>

Converts to this type from the input type.
source§

impl<Types: NodeType> Hash for LeafId<Types>

source§

fn hash<__HTypes>(&self, __state: &mut __HTypes)
where __HTypes: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl<Types: NodeType> Ord for LeafId<Types>

source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl<Types: NodeType> Ord for LeafId<Types>

source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where - Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl<Types: NodeType> PartialEq for LeafId<Types>

source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
source§

impl<Types: NodeType> PartialOrd for LeafId<Types>

source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the + Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl<Types: NodeType> PartialEq for LeafId<Types>

source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
source§

impl<Types: NodeType> PartialOrd for LeafId<Types>

source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by -the >= operator. Read more
source§

impl<Types: NodeType> Copy for LeafId<Types>

source§

impl<Types: NodeType> Eq for LeafId<Types>

Auto Trait Implementations§

§

impl<Types> Freeze for LeafId<Types>

§

impl<Types> RefUnwindSafe for LeafId<Types>

§

impl<Types> Send for LeafId<Types>

§

impl<Types> Sync for LeafId<Types>

§

impl<Types> Unpin for LeafId<Types>

§

impl<Types> UnwindSafe for LeafId<Types>

Blanket Implementations§

source§

impl<T> Any for T
where +the >= operator. Read more

source§

impl<Types: NodeType> Copy for LeafId<Types>

source§

impl<Types: NodeType> Eq for LeafId<Types>

Auto Trait Implementations§

§

impl<Types> Freeze for LeafId<Types>

§

impl<Types> RefUnwindSafe for LeafId<Types>

§

impl<Types> Send for LeafId<Types>

§

impl<Types> Sync for LeafId<Types>

§

impl<Types> Unpin for LeafId<Types>

§

impl<Types> UnwindSafe for LeafId<Types>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> ArchivePointee for T

§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where diff --git a/hotshot_query_service/availability/index.html b/hotshot_query_service/availability/index.html index 8dc69b3fc..cb618e5cb 100644 --- a/hotshot_query_service/availability/index.html +++ b/hotshot_query_service/availability/index.html @@ -11,4 +11,4 @@ consensus and uncommitted state, try the status API. For information about the chain which is tabulated by this specific node and not subject to full consensus agreement, try the node API.

-

Structs§

Enums§

Traits§

Functions§

Type Aliases§

\ No newline at end of file +

Structs§

Enums§

Traits§

Functions§

Type Aliases§

\ No newline at end of file diff --git a/hotshot_query_service/availability/query_data/struct.PayloadMetadata.html b/hotshot_query_service/availability/query_data/struct.PayloadMetadata.html new file mode 100644 index 000000000..71e427ca4 --- /dev/null +++ b/hotshot_query_service/availability/query_data/struct.PayloadMetadata.html @@ -0,0 +1,11 @@ + + + + + Redirection + + +

Redirecting to ../../../hotshot_query_service/availability/struct.PayloadMetadata.html...

+ + + \ No newline at end of file diff --git a/hotshot_query_service/availability/query_data/struct.VidCommonMetadata.html b/hotshot_query_service/availability/query_data/struct.VidCommonMetadata.html new file mode 100644 index 000000000..d74cab81c --- /dev/null +++ b/hotshot_query_service/availability/query_data/struct.VidCommonMetadata.html @@ -0,0 +1,11 @@ + + + + + Redirection + + +

Redirecting to ../../../hotshot_query_service/availability/struct.VidCommonMetadata.html...

+ + + \ No newline at end of file diff --git a/hotshot_query_service/availability/sidebar-items.js b/hotshot_query_service/availability/sidebar-items.js index 900e1d8ff..52abca86c 100644 --- a/hotshot_query_service/availability/sidebar-items.js +++ b/hotshot_query_service/availability/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"enum":["BlockId","Error","Fetch","LeafId"],"fn":["define_api"],"struct":["BlockInfo","BlockQueryData","BlockSummaryQueryData","CustomSnafu","FetchBlockSnafu","FetchLeafSnafu","FetchTransactionSnafu","InconsistentLeafError","InvalidTransactionIndexSnafu","LeafQueryData","Options","PayloadQueryData","RequestSnafu","TransactionQueryData","TransactionSummaryQueryData","VidCommonQueryData"],"trait":["AvailabilityDataSource","QueryableHeader","QueryablePayload","UpdateAvailabilityData"],"type":["BlockHash","LeafHash","Timestamp","TransactionHash","TransactionInclusionProof","TransactionIndex"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"enum":["BlockId","Error","Fetch","LeafId"],"fn":["define_api"],"struct":["BlockInfo","BlockQueryData","BlockSummaryQueryData","CustomSnafu","FetchBlockSnafu","FetchLeafSnafu","FetchTransactionSnafu","InconsistentLeafError","InvalidTransactionIndexSnafu","LeafQueryData","Options","PayloadMetadata","PayloadQueryData","RequestSnafu","TransactionQueryData","TransactionSummaryQueryData","VidCommonMetadata","VidCommonQueryData"],"trait":["AvailabilityDataSource","QueryableHeader","QueryablePayload","UpdateAvailabilityData"],"type":["BlockHash","LeafHash","Timestamp","TransactionHash","TransactionInclusionProof","TransactionIndex"]}; \ No newline at end of file diff --git a/hotshot_query_service/availability/struct.BlockInfo.html b/hotshot_query_service/availability/struct.BlockInfo.html index 2b391e2be..2ac3f0d06 100644 --- a/hotshot_query_service/availability/struct.BlockInfo.html +++ b/hotshot_query_service/availability/struct.BlockInfo.html @@ -1,4 +1,4 @@ -BlockInfo in hotshot_query_service::availability - Rust

Struct hotshot_query_service::availability::BlockInfo

source ·
pub struct BlockInfo<Types: NodeType> {
+BlockInfo in hotshot_query_service::availability - Rust

Struct hotshot_query_service::availability::BlockInfo

source ·
pub struct BlockInfo<Types: NodeType> {
     pub leaf: LeafQueryData<Types>,
     pub block: Option<BlockQueryData<Types>>,
     pub vid_common: Option<VidCommonQueryData<Types>>,
@@ -12,12 +12,12 @@
 
  • VID common and a unique VID share, which may be missing if this node did not receive a VID share for this block
  • -

    Fields§

    §leaf: LeafQueryData<Types>§block: Option<BlockQueryData<Types>>§vid_common: Option<VidCommonQueryData<Types>>§vid_share: Option<VidShare>

    Implementations§

    source§

    impl<Types: NodeType> BlockInfo<Types>

    source

    pub fn new( +

    Fields§

    §leaf: LeafQueryData<Types>§block: Option<BlockQueryData<Types>>§vid_common: Option<VidCommonQueryData<Types>>§vid_share: Option<VidShare>

    Implementations§

    source§

    impl<Types: NodeType> BlockInfo<Types>

    source

    pub fn new( leaf: LeafQueryData<Types>, block: Option<BlockQueryData<Types>>, vid_common: Option<VidCommonQueryData<Types>>, vid_share: Option<VidShare>, -) -> Self

    Trait Implementations§

    source§

    impl<Types: Clone + NodeType> Clone for BlockInfo<Types>

    source§

    fn clone(&self) -> BlockInfo<Types>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<Types: Debug + NodeType> Debug for BlockInfo<Types>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<Types: NodeType> From<LeafQueryData<Types>> for BlockInfo<Types>

    source§

    fn from(leaf: LeafQueryData<Types>) -> Self

    Converts to this type from the input type.
    source§

    impl<Types: NodeType> HeightIndexed for BlockInfo<Types>

    source§

    fn height(&self) -> u64

    Auto Trait Implementations§

    §

    impl<Types> Freeze for BlockInfo<Types>
    where +) -> Self

    Trait Implementations§

    source§

    impl<Types: Clone + NodeType> Clone for BlockInfo<Types>

    source§

    fn clone(&self) -> BlockInfo<Types>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<Types: Debug + NodeType> Debug for BlockInfo<Types>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<Types: NodeType> From<LeafQueryData<Types>> for BlockInfo<Types>

    source§

    fn from(leaf: LeafQueryData<Types>) -> Self

    Converts to this type from the input type.
    source§

    impl<Types: NodeType> HeightIndexed for BlockInfo<Types>

    source§

    fn height(&self) -> u64

    Auto Trait Implementations§

    §

    impl<Types> Freeze for BlockInfo<Types>
    where <Types as NodeType>::View: Freeze, <Types as NodeType>::BlockHeader: Freeze, <Types as NodeType>::BlockPayload: Freeze, diff --git a/hotshot_query_service/availability/struct.BlockQueryData.html b/hotshot_query_service/availability/struct.BlockQueryData.html index 063b66bcc..5e035c19e 100644 --- a/hotshot_query_service/availability/struct.BlockQueryData.html +++ b/hotshot_query_service/availability/struct.BlockQueryData.html @@ -1,4 +1,4 @@ -BlockQueryData in hotshot_query_service::availability - Rust
    pub struct BlockQueryData<Types: NodeType> { /* private fields */ }

    Implementations§

    source§

    impl<Types: NodeType> BlockQueryData<Types>

    source

    pub fn new(header: Header<Types>, payload: Payload<Types>) -> Self
    where +BlockQueryData in hotshot_query_service::availability - Rust
    pub struct BlockQueryData<Types: NodeType> { /* private fields */ }

    Implementations§

    source§

    impl<Types: NodeType> BlockQueryData<Types>

    source

    pub fn new(header: Header<Types>, payload: Payload<Types>) -> Self
    where Payload<Types>: QueryablePayload<Types>,

    source

    pub async fn genesis( validated_state: &Types::ValidatedState, instance_state: &Types::InstanceState, @@ -14,9 +14,10 @@ &self, ) -> impl '_ + Iterator<Item = (TransactionIndex<Types>, Transaction<Types>)>

    Trait Implementations§

    source§

    impl<Types: Clone + NodeType> Clone for BlockQueryData<Types>

    source§

    fn clone(&self) -> BlockQueryData<Types>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<Types: Debug + NodeType> Debug for BlockQueryData<Types>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de, Types: NodeType> Deserialize<'de> for BlockQueryData<Types>

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl<Types: NodeType> From<BlockQueryData<Types>> for BlockSummaryQueryData<Types>
    where - Payload<Types>: QueryablePayload<Types>,

    source§

    fn from(value: BlockQueryData<Types>) -> Self

    Converts to this type from the input type.
    source§

    impl<Types: NodeType> From<BlockQueryData<Types>> for PayloadQueryData<Types>

    source§

    fn from(block: BlockQueryData<Types>) -> Self

    Converts to this type from the input type.
    source§

    impl<'r, Types> FromRow<'r, <Postgres as Database>::Row> for BlockQueryData<Types>
    where + Payload<Types>: QueryablePayload<Types>,

    source§

    fn from(value: BlockQueryData<Types>) -> Self

    Converts to this type from the input type.
    source§

    impl<Types> From<BlockQueryData<Types>> for PayloadMetadata<Types>
    where + Types: NodeType,

    source§

    fn from(block: BlockQueryData<Types>) -> Self

    Converts to this type from the input type.
    source§

    impl<Types: NodeType> From<BlockQueryData<Types>> for PayloadQueryData<Types>

    source§

    fn from(block: BlockQueryData<Types>) -> Self

    Converts to this type from the input type.
    source§

    impl<'r, Types> FromRow<'r, <Postgres as Database>::Row> for BlockQueryData<Types>
    where Types: NodeType, - Payload<Types>: QueryablePayload<Types>,

    source§

    fn from_row(row: &'r <Db as Database>::Row) -> Result<Self>

    source§

    impl<Types: NodeType> HeightIndexed for BlockQueryData<Types>

    source§

    fn height(&self) -> u64

    source§

    impl<Types: PartialEq + NodeType> PartialEq for BlockQueryData<Types>

    source§

    fn eq(&self, other: &BlockQueryData<Types>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, + Payload<Types>: QueryablePayload<Types>,

    source§

    fn from_row(row: &'r <Db as Database>::Row) -> Result<Self>

    source§

    impl<Types: NodeType> HeightIndexed for BlockQueryData<Types>

    source§

    fn height(&self) -> u64

    source§

    impl<Types: PartialEq + NodeType> PartialEq for BlockQueryData<Types>

    source§

    fn eq(&self, other: &BlockQueryData<Types>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
    source§

    impl<Types: NodeType> Serialize for BlockQueryData<Types>

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl<Types: NodeType> TryFrom<BlockQueryData<Types>> for BlockDetail<Types>
    where BlockQueryData<Types>: HeightIndexed, @@ -75,7 +76,7 @@ Debug-formatted.

    §

    fn fmt_upper_hex(self) -> FmtUpperHex<Self>
    where Self: UpperHex,

    Causes self to use its UpperHex implementation when Debug-formatted.
    §

    fn fmt_list(self) -> FmtList<Self>
    where - &'a Self: for<'a> IntoIterator,

    Formats each item in a sequence. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    + &'a Self: for<'a> IntoIterator,

    Formats each item in a sequence. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where diff --git a/hotshot_query_service/availability/struct.LeafQueryData.html b/hotshot_query_service/availability/struct.LeafQueryData.html index 782c917cd..80b2e0a73 100644 --- a/hotshot_query_service/availability/struct.LeafQueryData.html +++ b/hotshot_query_service/availability/struct.LeafQueryData.html @@ -9,8 +9,8 @@
    §Errors
    validated_state: &Types::ValidatedState, instance_state: &Types::InstanceState, ) -> Self

    source

    pub fn leaf(&self) -> &Leaf<Types>

    source

    pub fn qc(&self) -> &QuorumCertificate<Types>

    source

    pub fn header(&self) -> &Header<Types>

    source

    pub fn hash(&self) -> LeafHash<Types>

    source

    pub fn block_hash(&self) -> BlockHash<Types>

    source

    pub fn payload_hash(&self) -> VidCommitment

    Trait Implementations§

    source§

    impl<Types: Clone + NodeType> Clone for LeafQueryData<Types>

    source§

    fn clone(&self) -> LeafQueryData<Types>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<Types: Debug + NodeType> Debug for LeafQueryData<Types>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de, Types: NodeType> Deserialize<'de> for LeafQueryData<Types>

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl<Types: NodeType> From<LeafQueryData<Types>> for BlockInfo<Types>

    source§

    fn from(leaf: LeafQueryData<Types>) -> Self

    Converts to this type from the input type.
    source§

    impl<'r, Types> FromRow<'r, <Postgres as Database>::Row> for LeafQueryData<Types>
    where - Types: NodeType,

    source§

    fn from_row(row: &'r <Db as Database>::Row) -> Result<Self>

    source§

    impl<Types: NodeType> HeightIndexed for LeafQueryData<Types>

    source§

    fn height(&self) -> u64

    source§

    impl<Types: PartialEq + NodeType> PartialEq for LeafQueryData<Types>

    source§

    fn eq(&self, other: &LeafQueryData<Types>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, + __D: Deserializer<'de>,
    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl<Types: NodeType> From<LeafQueryData<Types>> for BlockInfo<Types>

    source§

    fn from(leaf: LeafQueryData<Types>) -> Self

    Converts to this type from the input type.
    source§

    impl<'r, Types> FromRow<'r, <Postgres as Database>::Row> for LeafQueryData<Types>
    where + Types: NodeType,

    source§

    fn from_row(row: &'r <Db as Database>::Row) -> Result<Self>

    source§

    impl<Types: NodeType> HeightIndexed for LeafQueryData<Types>

    source§

    fn height(&self) -> u64

    source§

    impl<Types: PartialEq + NodeType> PartialEq for LeafQueryData<Types>

    source§

    fn eq(&self, other: &LeafQueryData<Types>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
    source§

    impl<Types: NodeType> Serialize for LeafQueryData<Types>

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl<Types: Eq + NodeType> Eq for LeafQueryData<Types>

    source§

    impl<Types: NodeType> StructuralPartialEq for LeafQueryData<Types>

    Auto Trait Implementations§

    §

    impl<Types> Freeze for LeafQueryData<Types>
    where <Types as NodeType>::View: Freeze, diff --git a/hotshot_query_service/availability/struct.PayloadMetadata.html b/hotshot_query_service/availability/struct.PayloadMetadata.html new file mode 100644 index 000000000..29b094cc5 --- /dev/null +++ b/hotshot_query_service/availability/struct.PayloadMetadata.html @@ -0,0 +1,148 @@ +PayloadMetadata in hotshot_query_service::availability - Rust
    pub struct PayloadMetadata<Types>
    where + Types: NodeType,
    { + pub height: u64, + pub block_hash: BlockHash<Types>, + pub hash: VidCommitment, + pub size: u64, + pub num_transactions: u64, +}
    Expand description

    A summary of a payload without all the data.

    +

    This type is useful when you only want information about a payload, such as its size or +transaction count, but you don’t want to load the entire payload, which might be very large.

    +

    Fields§

    §height: u64§block_hash: BlockHash<Types>§hash: VidCommitment§size: u64§num_transactions: u64

    Trait Implementations§

    source§

    impl<Types> Clone for PayloadMetadata<Types>
    where + Types: NodeType + Clone,

    source§

    fn clone(&self) -> PayloadMetadata<Types>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<Types> Debug for PayloadMetadata<Types>
    where + Types: NodeType + Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<Types> From<BlockQueryData<Types>> for PayloadMetadata<Types>
    where + Types: NodeType,

    source§

    fn from(block: BlockQueryData<Types>) -> Self

    Converts to this type from the input type.
    source§

    impl<'r, Types> FromRow<'r, <Postgres as Database>::Row> for PayloadMetadata<Types>
    where + Types: NodeType,

    source§

    fn from_row(row: &'r <Db as Database>::Row) -> Result<Self>

    source§

    impl<Types> HeightIndexed for PayloadMetadata<Types>
    where + Types: NodeType,

    source§

    fn height(&self) -> u64

    source§

    impl<Types> PartialEq for PayloadMetadata<Types>
    where + Types: NodeType + PartialEq,

    source§

    fn eq(&self, other: &PayloadMetadata<Types>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl<Types> Copy for PayloadMetadata<Types>
    where + Types: NodeType + Copy,

    source§

    impl<Types> Eq for PayloadMetadata<Types>
    where + Types: NodeType + Eq,

    source§

    impl<Types> StructuralPartialEq for PayloadMetadata<Types>
    where + Types: NodeType,

    Auto Trait Implementations§

    §

    impl<Types> Freeze for PayloadMetadata<Types>

    §

    impl<Types> RefUnwindSafe for PayloadMetadata<Types>

    §

    impl<Types> Send for PayloadMetadata<Types>

    §

    impl<Types> Sync for PayloadMetadata<Types>

    §

    impl<Types> Unpin for PayloadMetadata<Types>

    §

    impl<Types> UnwindSafe for PayloadMetadata<Types>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<T> ArchivePointee for T

    §

    type ArchivedMetadata = ()

    The archived version of the pointer metadata for this type.
    §

    fn pointer_metadata( + _: &<T as ArchivePointee>::ArchivedMetadata, +) -> <T as Pointee>::Metadata

    Converts some archived metadata to the pointer metadata for itself.
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where + T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where + T: 'a,

    §

    fn implicit( + self, + class: Class, + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>

    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Conv for T

    §

    fn conv<T>(self) -> T
    where + Self: Into<T>,

    Converts self into T using Into<T>. Read more
    §

    impl<F, W, T, D> Deserialize<With<T, W>, D> for F
    where + W: DeserializeWith<F, T, D>, + D: Fallible + ?Sized, + F: ?Sized,

    §

    fn deserialize( + &self, + deserializer: &mut D, +) -> Result<With<T, W>, <D as Fallible>::Error>

    Deserializes using the given deserializer
    source§

    impl<T> DynClone for T
    where + T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<T> FmtForward for T

    §

    fn fmt_binary(self) -> FmtBinary<Self>
    where + Self: Binary,

    Causes self to use its Binary implementation when Debug-formatted.
    §

    fn fmt_display(self) -> FmtDisplay<Self>
    where + Self: Display,

    Causes self to use its Display implementation when +Debug-formatted.
    §

    fn fmt_lower_exp(self) -> FmtLowerExp<Self>
    where + Self: LowerExp,

    Causes self to use its LowerExp implementation when +Debug-formatted.
    §

    fn fmt_lower_hex(self) -> FmtLowerHex<Self>
    where + Self: LowerHex,

    Causes self to use its LowerHex implementation when +Debug-formatted.
    §

    fn fmt_octal(self) -> FmtOctal<Self>
    where + Self: Octal,

    Causes self to use its Octal implementation when Debug-formatted.
    §

    fn fmt_pointer(self) -> FmtPointer<Self>
    where + Self: Pointer,

    Causes self to use its Pointer implementation when +Debug-formatted.
    §

    fn fmt_upper_exp(self) -> FmtUpperExp<Self>
    where + Self: UpperExp,

    Causes self to use its UpperExp implementation when +Debug-formatted.
    §

    fn fmt_upper_hex(self) -> FmtUpperHex<Self>
    where + Self: UpperHex,

    Causes self to use its UpperHex implementation when +Debug-formatted.
    §

    fn fmt_list(self) -> FmtList<Self>
    where + &'a Self: for<'a> IntoIterator,

    Formats each item in a sequence. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts 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 more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts 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 more
    §

    impl<T> LayoutRaw for T

    §

    fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

    Gets the layout of the type.
    §

    impl<T> Pipe for T
    where + T: ?Sized,

    §

    fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
    where + Self: Sized,

    Pipes by value. This is generally the method you want to use. Read more
    §

    fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
    where + R: 'a,

    Borrows self and passes that borrow into the pipe function. Read more
    §

    fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
    where + R: 'a,

    Mutably borrows self and passes that borrow into the pipe function. Read more
    §

    fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
    where + Self: Borrow<B>, + B: 'a + ?Sized, + R: 'a,

    Borrows self, then passes self.borrow() into the pipe function. Read more
    §

    fn pipe_borrow_mut<'a, B, R>( + &'a mut self, + func: impl FnOnce(&'a mut B) -> R, +) -> R
    where + Self: BorrowMut<B>, + B: 'a + ?Sized, + R: 'a,

    Mutably borrows self, then passes self.borrow_mut() into the pipe +function. Read more
    §

    fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
    where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

    Borrows self, then passes self.as_ref() into the pipe function.
    §

    fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
    where + Self: AsMut<U>, + U: 'a + ?Sized, + R: 'a,

    Mutably borrows self, then passes self.as_mut() into the pipe +function.
    §

    fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
    where + Self: Deref<Target = T>, + T: 'a + ?Sized, + R: 'a,

    Borrows self, then passes self.deref() into the pipe function.
    §

    fn pipe_deref_mut<'a, T, R>( + &'a mut self, + func: impl FnOnce(&'a mut T) -> R, +) -> R
    where + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, + R: 'a,

    Mutably borrows self, then passes self.deref_mut() into the pipe +function.
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    §

    impl<T> Pointee for T

    §

    type Metadata = ()

    The type for metadata in pointers and references to Self.
    source§

    impl<T> Same for T

    source§

    type Output = T

    Should always be Self
    §

    impl<T> Tap for T

    §

    fn tap(self, func: impl FnOnce(&Self)) -> Self

    Immutable access to a value. Read more
    §

    fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

    Mutable access to a value. Read more
    §

    fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
    where + Self: Borrow<B>, + B: ?Sized,

    Immutable access to the Borrow<B> of a value. Read more
    §

    fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
    where + Self: BorrowMut<B>, + B: ?Sized,

    Mutable access to the BorrowMut<B> of a value. Read more
    §

    fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
    where + Self: AsRef<R>, + R: ?Sized,

    Immutable access to the AsRef<R> view of a value. Read more
    §

    fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
    where + Self: AsMut<R>, + R: ?Sized,

    Mutable access to the AsMut<R> view of a value. Read more
    §

    fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
    where + Self: Deref<Target = T>, + T: ?Sized,

    Immutable access to the Deref::Target of a value. Read more
    §

    fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
    where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

    Mutable access to the Deref::Target of a value. Read more
    §

    fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

    Calls .tap() only in debug builds, and is erased in release builds.
    §

    fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

    Calls .tap_mut() only in debug builds, and is erased in release +builds.
    §

    fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
    where + Self: Borrow<B>, + B: ?Sized,

    Calls .tap_borrow() only in debug builds, and is erased in release +builds.
    §

    fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
    where + Self: BorrowMut<B>, + B: ?Sized,

    Calls .tap_borrow_mut() only in debug builds, and is erased in release +builds.
    §

    fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
    where + Self: AsRef<R>, + R: ?Sized,

    Calls .tap_ref() only in debug builds, and is erased in release +builds.
    §

    fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
    where + Self: AsMut<R>, + R: ?Sized,

    Calls .tap_ref_mut() only in debug builds, and is erased in release +builds.
    §

    fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
    where + Self: Deref<Target = T>, + T: ?Sized,

    Calls .tap_deref() only in debug builds, and is erased in release +builds.
    §

    fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
    where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

    Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    source§

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    §

    impl<T> TryConv for T

    §

    fn try_conv<T>(self) -> Result<T, Self::Error>
    where + Self: TryInto<T>,

    Attempts to convert self into T using TryInto<T>. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/hotshot_query_service/availability/struct.PayloadQueryData.html b/hotshot_query_service/availability/struct.PayloadQueryData.html index 6f2d211b8..ec3f4bc55 100644 --- a/hotshot_query_service/availability/struct.PayloadQueryData.html +++ b/hotshot_query_service/availability/struct.PayloadQueryData.html @@ -3,9 +3,9 @@ instance_state: &Types::InstanceState, ) -> Self
    where Payload<Types>: QueryablePayload<Types>,

    source

    pub fn hash(&self) -> VidCommitment

    source

    pub fn block_hash(&self) -> BlockHash<Types>

    source

    pub fn size(&self) -> u64

    source

    pub fn data(&self) -> &Payload<Types>

    Trait Implementations§

    source§

    impl<Types: Clone + NodeType> Clone for PayloadQueryData<Types>

    source§

    fn clone(&self) -> PayloadQueryData<Types>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<Types: Debug + NodeType> Debug for PayloadQueryData<Types>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de, Types: NodeType> Deserialize<'de> for PayloadQueryData<Types>

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl<Types: NodeType> From<BlockQueryData<Types>> for PayloadQueryData<Types>

    source§

    fn from(block: BlockQueryData<Types>) -> Self

    Converts to this type from the input type.
    source§

    impl<'r, Types> FromRow<'r, <Postgres as Database>::Row> for PayloadQueryData<Types>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl<Types: NodeType> From<BlockQueryData<Types>> for PayloadQueryData<Types>

    source§

    fn from(block: BlockQueryData<Types>) -> Self

    Converts to this type from the input type.
    source§

    impl<'r, Types> FromRow<'r, <Postgres as Database>::Row> for PayloadQueryData<Types>
    where Types: NodeType, - Payload<Types>: QueryablePayload<Types>,

    source§

    fn from_row(row: &'r <Db as Database>::Row) -> Result<Self>

    source§

    impl<Types: NodeType> HeightIndexed for PayloadQueryData<Types>

    source§

    fn height(&self) -> u64

    source§

    impl<Types: PartialEq + NodeType> PartialEq for PayloadQueryData<Types>

    source§

    fn eq(&self, other: &PayloadQueryData<Types>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, + Payload<Types>: QueryablePayload<Types>,
    source§

    fn from_row(row: &'r <Db as Database>::Row) -> Result<Self>

    source§

    impl<Types: NodeType> HeightIndexed for PayloadQueryData<Types>

    source§

    fn height(&self) -> u64

    source§

    impl<Types: PartialEq + NodeType> PartialEq for PayloadQueryData<Types>

    source§

    fn eq(&self, other: &PayloadQueryData<Types>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
    source§

    impl<Types: NodeType> Serialize for PayloadQueryData<Types>

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl<Types: Eq + NodeType> Eq for PayloadQueryData<Types>

    source§

    impl<Types: NodeType> StructuralPartialEq for PayloadQueryData<Types>

    Auto Trait Implementations§

    §

    impl<Types> Freeze for PayloadQueryData<Types>
    where <Types as NodeType>::BlockPayload: Freeze,

    §

    impl<Types> RefUnwindSafe for PayloadQueryData<Types>
    where diff --git a/hotshot_query_service/availability/struct.VidCommonMetadata.html b/hotshot_query_service/availability/struct.VidCommonMetadata.html new file mode 100644 index 000000000..de769cab4 --- /dev/null +++ b/hotshot_query_service/availability/struct.VidCommonMetadata.html @@ -0,0 +1,147 @@ +VidCommonMetadata in hotshot_query_service::availability - Rust
    pub struct VidCommonMetadata<Types>
    where + Types: NodeType,
    { + pub height: u64, + pub block_hash: BlockHash<Types>, + pub payload_hash: VidCommitment, +}
    Expand description

    A summary of a VID payload without all the data.

    +

    This is primarily useful when you want to check if a VID object exists, but not load the whole +object.

    +

    Fields§

    §height: u64§block_hash: BlockHash<Types>§payload_hash: VidCommitment

    Trait Implementations§

    source§

    impl<Types> Clone for VidCommonMetadata<Types>
    where + Types: NodeType + Clone,

    source§

    fn clone(&self) -> VidCommonMetadata<Types>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<Types> Debug for VidCommonMetadata<Types>
    where + Types: NodeType + Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<Types> From<VidCommonQueryData<Types>> for VidCommonMetadata<Types>
    where + Types: NodeType,

    source§

    fn from(common: VidCommonQueryData<Types>) -> Self

    Converts to this type from the input type.
    source§

    impl<'r, Types> FromRow<'r, <Postgres as Database>::Row> for VidCommonMetadata<Types>
    where + Types: NodeType, + Payload<Types>: QueryablePayload<Types>,

    source§

    fn from_row(row: &'r <Db as Database>::Row) -> Result<Self>

    source§

    impl<Types> HeightIndexed for VidCommonMetadata<Types>
    where + Types: NodeType,

    source§

    fn height(&self) -> u64

    source§

    impl<Types> PartialEq for VidCommonMetadata<Types>
    where + Types: NodeType + PartialEq,

    source§

    fn eq(&self, other: &VidCommonMetadata<Types>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl<Types> Copy for VidCommonMetadata<Types>
    where + Types: NodeType + Copy,

    source§

    impl<Types> Eq for VidCommonMetadata<Types>
    where + Types: NodeType + Eq,

    source§

    impl<Types> StructuralPartialEq for VidCommonMetadata<Types>
    where + Types: NodeType,

    Auto Trait Implementations§

    §

    impl<Types> Freeze for VidCommonMetadata<Types>

    §

    impl<Types> RefUnwindSafe for VidCommonMetadata<Types>

    §

    impl<Types> Send for VidCommonMetadata<Types>

    §

    impl<Types> Sync for VidCommonMetadata<Types>

    §

    impl<Types> Unpin for VidCommonMetadata<Types>

    §

    impl<Types> UnwindSafe for VidCommonMetadata<Types>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<T> ArchivePointee for T

    §

    type ArchivedMetadata = ()

    The archived version of the pointer metadata for this type.
    §

    fn pointer_metadata( + _: &<T as ArchivePointee>::ArchivedMetadata, +) -> <T as Pointee>::Metadata

    Converts some archived metadata to the pointer metadata for itself.
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where + T: 'a,

    §

    fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

    §

    impl<'a, T, E> AsTaggedImplicit<'a, E> for T
    where + T: 'a,

    §

    fn implicit( + self, + class: Class, + constructed: bool, + tag: u32, +) -> TaggedParser<'a, Implicit, Self, E>

    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Conv for T

    §

    fn conv<T>(self) -> T
    where + Self: Into<T>,

    Converts self into T using Into<T>. Read more
    §

    impl<F, W, T, D> Deserialize<With<T, W>, D> for F
    where + W: DeserializeWith<F, T, D>, + D: Fallible + ?Sized, + F: ?Sized,

    §

    fn deserialize( + &self, + deserializer: &mut D, +) -> Result<With<T, W>, <D as Fallible>::Error>

    Deserializes using the given deserializer
    source§

    impl<T> DynClone for T
    where + T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Compare self to key and return true if they are equal.
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<T> FmtForward for T

    §

    fn fmt_binary(self) -> FmtBinary<Self>
    where + Self: Binary,

    Causes self to use its Binary implementation when Debug-formatted.
    §

    fn fmt_display(self) -> FmtDisplay<Self>
    where + Self: Display,

    Causes self to use its Display implementation when +Debug-formatted.
    §

    fn fmt_lower_exp(self) -> FmtLowerExp<Self>
    where + Self: LowerExp,

    Causes self to use its LowerExp implementation when +Debug-formatted.
    §

    fn fmt_lower_hex(self) -> FmtLowerHex<Self>
    where + Self: LowerHex,

    Causes self to use its LowerHex implementation when +Debug-formatted.
    §

    fn fmt_octal(self) -> FmtOctal<Self>
    where + Self: Octal,

    Causes self to use its Octal implementation when Debug-formatted.
    §

    fn fmt_pointer(self) -> FmtPointer<Self>
    where + Self: Pointer,

    Causes self to use its Pointer implementation when +Debug-formatted.
    §

    fn fmt_upper_exp(self) -> FmtUpperExp<Self>
    where + Self: UpperExp,

    Causes self to use its UpperExp implementation when +Debug-formatted.
    §

    fn fmt_upper_hex(self) -> FmtUpperHex<Self>
    where + Self: UpperHex,

    Causes self to use its UpperHex implementation when +Debug-formatted.
    §

    fn fmt_list(self) -> FmtList<Self>
    where + &'a Self: for<'a> IntoIterator,

    Formats each item in a sequence. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an +Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts 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 more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where + F: FnOnce(&Self) -> bool,

    Converts 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 more
    §

    impl<T> LayoutRaw for T

    §

    fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

    Gets the layout of the type.
    §

    impl<T> Pipe for T
    where + T: ?Sized,

    §

    fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
    where + Self: Sized,

    Pipes by value. This is generally the method you want to use. Read more
    §

    fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
    where + R: 'a,

    Borrows self and passes that borrow into the pipe function. Read more
    §

    fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
    where + R: 'a,

    Mutably borrows self and passes that borrow into the pipe function. Read more
    §

    fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
    where + Self: Borrow<B>, + B: 'a + ?Sized, + R: 'a,

    Borrows self, then passes self.borrow() into the pipe function. Read more
    §

    fn pipe_borrow_mut<'a, B, R>( + &'a mut self, + func: impl FnOnce(&'a mut B) -> R, +) -> R
    where + Self: BorrowMut<B>, + B: 'a + ?Sized, + R: 'a,

    Mutably borrows self, then passes self.borrow_mut() into the pipe +function. Read more
    §

    fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
    where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

    Borrows self, then passes self.as_ref() into the pipe function.
    §

    fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
    where + Self: AsMut<U>, + U: 'a + ?Sized, + R: 'a,

    Mutably borrows self, then passes self.as_mut() into the pipe +function.
    §

    fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
    where + Self: Deref<Target = T>, + T: 'a + ?Sized, + R: 'a,

    Borrows self, then passes self.deref() into the pipe function.
    §

    fn pipe_deref_mut<'a, T, R>( + &'a mut self, + func: impl FnOnce(&'a mut T) -> R, +) -> R
    where + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, + R: 'a,

    Mutably borrows self, then passes self.deref_mut() into the pipe +function.
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    §

    impl<T> Pointee for T

    §

    type Metadata = ()

    The type for metadata in pointers and references to Self.
    source§

    impl<T> Same for T

    source§

    type Output = T

    Should always be Self
    §

    impl<T> Tap for T

    §

    fn tap(self, func: impl FnOnce(&Self)) -> Self

    Immutable access to a value. Read more
    §

    fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

    Mutable access to a value. Read more
    §

    fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
    where + Self: Borrow<B>, + B: ?Sized,

    Immutable access to the Borrow<B> of a value. Read more
    §

    fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
    where + Self: BorrowMut<B>, + B: ?Sized,

    Mutable access to the BorrowMut<B> of a value. Read more
    §

    fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
    where + Self: AsRef<R>, + R: ?Sized,

    Immutable access to the AsRef<R> view of a value. Read more
    §

    fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
    where + Self: AsMut<R>, + R: ?Sized,

    Mutable access to the AsMut<R> view of a value. Read more
    §

    fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
    where + Self: Deref<Target = T>, + T: ?Sized,

    Immutable access to the Deref::Target of a value. Read more
    §

    fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
    where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

    Mutable access to the Deref::Target of a value. Read more
    §

    fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

    Calls .tap() only in debug builds, and is erased in release builds.
    §

    fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

    Calls .tap_mut() only in debug builds, and is erased in release +builds.
    §

    fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
    where + Self: Borrow<B>, + B: ?Sized,

    Calls .tap_borrow() only in debug builds, and is erased in release +builds.
    §

    fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
    where + Self: BorrowMut<B>, + B: ?Sized,

    Calls .tap_borrow_mut() only in debug builds, and is erased in release +builds.
    §

    fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
    where + Self: AsRef<R>, + R: ?Sized,

    Calls .tap_ref() only in debug builds, and is erased in release +builds.
    §

    fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
    where + Self: AsMut<R>, + R: ?Sized,

    Calls .tap_ref_mut() only in debug builds, and is erased in release +builds.
    §

    fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
    where + Self: Deref<Target = T>, + T: ?Sized,

    Calls .tap_deref() only in debug builds, and is erased in release +builds.
    §

    fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
    where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

    Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    source§

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    §

    impl<T> TryConv for T

    §

    fn try_conv<T>(self) -> Result<T, Self::Error>
    where + Self: TryInto<T>,

    Attempts to convert self into T using TryInto<T>. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    source§

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    source§

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where + S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +[WithDispatch] wrapper. Read more
    §

    impl<T> ErasedDestructor for T
    where + T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/hotshot_query_service/availability/struct.VidCommonQueryData.html b/hotshot_query_service/availability/struct.VidCommonQueryData.html index 1f24e3c46..9714dd1c8 100644 --- a/hotshot_query_service/availability/struct.VidCommonQueryData.html +++ b/hotshot_query_service/availability/struct.VidCommonQueryData.html @@ -1,10 +1,11 @@ -VidCommonQueryData in hotshot_query_service::availability - Rust
    pub struct VidCommonQueryData<Types: NodeType> { /* private fields */ }

    Implementations§

    source§

    impl<Types: NodeType> VidCommonQueryData<Types>

    source

    pub fn new(header: Header<Types>, common: VidCommon) -> Self

    source

    pub async fn genesis( +VidCommonQueryData in hotshot_query_service::availability - Rust
    pub struct VidCommonQueryData<Types: NodeType> { /* private fields */ }

    Implementations§

    source§

    impl<Types: NodeType> VidCommonQueryData<Types>

    source

    pub fn new(header: Header<Types>, common: VidCommon) -> Self

    source

    pub async fn genesis( validated_state: &Types::ValidatedState, instance_state: &Types::InstanceState, ) -> Self

    source

    pub fn block_hash(&self) -> BlockHash<Types>

    source

    pub fn payload_hash(&self) -> VidCommitment

    source

    pub fn common(&self) -> &VidCommon

    Trait Implementations§

    source§

    impl<Types: Clone + NodeType> Clone for VidCommonQueryData<Types>

    source§

    fn clone(&self) -> VidCommonQueryData<Types>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<Types: Debug + NodeType> Debug for VidCommonQueryData<Types>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de, Types: NodeType> Deserialize<'de> for VidCommonQueryData<Types>

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl<'r, Types> FromRow<'r, <Postgres as Database>::Row> for VidCommonQueryData<Types>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more

    source§

    impl<Types> From<VidCommonQueryData<Types>> for VidCommonMetadata<Types>
    where + Types: NodeType,

    source§

    fn from(common: VidCommonQueryData<Types>) -> Self

    Converts to this type from the input type.
    source§

    impl<'r, Types> FromRow<'r, <Postgres as Database>::Row> for VidCommonQueryData<Types>
    where Types: NodeType, - Payload<Types>: QueryablePayload<Types>,

    source§

    fn from_row(row: &'r <Db as Database>::Row) -> Result<Self>

    source§

    impl<Types: NodeType> HeightIndexed for VidCommonQueryData<Types>

    source§

    fn height(&self) -> u64

    source§

    impl<Types: PartialEq + NodeType> PartialEq for VidCommonQueryData<Types>

    source§

    fn eq(&self, other: &VidCommonQueryData<Types>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, + Payload<Types>: QueryablePayload<Types>,

    source§

    fn from_row(row: &'r <Db as Database>::Row) -> Result<Self>

    source§

    impl<Types: NodeType> HeightIndexed for VidCommonQueryData<Types>

    source§

    fn height(&self) -> u64

    source§

    impl<Types: PartialEq + NodeType> PartialEq for VidCommonQueryData<Types>

    source§

    fn eq(&self, other: &VidCommonQueryData<Types>) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
    source§

    impl<Types: NodeType> Serialize for VidCommonQueryData<Types>

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl<Types: Eq + NodeType> Eq for VidCommonQueryData<Types>

    source§

    impl<Types: NodeType> StructuralPartialEq for VidCommonQueryData<Types>

    Auto Trait Implementations§

    §

    impl<Types> Freeze for VidCommonQueryData<Types>

    §

    impl<Types> RefUnwindSafe for VidCommonQueryData<Types>

    §

    impl<Types> Send for VidCommonQueryData<Types>

    §

    impl<Types> Sync for VidCommonQueryData<Types>

    §

    impl<Types> Unpin for VidCommonQueryData<Types>

    §

    impl<Types> UnwindSafe for VidCommonQueryData<Types>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<T> ArchivePointee for T

    §

    type ArchivedMetadata = ()

    The archived version of the pointer metadata for this type.
    §

    fn pointer_metadata( @@ -48,7 +49,7 @@ Debug-formatted.

    §

    fn fmt_upper_hex(self) -> FmtUpperHex<Self>
    where Self: UpperHex,

    Causes self to use its UpperHex implementation when Debug-formatted.
    §

    fn fmt_list(self) -> FmtList<Self>
    where - &'a Self: for<'a> IntoIterator,

    Formats each item in a sequence. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    + &'a Self: for<'a> IntoIterator,
    Formats each item in a sequence. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    §

    impl<T> Instrument for T

    §

    fn instrument(self, span: Span) -> Instrumented<Self>

    Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
    §

    fn in_current_span(self) -> Instrumented<Self>

    Instruments this type with the current Span, returning an Instrumented wrapper. Read more
    source§

    impl<T, U> Into<U> for T
    where diff --git a/hotshot_query_service/availability/trait.AvailabilityDataSource.html b/hotshot_query_service/availability/trait.AvailabilityDataSource.html index d8b6e4720..15ccf0c7d 100644 --- a/hotshot_query_service/availability/trait.AvailabilityDataSource.html +++ b/hotshot_query_service/availability/trait.AvailabilityDataSource.html @@ -1,4 +1,4 @@ -AvailabilityDataSource in hotshot_query_service::availability - Rust
    pub trait AvailabilityDataSource<Types: NodeType>
    where +AvailabilityDataSource in hotshot_query_service::availability - Rust
    pub trait AvailabilityDataSource<Types: NodeType>
    where Payload<Types>: QueryablePayload<Types>,
    { type LeafRange<R>: Stream<Item = Fetch<LeafQueryData<Types>>> + Unpin + Send + 'static where R: RangeBounds<usize> + Send; @@ -6,10 +6,14 @@ where R: RangeBounds<usize> + Send; type PayloadRange<R>: Stream<Item = Fetch<PayloadQueryData<Types>>> + Unpin + Send + 'static where R: RangeBounds<usize> + Send; + type PayloadMetadataRange<R>: Stream<Item = Fetch<PayloadMetadata<Types>>> + Unpin + Send + 'static + where R: RangeBounds<usize> + Send; type VidCommonRange<R>: Stream<Item = Fetch<VidCommonQueryData<Types>>> + Unpin + Send + 'static where R: RangeBounds<usize> + Send; + type VidCommonMetadataRange<R>: Stream<Item = Fetch<VidCommonMetadata<Types>>> + Unpin + Send + 'static + where R: RangeBounds<usize> + Send; -
    Show 13 methods // Required methods +
    Show 19 methods // Required methods fn get_leaf<'life0, 'async_trait, ID>( &'life0 self, id: ID, @@ -31,6 +35,13 @@ where ID: Into<BlockId<Types>> + Send + Sync + 'async_trait, Self: 'async_trait, 'life0: 'async_trait; + fn get_payload_metadata<'life0, 'async_trait, ID>( + &'life0 self, + id: ID, + ) -> Pin<Box<dyn Future<Output = Fetch<PayloadMetadata<Types>>> + Send + 'async_trait>> + where ID: Into<BlockId<Types>> + Send + Sync + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait; fn get_vid_common<'life0, 'async_trait, ID>( &'life0 self, id: ID, @@ -38,6 +49,13 @@ where ID: Into<BlockId<Types>> + Send + Sync + 'async_trait, Self: 'async_trait, 'life0: 'async_trait; + fn get_vid_common_metadata<'life0, 'async_trait, ID>( + &'life0 self, + id: ID, + ) -> Pin<Box<dyn Future<Output = Fetch<VidCommonMetadata<Types>>> + Send + 'async_trait>> + where ID: Into<BlockId<Types>> + Send + Sync + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait; fn get_leaf_range<'life0, 'async_trait, R>( &'life0 self, range: R, @@ -59,6 +77,13 @@ where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, 'life0: 'async_trait; + fn get_payload_metadata_range<'life0, 'async_trait, R>( + &'life0 self, + range: R, + ) -> Pin<Box<dyn Future<Output = Self::PayloadMetadataRange<R>> + Send + 'async_trait>> + where R: RangeBounds<usize> + Send + 'static + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait; fn get_vid_common_range<'life0, 'async_trait, R>( &'life0 self, range: R, @@ -66,6 +91,13 @@ where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, 'life0: 'async_trait; + fn get_vid_common_metadata_range<'life0, 'async_trait, R>( + &'life0 self, + range: R, + ) -> Pin<Box<dyn Future<Output = Self::VidCommonMetadataRange<R>> + Send + 'async_trait>> + where R: RangeBounds<usize> + Send + 'static + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait; fn get_transaction<'life0, 'async_trait>( &'life0 self, hash: TransactionHash<Types>, @@ -86,6 +118,12 @@ ) -> Pin<Box<dyn Future<Output = BoxStream<'static, PayloadQueryData<Types>>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... } + fn subscribe_payload_metadata<'life0, 'async_trait>( + &'life0 self, + from: usize, + ) -> Pin<Box<dyn Future<Output = BoxStream<'static, PayloadMetadata<Types>>> + Send + 'async_trait>> + where Self: Sync + 'async_trait, + 'life0: 'async_trait { ... } fn subscribe_leaves<'life0, 'async_trait>( &'life0 self, from: usize, @@ -98,6 +136,12 @@ ) -> Pin<Box<dyn Future<Output = BoxStream<'static, VidCommonQueryData<Types>>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... } + fn subscribe_vid_common_metadata<'life0, 'async_trait>( + &'life0 self, + from: usize, + ) -> Pin<Box<dyn Future<Output = BoxStream<'static, VidCommonMetadata<Types>>> + Send + 'async_trait>> + where Self: Sync + 'async_trait, + 'life0: 'async_trait { ... }
    }
    Expand description

    An interface for querying a HotShot blockchain.

    This interface provides expressive queries over all the data which is made available by HotShot consensus. The data exposed by this interface consists entirely of normative data: data which @@ -120,97 +164,139 @@ defines two fetches f1 and f2 as equivalent when f1.await == f2.await. That is, depending on when you call a certain method, you may or may not get a response immediately. But whenever you do get the data you requested, it is unique for that -combination of inputs. 

    Required Associated Types§

    source

    type LeafRange<R>: Stream<Item = Fetch<LeafQueryData<Types>>> + Unpin + Send + 'static +combination of inputs. 

    Required Associated Types§

    source

    type LeafRange<R>: Stream<Item = Fetch<LeafQueryData<Types>>> + Unpin + Send + 'static where - R: RangeBounds<usize> + Send

    source

    type BlockRange<R>: Stream<Item = Fetch<BlockQueryData<Types>>> + Unpin + Send + 'static + R: RangeBounds<usize> + Send

    source

    type BlockRange<R>: Stream<Item = Fetch<BlockQueryData<Types>>> + Unpin + Send + 'static where - R: RangeBounds<usize> + Send

    source

    type PayloadRange<R>: Stream<Item = Fetch<PayloadQueryData<Types>>> + Unpin + Send + 'static + R: RangeBounds<usize> + Send

    source

    type PayloadRange<R>: Stream<Item = Fetch<PayloadQueryData<Types>>> + Unpin + Send + 'static where - R: RangeBounds<usize> + Send

    source

    type VidCommonRange<R>: Stream<Item = Fetch<VidCommonQueryData<Types>>> + Unpin + Send + 'static + R: RangeBounds<usize> + Send

    source

    type PayloadMetadataRange<R>: Stream<Item = Fetch<PayloadMetadata<Types>>> + Unpin + Send + 'static where - R: RangeBounds<usize> + Send

    Required Methods§

    source

    fn get_leaf<'life0, 'async_trait, ID>( + R: RangeBounds<usize> + Send

    source

    type VidCommonRange<R>: Stream<Item = Fetch<VidCommonQueryData<Types>>> + Unpin + Send + 'static +where + R: RangeBounds<usize> + Send

    source

    type VidCommonMetadataRange<R>: Stream<Item = Fetch<VidCommonMetadata<Types>>> + Unpin + Send + 'static +where + R: RangeBounds<usize> + Send

    Required Methods§

    source

    fn get_leaf<'life0, 'async_trait, ID>( &'life0 self, id: ID, ) -> Pin<Box<dyn Future<Output = Fetch<LeafQueryData<Types>>> + Send + 'async_trait>>
    where ID: Into<LeafId<Types>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source

    fn get_block<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

    source

    fn get_block<'life0, 'async_trait, ID>( &'life0 self, id: ID, ) -> Pin<Box<dyn Future<Output = Fetch<BlockQueryData<Types>>> + Send + 'async_trait>>
    where ID: Into<BlockId<Types>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source

    fn get_payload<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

    source

    fn get_payload<'life0, 'async_trait, ID>( &'life0 self, id: ID, ) -> Pin<Box<dyn Future<Output = Fetch<PayloadQueryData<Types>>> + Send + 'async_trait>>
    where ID: Into<BlockId<Types>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source

    fn get_vid_common<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

    source

    fn get_payload_metadata<'life0, 'async_trait, ID>( + &'life0 self, + id: ID, +) -> Pin<Box<dyn Future<Output = Fetch<PayloadMetadata<Types>>> + Send + 'async_trait>>
    where + ID: Into<BlockId<Types>> + Send + Sync + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait,

    source

    fn get_vid_common<'life0, 'async_trait, ID>( &'life0 self, id: ID, ) -> Pin<Box<dyn Future<Output = Fetch<VidCommonQueryData<Types>>> + Send + 'async_trait>>
    where ID: Into<BlockId<Types>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source

    fn get_leaf_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source

    fn get_vid_common_metadata<'life0, 'async_trait, ID>( + &'life0 self, + id: ID, +) -> Pin<Box<dyn Future<Output = Fetch<VidCommonMetadata<Types>>> + Send + 'async_trait>>
    where + ID: Into<BlockId<Types>> + Send + Sync + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait,

    source

    fn get_leaf_range<'life0, 'async_trait, R>( &'life0 self, range: R, ) -> Pin<Box<dyn Future<Output = Self::LeafRange<R>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source

    fn get_block_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source

    fn get_block_range<'life0, 'async_trait, R>( &'life0 self, range: R, ) -> Pin<Box<dyn Future<Output = Self::BlockRange<R>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source

    fn get_payload_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source

    fn get_payload_range<'life0, 'async_trait, R>( &'life0 self, range: R, ) -> Pin<Box<dyn Future<Output = Self::PayloadRange<R>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source

    fn get_vid_common_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source

    fn get_payload_metadata_range<'life0, 'async_trait, R>( + &'life0 self, + range: R, +) -> Pin<Box<dyn Future<Output = Self::PayloadMetadataRange<R>> + Send + 'async_trait>>
    where + R: RangeBounds<usize> + Send + 'static + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait,

    source

    fn get_vid_common_range<'life0, 'async_trait, R>( &'life0 self, range: R, ) -> Pin<Box<dyn Future<Output = Self::VidCommonRange<R>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source

    fn get_transaction<'life0, 'async_trait>( + 'life0: 'async_trait,

    source

    fn get_vid_common_metadata_range<'life0, 'async_trait, R>( + &'life0 self, + range: R, +) -> Pin<Box<dyn Future<Output = Self::VidCommonMetadataRange<R>> + Send + 'async_trait>>
    where + R: RangeBounds<usize> + Send + 'static + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait,

    source

    fn get_transaction<'life0, 'async_trait>( &'life0 self, hash: TransactionHash<Types>, ) -> Pin<Box<dyn Future<Output = Fetch<TransactionQueryData<Types>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    Returns the transaction with the given hash.

    -

    Provided Methods§

    source

    fn subscribe_blocks<'life0, 'async_trait>( +

    Provided Methods§

    source

    fn subscribe_blocks<'life0, 'async_trait>( &'life0 self, from: usize, ) -> Pin<Box<dyn Future<Output = BoxStream<'static, BlockQueryData<Types>>> + Send + 'async_trait>>
    where Self: Sync + 'async_trait, - 'life0: 'async_trait,

    source

    fn subscribe_payloads<'life0, 'async_trait>( + 'life0: 'async_trait,

    source

    fn subscribe_payloads<'life0, 'async_trait>( &'life0 self, from: usize, ) -> Pin<Box<dyn Future<Output = BoxStream<'static, PayloadQueryData<Types>>> + Send + 'async_trait>>
    where Self: Sync + 'async_trait, - 'life0: 'async_trait,

    source

    fn subscribe_leaves<'life0, 'async_trait>( + 'life0: 'async_trait,

    source

    fn subscribe_payload_metadata<'life0, 'async_trait>( + &'life0 self, + from: usize, +) -> Pin<Box<dyn Future<Output = BoxStream<'static, PayloadMetadata<Types>>> + Send + 'async_trait>>
    where + Self: Sync + 'async_trait, + 'life0: 'async_trait,

    source

    fn subscribe_leaves<'life0, 'async_trait>( &'life0 self, from: usize, ) -> Pin<Box<dyn Future<Output = BoxStream<'static, LeafQueryData<Types>>> + Send + 'async_trait>>
    where Self: Sync + 'async_trait, - 'life0: 'async_trait,

    source

    fn subscribe_vid_common<'life0, 'async_trait>( + 'life0: 'async_trait,

    source

    fn subscribe_vid_common<'life0, 'async_trait>( &'life0 self, from: usize, ) -> Pin<Box<dyn Future<Output = BoxStream<'static, VidCommonQueryData<Types>>> + Send + 'async_trait>>
    where Self: Sync + 'async_trait, - 'life0: 'async_trait,

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl AvailabilityDataSource<MockTypes> for DataSource

    source§

    type LeafRange<R> = Pin<Box<dyn Stream<Item = Fetch<LeafQueryData<MockTypes>>> + Send>> + 'life0: 'async_trait,

    source

    fn subscribe_vid_common_metadata<'life0, 'async_trait>( + &'life0 self, + from: usize, +) -> Pin<Box<dyn Future<Output = BoxStream<'static, VidCommonMetadata<Types>>> + Send + 'async_trait>>
    where + Self: Sync + 'async_trait, + 'life0: 'async_trait,

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl AvailabilityDataSource<MockTypes> for DataSource

    source§

    type LeafRange<R> = Pin<Box<dyn Stream<Item = Fetch<LeafQueryData<MockTypes>>> + Send>> +where + R: RangeBounds<usize> + Send

    source§

    type BlockRange<R> = Pin<Box<dyn Stream<Item = Fetch<BlockQueryData<MockTypes>>> + Send>> where - R: RangeBounds<usize> + Send

    source§

    type BlockRange<R> = Pin<Box<dyn Stream<Item = Fetch<BlockQueryData<MockTypes>>> + Send>> + R: RangeBounds<usize> + Send

    source§

    type PayloadRange<R> = Pin<Box<dyn Stream<Item = Fetch<PayloadQueryData<MockTypes>>> + Send>> where - R: RangeBounds<usize> + Send

    source§

    type PayloadRange<R> = Pin<Box<dyn Stream<Item = Fetch<PayloadQueryData<MockTypes>>> + Send>> + R: RangeBounds<usize> + Send

    source§

    type PayloadMetadataRange<R> = Pin<Box<dyn Stream<Item = Fetch<PayloadMetadata<MockTypes>>> + Send>> where - R: RangeBounds<usize> + Send

    source§

    type VidCommonRange<R> = Pin<Box<dyn Stream<Item = Fetch<VidCommonQueryData<MockTypes>>> + Send>> + R: RangeBounds<usize> + Send

    source§

    type VidCommonRange<R> = Pin<Box<dyn Stream<Item = Fetch<VidCommonQueryData<MockTypes>>> + Send>> where - R: RangeBounds<usize> + Send

    source§

    impl<D, U, Types> AvailabilityDataSource<Types> for ExtensibleDataSource<D, U>
    where + R: RangeBounds<usize> + Send

    source§

    type VidCommonMetadataRange<R> = Pin<Box<dyn Stream<Item = Fetch<VidCommonMetadata<MockTypes>>> + Send>> +where + R: RangeBounds<usize> + Send

    source§

    impl<D, U, Types> AvailabilityDataSource<Types> for ExtensibleDataSource<D, U>
    where D: AvailabilityDataSource<Types> + Send + Sync, U: Send + Sync, Types: NodeType, @@ -220,20 +306,28 @@ where R: RangeBounds<usize> + Send

    source§

    type PayloadRange<R> = <D as AvailabilityDataSource<Types>>::PayloadRange<R> where - R: RangeBounds<usize> + Send

    source§

    type VidCommonRange<R> = <D as AvailabilityDataSource<Types>>::VidCommonRange<R> + R: RangeBounds<usize> + Send

    source§

    type PayloadMetadataRange<R> = <D as AvailabilityDataSource<Types>>::PayloadMetadataRange<R> +where + R: RangeBounds<usize> + Send

    source§

    type VidCommonRange<R> = <D as AvailabilityDataSource<Types>>::VidCommonRange<R> where - R: RangeBounds<usize> + Send

    source§

    impl<Types, S, P> AvailabilityDataSource<Types> for FetchingDataSource<Types, S, P>
    where + R: RangeBounds<usize> + Send

    source§

    type VidCommonMetadataRange<R> = <D as AvailabilityDataSource<Types>>::VidCommonMetadataRange<R> +where + R: RangeBounds<usize> + Send

    source§

    impl<Types, S, P> AvailabilityDataSource<Types> for FetchingDataSource<Types, S, P>
    where Types: NodeType, Payload<Types>: QueryablePayload<Types>, S: VersionedDataSource + 'static, for<'a> S::Transaction<'a>: UpdateAvailabilityStorage<Types>, for<'a> S::ReadOnly<'a>: AvailabilityStorage<Types> + NodeStorage<Types> + PrunedHeightStorage, - P: AvailabilityProvider<Types>,

    source§

    type LeafRange<R> = Pin<Box<dyn Stream<Item = Fetch<LeafQueryData<Types>>> + Send>> + P: AvailabilityProvider<Types>,

    source§

    type LeafRange<R> = Pin<Box<dyn Stream<Item = Fetch<LeafQueryData<Types>>> + Send>> +where + R: RangeBounds<usize> + Send

    source§

    type BlockRange<R> = Pin<Box<dyn Stream<Item = Fetch<BlockQueryData<Types>>> + Send>> +where + R: RangeBounds<usize> + Send

    source§

    type PayloadRange<R> = Pin<Box<dyn Stream<Item = Fetch<PayloadQueryData<Types>>> + Send>> where - R: RangeBounds<usize> + Send

    source§

    type BlockRange<R> = Pin<Box<dyn Stream<Item = Fetch<BlockQueryData<Types>>> + Send>> + R: RangeBounds<usize> + Send

    source§

    type PayloadMetadataRange<R> = Pin<Box<dyn Stream<Item = Fetch<PayloadMetadata<Types>>> + Send>> where - R: RangeBounds<usize> + Send

    source§

    type PayloadRange<R> = Pin<Box<dyn Stream<Item = Fetch<PayloadQueryData<Types>>> + Send>> + R: RangeBounds<usize> + Send

    source§

    type VidCommonRange<R> = Pin<Box<dyn Stream<Item = Fetch<VidCommonQueryData<Types>>> + Send>> where - R: RangeBounds<usize> + Send

    source§

    type VidCommonRange<R> = Pin<Box<dyn Stream<Item = Fetch<VidCommonQueryData<Types>>> + Send>> + R: RangeBounds<usize> + Send

    source§

    type VidCommonMetadataRange<R> = Pin<Box<dyn Stream<Item = Fetch<VidCommonMetadata<Types>>> + Send>> where R: RangeBounds<usize> + Send

    \ No newline at end of file diff --git a/hotshot_query_service/availability/trait.UpdateAvailabilityData.html b/hotshot_query_service/availability/trait.UpdateAvailabilityData.html index 0e06a262e..61b6e9726 100644 --- a/hotshot_query_service/availability/trait.UpdateAvailabilityData.html +++ b/hotshot_query_service/availability/trait.UpdateAvailabilityData.html @@ -1,17 +1,17 @@ -UpdateAvailabilityData in hotshot_query_service::availability - Rust
    pub trait UpdateAvailabilityData<Types: NodeType> {
    +UpdateAvailabilityData in hotshot_query_service::availability - Rust
    pub trait UpdateAvailabilityData<Types: NodeType> {
         // Required method
         fn append(
             &self,
             info: BlockInfo<Types>,
         ) -> impl Send + Future<Output = Result<()>>;
    -}

    Required Methods§

    Required Methods§

    source

    fn append( &self, info: BlockInfo<Types>, ) -> impl Send + Future<Output = Result<()>>

    Append information about a new block to the database.

    -

    Object Safety§

    This trait is not object safe.

    Implementors§

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl UpdateAvailabilityData<MockTypes> for DataSource

    source§

    impl<D, U, Types> UpdateAvailabilityData<Types> for ExtensibleDataSource<D, U>
    where D: UpdateAvailabilityData<Types> + Send + Sync, U: Send + Sync, - Types: NodeType,

    source§

    impl<Types, S, P> UpdateAvailabilityData<Types> for FetchingDataSource<Types, S, P>
    where + Types: NodeType,

    source§

    impl<Types, S, P> UpdateAvailabilityData<Types> for FetchingDataSource<Types, S, P>
    where Types: NodeType, Payload<Types>: QueryablePayload<Types>, S: VersionedDataSource + 'static, diff --git a/hotshot_query_service/data_source/fetching/index.html b/hotshot_query_service/data_source/fetching/index.html index b89104ecc..efc7cc966 100644 --- a/hotshot_query_service/data_source/fetching/index.html +++ b/hotshot_query_service/data_source/fetching/index.html @@ -1,4 +1,4 @@ -hotshot_query_service::data_source::fetching - Rust

    Module hotshot_query_service::data_source::fetching

    source ·
    Expand description

    Asynchronous retrieval of missing data.

    +hotshot_query_service::data_source::fetching - Rust

    Module hotshot_query_service::data_source::fetching

    source ·
    Expand description

    Asynchronous retrieval of missing data.

    FetchingDataSource combines a local storage implementation with a remote data availability provider to create a data sources which caches data locally, but which is capable of fetching missing data from a remote source, either proactively or on demand.

    diff --git a/hotshot_query_service/data_source/fetching/struct.Builder.html b/hotshot_query_service/data_source/fetching/struct.Builder.html index 896746ed0..0dea058f2 100644 --- a/hotshot_query_service/data_source/fetching/struct.Builder.html +++ b/hotshot_query_service/data_source/fetching/struct.Builder.html @@ -1,41 +1,41 @@ -Builder in hotshot_query_service::data_source::fetching - Rust

    Struct hotshot_query_service::data_source::fetching::Builder

    source ·
    pub struct Builder<Types, S, P> { /* private fields */ }
    Expand description

    Builder for FetchingDataSource with configuration.

    -

    Implementations§

    source§

    impl<Types, S, P> Builder<Types, S, P>

    source

    pub fn new(storage: S, provider: P) -> Self

    Construct a new builder with the given storage and fetcher and the default options.

    -
    source

    pub fn with_min_retry_interval(self, interval: Duration) -> Self

    Set the minimum delay between retries of failed operations.

    -
    source

    pub fn with_max_retry_interval(self, interval: Duration) -> Self

    Set the maximum delay between retries of failed operations.

    -
    source

    pub fn with_retry_multiplier(self, multiplier: f64) -> Self

    Set the multiplier for exponential backoff when retrying failed requests.

    -
    source

    pub fn with_retry_randomization_factor(self, factor: f64) -> Self

    Set the randomization factor for randomized backoff when retrying failed requests.

    -
    source

    pub fn with_retry_timeout(self, timeout: Duration) -> Self

    Set the maximum time to retry failed operations before giving up.

    -
    source

    pub fn with_rate_limit(self, with_rate_limit: usize) -> Self

    Set the maximum number of simultaneous fetches.

    -
    source

    pub fn with_range_chunk_size(self, range_chunk_size: usize) -> Self

    Set the number of items to process at a time when loading a range or stream.

    +Builder in hotshot_query_service::data_source::fetching - Rust

    Struct hotshot_query_service::data_source::fetching::Builder

    source ·
    pub struct Builder<Types, S, P> { /* private fields */ }
    Expand description

    Builder for FetchingDataSource with configuration.

    +

    Implementations§

    source§

    impl<Types, S, P> Builder<Types, S, P>

    source

    pub fn new(storage: S, provider: P) -> Self

    Construct a new builder with the given storage and fetcher and the default options.

    +
    source

    pub fn with_min_retry_interval(self, interval: Duration) -> Self

    Set the minimum delay between retries of failed operations.

    +
    source

    pub fn with_max_retry_interval(self, interval: Duration) -> Self

    Set the maximum delay between retries of failed operations.

    +
    source

    pub fn with_retry_multiplier(self, multiplier: f64) -> Self

    Set the multiplier for exponential backoff when retrying failed requests.

    +
    source

    pub fn with_retry_randomization_factor(self, factor: f64) -> Self

    Set the randomization factor for randomized backoff when retrying failed requests.

    +
    source

    pub fn with_retry_timeout(self, timeout: Duration) -> Self

    Set the maximum time to retry failed operations before giving up.

    +
    source

    pub fn with_rate_limit(self, with_rate_limit: usize) -> Self

    Set the maximum number of simultaneous fetches.

    +
    source

    pub fn with_range_chunk_size(self, range_chunk_size: usize) -> Self

    Set the number of items to process at a time when loading a range or stream.

    This determines:

    • The number of objects to load from storage in a single request
    • The number of objects to buffer in memory per request/stream
    • The number of concurrent notification subscriptions per request/stream
    -
    source

    pub fn with_minor_scan_interval(self, interval: Duration) -> Self

    Set the time interval between minor proactive fetching scans.

    +
    source

    pub fn with_minor_scan_interval(self, interval: Duration) -> Self

    Set the time interval between minor proactive fetching scans.

    See proactive fetching.

    -
    source

    pub fn with_major_scan_interval(self, interval: usize) -> Self

    Set the interval (denominated in minor scans) between +

    source

    pub fn with_major_scan_interval(self, interval: usize) -> Self

    Set the interval (denominated in minor scans) between major proactive fetching scans.

    See proactive fetching.

    -
    source

    pub fn with_major_scan_offset(self, offset: usize) -> Self

    Set the offset (denominated in minor scans) before the +

    source

    pub fn with_major_scan_offset(self, offset: usize) -> Self

    Set the offset (denominated in minor scans) before the first major proactive fetching scan.

    This is useful when starting multiple nodes at the same time: major proactive scans can have a measurable impact on the performance of the node for a brief time while the scan is running, so it may be desirable to prevent a group of nodes from all doing major scans at the same time. This can be achieved by giving each node a different major_scan_offset.

    See also proactive fetching.

    -
    source

    pub fn with_proactive_range_chunk_size(self, range_chunk_size: usize) -> Self

    Set the number of items to process at a time when scanning for proactive fetching.

    +
    source

    pub fn with_proactive_range_chunk_size(self, range_chunk_size: usize) -> Self

    Set the number of items to process at a time when scanning for proactive fetching.

    This is similar to Self::with_range_chunk_size, but only affects the chunk size for proactive fetching scans, not for normal subscription streams. This can be useful to tune -the proactive scanner to be more or less greedy with the lock on persistent storage.

    +the proactive scanner to be more or less greedy with persistent storage resources.

    By default (i.e. if this method is not called) the proactive range chunk size will be set to whatever the normal range chunk size is.

    -
    source

    pub fn with_active_fetch_delay(self, active_fetch_delay: Duration) -> Self

    Add a delay between active fetches in proactive scans.

    +
    source

    pub fn with_active_fetch_delay(self, active_fetch_delay: Duration) -> Self

    Add a delay between active fetches in proactive scans.

    This can be used to limit the rate at which this query service makes requests to other query services during proactive scans. This is useful if the query service has a lot of blocks to catch up on, as without a delay, scanning can be extremely burdensome on the peer.

    -
    source

    pub fn with_chunk_fetch_delay(self, chunk_fetch_delay: Duration) -> Self

    Adds a delay between chunk fetches during proactive scans.

    +
    source

    pub fn with_chunk_fetch_delay(self, chunk_fetch_delay: Duration) -> Self

    Adds a delay between chunk fetches during proactive scans.

    In a proactive scan, we retrieve a range of objects from a provider or local storage (e.g., a database). Without a delay between fetching these chunks, the process can become very CPU-intensive, especially when chunks are retrieved from local storage. While there is already a delay for active fetches @@ -44,24 +44,30 @@

    This additional delay helps to limit constant maximum CPU usage and ensures that local storage remains accessible to all processes, not just the proactive scanner.

    -
    source

    pub fn disable_proactive_fetching(self) -> Self

    Run without proactive fetching.

    +
    source

    pub fn disable_proactive_fetching(self) -> Self

    Run without proactive fetching.

    This can reduce load on the CPU and the database, but increases the probability that requests will fail due to missing resources. If resources are constrained, it is recommended to run with rare proactive fetching (see with_major_scan_interval, with_minor_scan_interval), rather than disabling it entirely.

    -
    source

    pub fn disable_aggregator(self) -> Self

    Run without an aggregator.

    +
    source

    pub fn disable_aggregator(self) -> Self

    Run without an aggregator.

    This can reduce load on the CPU and the database, but it will cause aggregate statistics (such as transaction counts) not to update.

    -
    source§

    impl<Types, S, P> Builder<Types, S, P>
    where +

    source

    pub fn with_aggregator_chunk_size(self, chunk_size: usize) -> Self

    Set the number of items to process at a time when computing aggregate statistics.

    +

    This is similar to Self::with_range_chunk_size, but only affects the chunk size for +the aggregator task, not for normal subscription streams. This can be useful to tune +the aggregator to be more or less greedy with persistent storage resources.

    +

    By default (i.e. if this method is not called) the proactive range chunk size will be set to +whatever the normal range chunk size is.

    +
    source§

    impl<Types, S, P> Builder<Types, S, P>
    where Types: NodeType, Payload<Types>: QueryablePayload<Types>, Header<Types>: QueryableHeader<Types>, S: PruneStorage + VersionedDataSource + HasMetrics + 'static, for<'a> S::ReadOnly<'a>: AvailabilityStorage<Types> + PrunedHeightStorage + NodeStorage<Types> + AggregatesStorage, for<'a> S::Transaction<'a>: UpdateAvailabilityStorage<Types> + UpdateAggregatesStorage<Types>, - P: AvailabilityProvider<Types>,

    source

    pub async fn build(self) -> Result<FetchingDataSource<Types, S, P>>

    Build a FetchingDataSource with these options.

    + P: AvailabilityProvider<Types>,

    source

    pub async fn build(self) -> Result<FetchingDataSource<Types, S, P>>

    Build a FetchingDataSource with these options.

    Auto Trait Implementations§

    §

    impl<Types, S, P> Freeze for Builder<Types, S, P>
    where S: Freeze, P: Freeze,

    §

    impl<Types, S, P> RefUnwindSafe for Builder<Types, S, P>
    where diff --git a/hotshot_query_service/data_source/fetching/struct.FetchingDataSource.html b/hotshot_query_service/data_source/fetching/struct.FetchingDataSource.html index af4eacefe..dd2f8cbf3 100644 --- a/hotshot_query_service/data_source/fetching/struct.FetchingDataSource.html +++ b/hotshot_query_service/data_source/fetching/struct.FetchingDataSource.html @@ -1,4 +1,4 @@ -FetchingDataSource in hotshot_query_service::data_source::fetching - Rust
    pub struct FetchingDataSource<Types, S, P>
    where +FetchingDataSource in hotshot_query_service::data_source::fetching - Rust
    pub struct FetchingDataSource<Types, S, P>
    where Types: NodeType,
    { /* private fields */ }
    Expand description

    The most basic kind of data source.

    A data source is constructed modularly by combining a storage implementation with a Fetcher. The former allows the query service to store the @@ -13,14 +13,14 @@ sources can be constructed out of FetchingDataSource by changing the storage and fetcher implementations used, and more complex data sources can be built on top using data source combinators.

    -

    Implementations§

    source§

    impl<Types, S, P> FetchingDataSource<Types, S, P>
    where +

    Implementations§

    source§

    impl<Types, S, P> FetchingDataSource<Types, S, P>
    where Types: NodeType, Payload<Types>: QueryablePayload<Types>, Header<Types>: QueryableHeader<Types>, S: VersionedDataSource + PruneStorage + HasMetrics + 'static, for<'a> S::Transaction<'a>: UpdateAvailabilityStorage<Types> + UpdateAggregatesStorage<Types>, for<'a> S::ReadOnly<'a>: AvailabilityStorage<Types> + NodeStorage<Types> + PrunedHeightStorage + AggregatesStorage, - P: AvailabilityProvider<Types>,

    source

    pub fn builder(storage: S, provider: P) -> Builder<Types, S, P>

    Build a FetchingDataSource with the given storage and provider.

    + P: AvailabilityProvider<Types>,

    source

    pub fn builder(storage: S, provider: P) -> Builder<Types, S, P>

    Build a FetchingDataSource with the given storage and provider.

    source§

    impl<Types: NodeType, P> FetchingDataSource<Types, FileSystemStorage<Types>, P>
    where Payload<Types>: QueryablePayload<Types>, Header<Types>: QueryableHeader<Types>, @@ -67,198 +67,236 @@ underlying FetchingDataSource, before constructing the SqlDataSource with build. For a convenient constructor that uses the default fetching options, see Config::connect.

    -

    Trait Implementations§

    source§

    impl<Types, S, P> AsRef<S> for FetchingDataSource<Types, S, P>
    where - Types: NodeType,

    source§

    fn as_ref(&self) -> &S

    Converts this type into a shared reference of the (usually inferred) input type.
    source§

    impl<Types, S, P> AvailabilityDataSource<Types> for FetchingDataSource<Types, S, P>
    where +

    Trait Implementations§

    source§

    impl<Types, S, P> AsRef<S> for FetchingDataSource<Types, S, P>
    where + Types: NodeType,

    source§

    fn as_ref(&self) -> &S

    Converts this type into a shared reference of the (usually inferred) input type.
    source§

    impl<Types, S, P> AvailabilityDataSource<Types> for FetchingDataSource<Types, S, P>
    where Types: NodeType, Payload<Types>: QueryablePayload<Types>, S: VersionedDataSource + 'static, for<'a> S::Transaction<'a>: UpdateAvailabilityStorage<Types>, for<'a> S::ReadOnly<'a>: AvailabilityStorage<Types> + NodeStorage<Types> + PrunedHeightStorage, - P: AvailabilityProvider<Types>,

    source§

    type LeafRange<R> = Pin<Box<dyn Stream<Item = Fetch<LeafQueryData<Types>>> + Send>> + P: AvailabilityProvider<Types>,

    source§

    type LeafRange<R> = Pin<Box<dyn Stream<Item = Fetch<LeafQueryData<Types>>> + Send>> where - R: RangeBounds<usize> + Send

    source§

    type BlockRange<R> = Pin<Box<dyn Stream<Item = Fetch<BlockQueryData<Types>>> + Send>> + R: RangeBounds<usize> + Send

    source§

    type BlockRange<R> = Pin<Box<dyn Stream<Item = Fetch<BlockQueryData<Types>>> + Send>> where - R: RangeBounds<usize> + Send

    source§

    type PayloadRange<R> = Pin<Box<dyn Stream<Item = Fetch<PayloadQueryData<Types>>> + Send>> + R: RangeBounds<usize> + Send

    source§

    type PayloadRange<R> = Pin<Box<dyn Stream<Item = Fetch<PayloadQueryData<Types>>> + Send>> where - R: RangeBounds<usize> + Send

    source§

    type VidCommonRange<R> = Pin<Box<dyn Stream<Item = Fetch<VidCommonQueryData<Types>>> + Send>> + R: RangeBounds<usize> + Send

    source§

    type PayloadMetadataRange<R> = Pin<Box<dyn Stream<Item = Fetch<PayloadMetadata<Types>>> + Send>> where - R: RangeBounds<usize> + Send

    source§

    fn get_leaf<'life0, 'async_trait, ID>( + R: RangeBounds<usize> + Send

    source§

    type VidCommonRange<R> = Pin<Box<dyn Stream<Item = Fetch<VidCommonQueryData<Types>>> + Send>> +where + R: RangeBounds<usize> + Send

    source§

    type VidCommonMetadataRange<R> = Pin<Box<dyn Stream<Item = Fetch<VidCommonMetadata<Types>>> + Send>> +where + R: RangeBounds<usize> + Send

    source§

    fn get_leaf<'life0, 'async_trait, ID>( &'life0 self, id: ID, ) -> Pin<Box<dyn Future<Output = Fetch<LeafQueryData<Types>>> + Send + 'async_trait>>
    where ID: Into<LeafId<Types>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_block<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

    source§

    fn get_block<'life0, 'async_trait, ID>( &'life0 self, id: ID, ) -> Pin<Box<dyn Future<Output = Fetch<BlockQueryData<Types>>> + Send + 'async_trait>>
    where ID: Into<BlockId<Types>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_payload<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

    source§

    fn get_payload<'life0, 'async_trait, ID>( &'life0 self, id: ID, ) -> Pin<Box<dyn Future<Output = Fetch<PayloadQueryData<Types>>> + Send + 'async_trait>>
    where ID: Into<BlockId<Types>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_vid_common<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

    source§

    fn get_payload_metadata<'life0, 'async_trait, ID>( + &'life0 self, + id: ID, +) -> Pin<Box<dyn Future<Output = Fetch<PayloadMetadata<Types>>> + Send + 'async_trait>>
    where + ID: Into<BlockId<Types>> + Send + Sync + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn get_vid_common<'life0, 'async_trait, ID>( &'life0 self, id: ID, ) -> Pin<Box<dyn Future<Output = Fetch<VidCommonQueryData<Types>>> + Send + 'async_trait>>
    where ID: Into<BlockId<Types>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_leaf_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source§

    fn get_vid_common_metadata<'life0, 'async_trait, ID>( + &'life0 self, + id: ID, +) -> Pin<Box<dyn Future<Output = Fetch<VidCommonMetadata<Types>>> + Send + 'async_trait>>
    where + ID: Into<BlockId<Types>> + Send + Sync + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn get_leaf_range<'life0, 'async_trait, R>( &'life0 self, range: R, ) -> Pin<Box<dyn Future<Output = Self::LeafRange<R>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_block_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source§

    fn get_block_range<'life0, 'async_trait, R>( &'life0 self, range: R, ) -> Pin<Box<dyn Future<Output = Self::BlockRange<R>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_payload_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source§

    fn get_payload_range<'life0, 'async_trait, R>( &'life0 self, range: R, ) -> Pin<Box<dyn Future<Output = Self::PayloadRange<R>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_vid_common_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source§

    fn get_payload_metadata_range<'life0, 'async_trait, R>( + &'life0 self, + range: R, +) -> Pin<Box<dyn Future<Output = Self::PayloadMetadataRange<R>> + Send + 'async_trait>>
    where + R: RangeBounds<usize> + Send + 'static + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn get_vid_common_range<'life0, 'async_trait, R>( &'life0 self, range: R, ) -> Pin<Box<dyn Future<Output = Self::VidCommonRange<R>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_transaction<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn get_vid_common_metadata_range<'life0, 'async_trait, R>( + &'life0 self, + range: R, +) -> Pin<Box<dyn Future<Output = Self::VidCommonMetadataRange<R>> + Send + 'async_trait>>
    where + R: RangeBounds<usize> + Send + 'static + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn get_transaction<'life0, 'async_trait>( &'life0 self, hash: TransactionHash<Types>, ) -> Pin<Box<dyn Future<Output = Fetch<TransactionQueryData<Types>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    Returns the transaction with the given hash.
    source§

    fn subscribe_blocks<'life0, 'async_trait>( + 'life0: 'async_trait,

    Returns the transaction with the given hash.
    source§

    fn subscribe_blocks<'life0, 'async_trait>( &'life0 self, from: usize, ) -> Pin<Box<dyn Future<Output = BoxStream<'static, BlockQueryData<Types>>> + Send + 'async_trait>>
    where Self: Sync + 'async_trait, - 'life0: 'async_trait,

    source§

    fn subscribe_payloads<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn subscribe_payloads<'life0, 'async_trait>( &'life0 self, from: usize, ) -> Pin<Box<dyn Future<Output = BoxStream<'static, PayloadQueryData<Types>>> + Send + 'async_trait>>
    where Self: Sync + 'async_trait, - 'life0: 'async_trait,

    source§

    fn subscribe_leaves<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn subscribe_payload_metadata<'life0, 'async_trait>( + &'life0 self, + from: usize, +) -> Pin<Box<dyn Future<Output = BoxStream<'static, PayloadMetadata<Types>>> + Send + 'async_trait>>
    where + Self: Sync + 'async_trait, + 'life0: 'async_trait,

    source§

    fn subscribe_leaves<'life0, 'async_trait>( &'life0 self, from: usize, ) -> Pin<Box<dyn Future<Output = BoxStream<'static, LeafQueryData<Types>>> + Send + 'async_trait>>
    where Self: Sync + 'async_trait, - 'life0: 'async_trait,

    source§

    fn subscribe_vid_common<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn subscribe_vid_common<'life0, 'async_trait>( &'life0 self, from: usize, ) -> Pin<Box<dyn Future<Output = BoxStream<'static, VidCommonQueryData<Types>>> + Send + 'async_trait>>
    where Self: Sync + 'async_trait, - 'life0: 'async_trait,

    source§

    impl<Types, S, P> Clone for FetchingDataSource<Types, S, P>
    where - Types: NodeType,

    source§

    fn clone(&self) -> Self

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<Types, S, P> Debug for FetchingDataSource<Types, S, P>
    where + 'life0: 'async_trait,

    source§

    fn subscribe_vid_common_metadata<'life0, 'async_trait>( + &'life0 self, + from: usize, +) -> Pin<Box<dyn Future<Output = BoxStream<'static, VidCommonMetadata<Types>>> + Send + 'async_trait>>
    where + Self: Sync + 'async_trait, + 'life0: 'async_trait,

    source§

    impl<Types, S, P> Clone for FetchingDataSource<Types, S, P>
    where + Types: NodeType,

    source§

    fn clone(&self) -> Self

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<Types, S, P> Debug for FetchingDataSource<Types, S, P>
    where Types: NodeType, S: Debug, - P: Debug,

    source§

    fn fmt(&self, __f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<Types, S, P> ExplorerDataSource<Types> for FetchingDataSource<Types, S, P>
    where + P: Debug,

    source§

    fn fmt(&self, __f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<Types, S, P> ExplorerDataSource<Types> for FetchingDataSource<Types, S, P>
    where Types: NodeType, Payload<Types>: QueryablePayload<Types>, Header<Types>: QueryableHeader<Types> + ExplorerHeader<Types>, Transaction<Types>: ExplorerTransaction, S: VersionedDataSource + 'static, for<'a> S::ReadOnly<'a>: ExplorerStorage<Types>, - P: Send + Sync,

    source§

    fn get_block_summaries<'life0, 'async_trait>( + P: Send + Sync,

    source§

    fn get_block_summaries<'life0, 'async_trait>( &'life0 self, request: GetBlockSummariesRequest<Types>, ) -> Pin<Box<dyn Future<Output = Result<Vec<BlockSummary<Types>>, GetBlockSummariesError>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    get_block_summaries is a method that retrieves a list of block summaries from the blockchain. The list is generated from the given -GetBlockSummariesRequest.
    source§

    fn get_block_detail<'life0, 'async_trait>( +GetBlockSummariesRequest.

    source§

    fn get_block_detail<'life0, 'async_trait>( &'life0 self, request: BlockIdentifier<Types>, ) -> Pin<Box<dyn Future<Output = Result<BlockDetail<Types>, GetBlockDetailError>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    get_block_detail is a method that retrieves the details of a specific block from the blockchain. The block is identified by the given -BlockIdentifier.
    source§

    fn get_transaction_summaries<'life0, 'async_trait>( +BlockIdentifier.

    source§

    fn get_transaction_summaries<'life0, 'async_trait>( &'life0 self, request: GetTransactionSummariesRequest<Types>, ) -> Pin<Box<dyn Future<Output = Result<Vec<TransactionSummary<Types>>, GetTransactionSummariesError>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    get_transaction_summaries is a method that retrieves a list of transaction summaries from the blockchain. The list is generated from -the given GetTransactionSummariesRequest.
    source§

    fn get_transaction_detail<'life0, 'async_trait>( +the given GetTransactionSummariesRequest.

    source§

    fn get_transaction_detail<'life0, 'async_trait>( &'life0 self, request: TransactionIdentifier<Types>, ) -> Pin<Box<dyn Future<Output = Result<TransactionDetailResponse<Types>, GetTransactionDetailError>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    get_transaction_detail is a method that retrieves the details of a specific transaction from the blockchain. The transaction is identified -by the given TransactionIdentifier.
    source§

    fn get_explorer_summary<'life0, 'async_trait>( +by the given TransactionIdentifier.

    source§

    fn get_explorer_summary<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<ExplorerSummary<Types>, GetExplorerSummaryError>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    get_explorer_summary is a method that retrieves a summary overview of the blockchain. This is useful for displaying information that -indicates the overall status of the block chain.
    source§

    fn get_search_results<'life0, 'async_trait>( +indicates the overall status of the block chain.

    source§

    fn get_search_results<'life0, 'async_trait>( &'life0 self, query: TaggedBase64, ) -> Pin<Box<dyn Future<Output = Result<SearchResult<Types>, GetSearchResultsError>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    get_search_results is a method that retrieves the results of a search query against the blockchain. The results are generated from the given -query string.
    source§

    impl<Types, S, P> HasMetrics for FetchingDataSource<Types, S, P>
    where +query string.

    source§

    impl<Types, S, P> HasMetrics for FetchingDataSource<Types, S, P>
    where Types: NodeType, - S: HasMetrics,

    source§

    impl<Types, S, P, State, const ARITY: usize> MerklizedStateDataSource<Types, State, ARITY> for FetchingDataSource<Types, S, P>
    where + S: HasMetrics,

    source§

    impl<Types, S, P, State, const ARITY: usize> MerklizedStateDataSource<Types, State, ARITY> for FetchingDataSource<Types, S, P>
    where Types: NodeType, S: VersionedDataSource + 'static, for<'a> S::ReadOnly<'a>: MerklizedStateStorage<Types, State, ARITY>, P: Send + Sync, State: MerklizedState<Types, ARITY> + 'static, - <State as MerkleTreeScheme>::Commitment: Send,

    source§

    fn get_path<'life0, 'async_trait>( + <State as MerkleTreeScheme>::Commitment: Send,

    source§

    fn get_path<'life0, 'async_trait>( &'life0 self, snapshot: Snapshot<Types, State, ARITY>, key: State::Key, ) -> Pin<Box<dyn Future<Output = QueryResult<MerkleProof<State::Entry, State::Key, State::T, ARITY>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    impl<Types, S, P> MerklizedStateHeightPersistence for FetchingDataSource<Types, S, P>
    where + 'life0: 'async_trait,

    source§

    impl<Types, S, P> MerklizedStateHeightPersistence for FetchingDataSource<Types, S, P>
    where Types: NodeType, Payload<Types>: QueryablePayload<Types>, S: VersionedDataSource + 'static, for<'a> S::ReadOnly<'a>: MerklizedStateHeightStorage, - P: Send + Sync,

    source§

    fn get_last_state_height<'life0, 'async_trait>( + P: Send + Sync,

    source§

    fn get_last_state_height<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    impl<Types, S, P> NodeDataSource<Types> for FetchingDataSource<Types, S, P>
    where + 'life0: 'async_trait,

    source§

    impl<Types, S, P> NodeDataSource<Types> for FetchingDataSource<Types, S, P>
    where Types: NodeType, S: VersionedDataSource + 'static, for<'a> S::ReadOnly<'a>: NodeStorage<Types>, - P: Send + Sync,

    source§

    fn block_height<'life0, 'async_trait>( + P: Send + Sync,

    source§

    fn block_height<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn count_transactions_in_range<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn count_transactions_in_range<'life0, 'async_trait>( &'life0 self, range: impl 'async_trait + RangeBounds<usize> + Send, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn payload_size_in_range<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn payload_size_in_range<'life0, 'async_trait>( &'life0 self, range: impl 'async_trait + RangeBounds<usize> + Send, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn vid_share<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

    source§

    fn vid_share<'life0, 'async_trait, ID>( &'life0 self, id: ID, ) -> Pin<Box<dyn Future<Output = QueryResult<VidShare>> + Send + 'async_trait>>
    where ID: Into<BlockId<Types>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn sync_status<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn sync_status<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = QueryResult<SyncStatus>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    Search the database for missing objects and generate a report.
    source§

    fn get_header_window<'life0, 'async_trait>( + 'life0: 'async_trait,

    Search the database for missing objects and generate a report.
    source§

    fn get_header_window<'life0, 'async_trait>( &'life0 self, start: impl 'async_trait + Into<WindowStart<Types>> + Send + Sync, end: u64, @@ -272,11 +310,11 @@ &'life0 self, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: Sync + 'async_trait, - 'life0: 'async_trait,

    source§

    impl<Types, S, P> StatusDataSource for FetchingDataSource<Types, S, P>
    where + 'life0: 'async_trait,

    source§

    impl<Types, S, P> StatusDataSource for FetchingDataSource<Types, S, P>
    where Types: NodeType, S: VersionedDataSource + HasMetrics + Send + Sync + 'static, for<'a> S::ReadOnly<'a>: NodeStorage<Types>, - P: Send + Sync,

    source§

    fn block_height<'life0, 'async_trait>( + P: Send + Sync,

    source§

    fn block_height<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, @@ -288,20 +326,20 @@ &'life0 self, ) -> Pin<Box<dyn Future<Output = QueryResult<f64>> + Send + 'async_trait>>
    where Self: Sync + 'async_trait, - 'life0: 'async_trait,

    source§

    impl<Types, S, P> UpdateAvailabilityData<Types> for FetchingDataSource<Types, S, P>
    where + 'life0: 'async_trait,

    source§

    impl<Types, S, P> UpdateAvailabilityData<Types> for FetchingDataSource<Types, S, P>
    where Types: NodeType, Payload<Types>: QueryablePayload<Types>, S: VersionedDataSource + 'static, for<'a> S::Transaction<'a>: UpdateAvailabilityStorage<Types>, for<'a> S::ReadOnly<'a>: AvailabilityStorage<Types> + NodeStorage<Types> + PrunedHeightStorage, - P: AvailabilityProvider<Types>,

    source§

    async fn append(&self, info: BlockInfo<Types>) -> Result<()>

    Append information about a new block to the database.
    source§

    impl<Types, S, P> VersionedDataSource for FetchingDataSource<Types, S, P>
    where + P: AvailabilityProvider<Types>,

    source§

    async fn append(&self, info: BlockInfo<Types>) -> Result<()>

    Append information about a new block to the database.
    source§

    impl<Types, S, P> VersionedDataSource for FetchingDataSource<Types, S, P>
    where Types: NodeType, S: VersionedDataSource + Send + Sync, - P: Send + Sync,

    source§

    type Transaction<'a> = <S as VersionedDataSource>::Transaction<'a> where - Self: 'a

    A transaction which can read and modify the data source.
    source§

    type ReadOnly<'a> = <S as VersionedDataSource>::ReadOnly<'a> + Self: 'a

    A transaction which can read and modify the data source.
    source§

    type ReadOnly<'a> = <S as VersionedDataSource>::ReadOnly<'a> where - Self: 'a

    source§

    async fn write(&self) -> Result<Self::Transaction<'_>>

    Start an atomic transaction on the data source.
    source§

    async fn read(&self) -> Result<Self::ReadOnly<'_>>

    Start a read-only transaction on the data source. Read more

    Auto Trait Implementations§

    §

    impl<Types, S, P> Freeze for FetchingDataSource<Types, S, P>

    §

    impl<Types, S, P> !RefUnwindSafe for FetchingDataSource<Types, S, P>

    §

    impl<Types, S, P> Send for FetchingDataSource<Types, S, P>
    where + Self: 'a

    source§

    async fn write(&self) -> Result<Self::Transaction<'_>>

    Start an atomic transaction on the data source.
    source§

    async fn read(&self) -> Result<Self::ReadOnly<'_>>

    Start a read-only transaction on the data source. Read more

    Auto Trait Implementations§

    §

    impl<Types, S, P> Freeze for FetchingDataSource<Types, S, P>

    §

    impl<Types, S, P> !RefUnwindSafe for FetchingDataSource<Types, S, P>

    §

    impl<Types, S, P> Send for FetchingDataSource<Types, S, P>
    where S: Sync + Send, P: Sync + Send,

    §

    impl<Types, S, P> Sync for FetchingDataSource<Types, S, P>
    where S: Sync + Send, diff --git a/hotshot_query_service/data_source/fetching/struct.Pruner.html b/hotshot_query_service/data_source/fetching/struct.Pruner.html index 0d7488d8c..0d09d6f0b 100644 --- a/hotshot_query_service/data_source/fetching/struct.Pruner.html +++ b/hotshot_query_service/data_source/fetching/struct.Pruner.html @@ -1,9 +1,9 @@ -Pruner in hotshot_query_service::data_source::fetching - Rust

    Struct hotshot_query_service::data_source::fetching::Pruner

    source ·
    pub struct Pruner<Types, S, P>
    where - Types: NodeType,
    { /* private fields */ }

    Trait Implementations§

    source§

    impl<Types, S, P> Clone for Pruner<Types, S, P>
    where - Types: NodeType,

    source§

    fn clone(&self) -> Self

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<Types, S, P> Debug for Pruner<Types, S, P>
    where +Pruner in hotshot_query_service::data_source::fetching - Rust

    Struct hotshot_query_service::data_source::fetching::Pruner

    source ·
    pub struct Pruner<Types, S, P>
    where + Types: NodeType,
    { /* private fields */ }

    Trait Implementations§

    source§

    impl<Types, S, P> Clone for Pruner<Types, S, P>
    where + Types: NodeType,

    source§

    fn clone(&self) -> Self

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<Types, S, P> Debug for Pruner<Types, S, P>
    where Types: NodeType, S: Debug, - P: Debug,

    source§

    fn fmt(&self, __f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    §

    impl<Types, S, P> Freeze for Pruner<Types, S, P>

    §

    impl<Types, S, P> RefUnwindSafe for Pruner<Types, S, P>
    where + P: Debug,

    source§

    fn fmt(&self, __f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    §

    impl<Types, S, P> Freeze for Pruner<Types, S, P>

    §

    impl<Types, S, P> RefUnwindSafe for Pruner<Types, S, P>

    §

    impl<Types, S, P> Send for Pruner<Types, S, P>
    where diff --git a/hotshot_query_service/data_source/fetching/trait.AvailabilityProvider.html b/hotshot_query_service/data_source/fetching/trait.AvailabilityProvider.html index c1646a1ed..bb8653adf 100644 --- a/hotshot_query_service/data_source/fetching/trait.AvailabilityProvider.html +++ b/hotshot_query_service/data_source/fetching/trait.AvailabilityProvider.html @@ -1,8 +1,8 @@ -AvailabilityProvider in hotshot_query_service::data_source::fetching - Rust
    pub trait AvailabilityProvider<Types: NodeType>:
    +AvailabilityProvider in hotshot_query_service::data_source::fetching - Rust
    pub trait AvailabilityProvider<Types: NodeType>:
         Provider<Types, LeafRequest>
         + Provider<Types, PayloadRequest>
         + Provider<Types, VidCommonRequest>
         + Sync
         + 'static { }
    Expand description

    A provider which can be used as a fetcher by the availability service.

    -

    Implementors§

    source§

    impl<Types: NodeType, P> AvailabilityProvider<Types> for P
    where +

    Implementors§

    source§

    impl<Types: NodeType, P> AvailabilityProvider<Types> for P
    where P: Provider<Types, LeafRequest> + Provider<Types, PayloadRequest> + Provider<Types, VidCommonRequest> + Sync + 'static,

    \ No newline at end of file diff --git a/hotshot_query_service/data_source/index.html b/hotshot_query_service/data_source/index.html index a870b7032..4b6cda8c6 100644 --- a/hotshot_query_service/data_source/index.html +++ b/hotshot_query_service/data_source/index.html @@ -1,4 +1,4 @@ -hotshot_query_service::data_source - Rust

    Module hotshot_query_service::data_source

    source ·
    Expand description

    Persistent storage and sources of data consumed by APIs.

    +hotshot_query_service::data_source - Rust

    Module hotshot_query_service::data_source

    source ·
    Expand description

    Persistent storage and sources of data consumed by APIs.

    The APIs provided by this query service are generic over the implementation which actually retrieves data in answer to queries. We call this implementation a data source. This module defines a data source and provides several pre-built implementations:

    diff --git a/hotshot_query_service/data_source/node_tests/fn.test_counters.html b/hotshot_query_service/data_source/node_tests/fn.test_counters.html index 24d89e826..131c3a440 100644 --- a/hotshot_query_service/data_source/node_tests/fn.test_counters.html +++ b/hotshot_query_service/data_source/node_tests/fn.test_counters.html @@ -1 +1 @@ -test_counters in hotshot_query_service::data_source::node_tests - Rust
    pub async fn test_counters<D: TestableDataSource>()
    \ No newline at end of file +test_counters in hotshot_query_service::data_source::node_tests - Rust
    pub async fn test_counters<D: TestableDataSource>()
    \ No newline at end of file diff --git a/hotshot_query_service/data_source/node_tests/fn.test_sync_status.html b/hotshot_query_service/data_source/node_tests/fn.test_sync_status.html index 0a135fff7..b1314a77d 100644 --- a/hotshot_query_service/data_source/node_tests/fn.test_sync_status.html +++ b/hotshot_query_service/data_source/node_tests/fn.test_sync_status.html @@ -1,2 +1,2 @@ -test_sync_status in hotshot_query_service::data_source::node_tests - Rust
    pub async fn test_sync_status<D: TestableDataSource>()
    where +test_sync_status in hotshot_query_service::data_source::node_tests - Rust
    pub async fn test_sync_status<D: TestableDataSource>()
    \ No newline at end of file diff --git a/hotshot_query_service/data_source/node_tests/fn.test_timestamp_window.html b/hotshot_query_service/data_source/node_tests/fn.test_timestamp_window.html index f52d8240b..c792b7903 100644 --- a/hotshot_query_service/data_source/node_tests/fn.test_timestamp_window.html +++ b/hotshot_query_service/data_source/node_tests/fn.test_timestamp_window.html @@ -1,2 +1,2 @@ -test_timestamp_window in hotshot_query_service::data_source::node_tests - Rust
    pub async fn test_timestamp_window<D: TestableDataSource>()
    where +test_timestamp_window in hotshot_query_service::data_source::node_tests - Rust
    pub async fn test_timestamp_window<D: TestableDataSource>()
    where for<'a> D::ReadOnly<'a>: NodeStorage<MockTypes>,
    \ No newline at end of file diff --git a/hotshot_query_service/data_source/node_tests/fn.test_vid_monotonicity.html b/hotshot_query_service/data_source/node_tests/fn.test_vid_monotonicity.html index 3c86876d3..7bf789a62 100644 --- a/hotshot_query_service/data_source/node_tests/fn.test_vid_monotonicity.html +++ b/hotshot_query_service/data_source/node_tests/fn.test_vid_monotonicity.html @@ -1,3 +1,3 @@ -test_vid_monotonicity in hotshot_query_service::data_source::node_tests - Rust
    pub async fn test_vid_monotonicity<D: TestableDataSource>()
    where +test_vid_monotonicity in hotshot_query_service::data_source::node_tests - Rust
    pub async fn test_vid_monotonicity<D: TestableDataSource>()
    \ No newline at end of file diff --git a/hotshot_query_service/data_source/node_tests/fn.test_vid_recovery.html b/hotshot_query_service/data_source/node_tests/fn.test_vid_recovery.html index 99e3b0ee7..0ad207271 100644 --- a/hotshot_query_service/data_source/node_tests/fn.test_vid_recovery.html +++ b/hotshot_query_service/data_source/node_tests/fn.test_vid_recovery.html @@ -1,2 +1,2 @@ -test_vid_recovery in hotshot_query_service::data_source::node_tests - Rust
    pub async fn test_vid_recovery<D: TestableDataSource>()
    where +test_vid_recovery in hotshot_query_service::data_source::node_tests - Rust
    pub async fn test_vid_recovery<D: TestableDataSource>()
    where for<'a> D::ReadOnly<'a>: NodeStorage<MockTypes>,
    \ No newline at end of file diff --git a/hotshot_query_service/data_source/node_tests/fn.test_vid_shares.html b/hotshot_query_service/data_source/node_tests/fn.test_vid_shares.html index 5eed0382d..c0389a3eb 100644 --- a/hotshot_query_service/data_source/node_tests/fn.test_vid_shares.html +++ b/hotshot_query_service/data_source/node_tests/fn.test_vid_shares.html @@ -1,2 +1,2 @@ -test_vid_shares in hotshot_query_service::data_source::node_tests - Rust
    pub async fn test_vid_shares<D: TestableDataSource>()
    where +test_vid_shares in hotshot_query_service::data_source::node_tests - Rust
    pub async fn test_vid_shares<D: TestableDataSource>()
    where for<'a> D::ReadOnly<'a>: NodeStorage<MockTypes>,
    \ No newline at end of file diff --git a/hotshot_query_service/data_source/node_tests/index.html b/hotshot_query_service/data_source/node_tests/index.html index 262a55ef0..97554070e 100644 --- a/hotshot_query_service/data_source/node_tests/index.html +++ b/hotshot_query_service/data_source/node_tests/index.html @@ -1,2 +1,2 @@ -hotshot_query_service::data_source::node_tests - Rust

    Module hotshot_query_service::data_source::node_tests

    source ·
    Expand description

    Generic tests we can instantiate for all the node data sources.

    +hotshot_query_service::data_source::node_tests - Rust

    Module hotshot_query_service::data_source::node_tests

    source ·
    Expand description

    Generic tests we can instantiate for all the node data sources.

    Functions§

    \ No newline at end of file diff --git a/hotshot_query_service/data_source/persistence_tests/fn.test_drop_tx.html b/hotshot_query_service/data_source/persistence_tests/fn.test_drop_tx.html index 5d36fd73c..1e97958a1 100644 --- a/hotshot_query_service/data_source/persistence_tests/fn.test_drop_tx.html +++ b/hotshot_query_service/data_source/persistence_tests/fn.test_drop_tx.html @@ -1,3 +1,3 @@ -test_drop_tx in hotshot_query_service::data_source::persistence_tests - Rust
    pub async fn test_drop_tx<D: TestableDataSource>()
    where +test_drop_tx in hotshot_query_service::data_source::persistence_tests - Rust
    \ No newline at end of file diff --git a/hotshot_query_service/data_source/persistence_tests/fn.test_reset.html b/hotshot_query_service/data_source/persistence_tests/fn.test_reset.html index 94799b08b..1e5a0b79c 100644 --- a/hotshot_query_service/data_source/persistence_tests/fn.test_reset.html +++ b/hotshot_query_service/data_source/persistence_tests/fn.test_reset.html @@ -1,2 +1,2 @@ -test_reset in hotshot_query_service::data_source::persistence_tests - Rust
    pub async fn test_reset<D: TestableDataSource>()
    where +test_reset in hotshot_query_service::data_source::persistence_tests - Rust
    pub async fn test_reset<D: TestableDataSource>()
    \ No newline at end of file diff --git a/hotshot_query_service/data_source/persistence_tests/fn.test_revert.html b/hotshot_query_service/data_source/persistence_tests/fn.test_revert.html index a4af77d70..909d5c9bd 100644 --- a/hotshot_query_service/data_source/persistence_tests/fn.test_revert.html +++ b/hotshot_query_service/data_source/persistence_tests/fn.test_revert.html @@ -1,2 +1,2 @@ -test_revert in hotshot_query_service::data_source::persistence_tests - Rust
    pub async fn test_revert<D: TestableDataSource>()
    where +test_revert in hotshot_query_service::data_source::persistence_tests - Rust
    \ No newline at end of file diff --git a/hotshot_query_service/data_source/persistence_tests/index.html b/hotshot_query_service/data_source/persistence_tests/index.html index c5cb7e6d7..f8e204af9 100644 --- a/hotshot_query_service/data_source/persistence_tests/index.html +++ b/hotshot_query_service/data_source/persistence_tests/index.html @@ -1,2 +1,2 @@ -hotshot_query_service::data_source::persistence_tests - Rust
    Expand description

    Generic tests we can instantiate for any data source with reliable, versioned persistent storage.

    +hotshot_query_service::data_source::persistence_tests - Rust
    Expand description

    Generic tests we can instantiate for any data source with reliable, versioned persistent storage.

    Functions§

    \ No newline at end of file diff --git a/hotshot_query_service/data_source/status_tests/fn.test_metrics.html b/hotshot_query_service/data_source/status_tests/fn.test_metrics.html index af4221a33..73ae9fe63 100644 --- a/hotshot_query_service/data_source/status_tests/fn.test_metrics.html +++ b/hotshot_query_service/data_source/status_tests/fn.test_metrics.html @@ -1 +1 @@ -test_metrics in hotshot_query_service::data_source::status_tests - Rust
    pub async fn test_metrics<D: DataSourceLifeCycle + StatusDataSource>()
    \ No newline at end of file +test_metrics in hotshot_query_service::data_source::status_tests - Rust
    pub async fn test_metrics<D: DataSourceLifeCycle + StatusDataSource>()
    \ No newline at end of file diff --git a/hotshot_query_service/data_source/status_tests/index.html b/hotshot_query_service/data_source/status_tests/index.html index 90fe06aae..120abc4fa 100644 --- a/hotshot_query_service/data_source/status_tests/index.html +++ b/hotshot_query_service/data_source/status_tests/index.html @@ -1,2 +1,2 @@ -hotshot_query_service::data_source::status_tests - Rust

    Module hotshot_query_service::data_source::status_tests

    source ·
    Expand description

    Generic tests we can instantiate for all the status data sources.

    +hotshot_query_service::data_source::status_tests - Rust

    Module hotshot_query_service::data_source::status_tests

    source ·
    Expand description

    Generic tests we can instantiate for all the status data sources.

    Functions§

    \ No newline at end of file diff --git a/hotshot_query_service/data_source/storage/fail_storage/enum.FailableAction.html b/hotshot_query_service/data_source/storage/fail_storage/enum.FailableAction.html index 673c1301b..84db68e2e 100644 --- a/hotshot_query_service/data_source/storage/fail_storage/enum.FailableAction.html +++ b/hotshot_query_service/data_source/storage/fail_storage/enum.FailableAction.html @@ -1,20 +1,24 @@ -FailableAction in hotshot_query_service::data_source::storage::fail_storage - Rust
    pub enum FailableAction {
    -    GetHeader,
    +FailableAction in hotshot_query_service::data_source::storage::fail_storage - Rust
    pub enum FailableAction {
    +
    Show 16 variants GetHeader, GetLeaf, GetBlock, GetPayload, + GetPayloadMetadata, GetVidCommon, + GetVidCommonMetadata, GetHeaderRange, GetLeafRange, GetBlockRange, GetPayloadRange, + GetPayloadMetadataRange, GetVidCommonRange, + GetVidCommonMetadataRange, GetTransaction, Any, -}
    Expand description

    A specific action that can be targetted to inject an error.

    -

    Variants§

    §

    GetHeader

    §

    GetLeaf

    §

    GetBlock

    §

    GetPayload

    §

    GetVidCommon

    §

    GetHeaderRange

    §

    GetLeafRange

    §

    GetBlockRange

    §

    GetPayloadRange

    §

    GetVidCommonRange

    §

    GetTransaction

    §

    Any

    Target any action for failure.

    -

    Trait Implementations§

    source§

    impl Clone for FailableAction

    source§

    fn clone(&self) -> FailableAction

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for FailableAction

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl PartialEq for FailableAction

    source§

    fn eq(&self, other: &FailableAction) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
    source§

    impl Copy for FailableAction

    source§

    impl Eq for FailableAction

    source§

    impl StructuralPartialEq for FailableAction

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    }
    Expand description

    A specific action that can be targetted to inject an error.

    +

    Variants§

    §

    GetHeader

    §

    GetLeaf

    §

    GetBlock

    §

    GetPayload

    §

    GetPayloadMetadata

    §

    GetVidCommon

    §

    GetVidCommonMetadata

    §

    GetHeaderRange

    §

    GetLeafRange

    §

    GetBlockRange

    §

    GetPayloadRange

    §

    GetPayloadMetadataRange

    §

    GetVidCommonRange

    §

    GetVidCommonMetadataRange

    §

    GetTransaction

    §

    Any

    Target any action for failure.

    +

    Trait Implementations§

    source§

    impl Clone for FailableAction

    source§

    fn clone(&self) -> FailableAction

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for FailableAction

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl PartialEq for FailableAction

    source§

    fn eq(&self, other: &FailableAction) -> bool

    Tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

    fn ne(&self, other: &Rhs) -> bool

    Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
    source§

    impl Copy for FailableAction

    source§

    impl Eq for FailableAction

    source§

    impl StructuralPartialEq for FailableAction

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<T> ArchivePointee for T

    §

    type ArchivedMetadata = ()

    The archived version of the pointer metadata for this type.
    §

    fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

    Converts some archived metadata to the pointer metadata for itself.
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where diff --git a/hotshot_query_service/data_source/storage/fail_storage/index.html b/hotshot_query_service/data_source/storage/fail_storage/index.html index 74495645c..e413cea8b 100644 --- a/hotshot_query_service/data_source/storage/fail_storage/index.html +++ b/hotshot_query_service/data_source/storage/fail_storage/index.html @@ -1 +1 @@ -hotshot_query_service::data_source::storage::fail_storage - Rust

    Structs§

    Enums§

    • A specific action that can be targetted to inject an error.
    \ No newline at end of file +hotshot_query_service::data_source::storage::fail_storage - Rust

    Structs§

    Enums§

    • A specific action that can be targetted to inject an error.
    \ No newline at end of file diff --git a/hotshot_query_service/data_source/storage/fail_storage/struct.FailStorage.html b/hotshot_query_service/data_source/storage/fail_storage/struct.FailStorage.html index f69f9f381..7418c6582 100644 --- a/hotshot_query_service/data_source/storage/fail_storage/struct.FailStorage.html +++ b/hotshot_query_service/data_source/storage/fail_storage/struct.FailStorage.html @@ -1,23 +1,23 @@ -FailStorage in hotshot_query_service::data_source::storage::fail_storage - Rust
    pub struct FailStorage<S> { /* private fields */ }
    Expand description

    Storage wrapper for error injection.

    -

    Implementations§

    source§

    impl<S> FailStorage<S>

    source

    pub async fn fail_reads(&self, action: FailableAction)

    source

    pub async fn fail_writes(&self, action: FailableAction)

    source

    pub async fn fail_commits(&self, action: FailableAction)

    source

    pub async fn fail_begins_writable(&self, action: FailableAction)

    source

    pub async fn fail_begins_read_only(&self, action: FailableAction)

    source

    pub async fn fail(&self, action: FailableAction)

    source

    pub async fn pass_reads(&self)

    source

    pub async fn pass_writes(&self)

    source

    pub async fn pass_commits(&self)

    source

    pub async fn pass_begins_writable(&self)

    source

    pub async fn pass_begins_read_only(&self)

    source

    pub async fn pass(&self)

    source

    pub async fn fail_one_read(&self, action: FailableAction)

    source

    pub async fn fail_one_write(&self, action: FailableAction)

    source

    pub async fn fail_one_commit(&self, action: FailableAction)

    source

    pub async fn fail_one_begin_writable(&self, action: FailableAction)

    source

    pub async fn fail_one_begin_read_only(&self, action: FailableAction)

    Trait Implementations§

    source§

    impl<S: Clone> Clone for FailStorage<S>

    source§

    fn clone(&self) -> FailStorage<S>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<S: Debug> Debug for FailStorage<S>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<S> From<S> for FailStorage<S>

    source§

    fn from(inner: S) -> Self

    Converts to this type from the input type.
    source§

    impl<S> HasMetrics for FailStorage<S>
    where - S: HasMetrics,

    source§

    impl<S> PruneStorage for FailStorage<S>
    where - S: PruneStorage + Sync,

    source§

    type Pruner = <S as PruneStorage>::Pruner

    source§

    fn get_disk_usage<'life0, 'async_trait>( +FailStorage in hotshot_query_service::data_source::storage::fail_storage - Rust
    pub struct FailStorage<S> { /* private fields */ }
    Expand description

    Storage wrapper for error injection.

    +

    Implementations§

    source§

    impl<S> FailStorage<S>

    source

    pub async fn fail_reads(&self, action: FailableAction)

    source

    pub async fn fail_writes(&self, action: FailableAction)

    source

    pub async fn fail_commits(&self, action: FailableAction)

    source

    pub async fn fail_begins_writable(&self, action: FailableAction)

    source

    pub async fn fail_begins_read_only(&self, action: FailableAction)

    source

    pub async fn fail(&self, action: FailableAction)

    source

    pub async fn pass_reads(&self)

    source

    pub async fn pass_writes(&self)

    source

    pub async fn pass_commits(&self)

    source

    pub async fn pass_begins_writable(&self)

    source

    pub async fn pass_begins_read_only(&self)

    source

    pub async fn pass(&self)

    source

    pub async fn fail_one_read(&self, action: FailableAction)

    source

    pub async fn fail_one_write(&self, action: FailableAction)

    source

    pub async fn fail_one_commit(&self, action: FailableAction)

    source

    pub async fn fail_one_begin_writable(&self, action: FailableAction)

    source

    pub async fn fail_one_begin_read_only(&self, action: FailableAction)

    Trait Implementations§

    source§

    impl<S: Clone> Clone for FailStorage<S>

    source§

    fn clone(&self) -> FailStorage<S>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<S: Debug> Debug for FailStorage<S>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<S> From<S> for FailStorage<S>

    source§

    fn from(inner: S) -> Self

    Converts to this type from the input type.
    source§

    impl<S> HasMetrics for FailStorage<S>
    where + S: HasMetrics,

    source§

    impl<S> PruneStorage for FailStorage<S>
    where + S: PruneStorage + Sync,

    source§

    type Pruner = <S as PruneStorage>::Pruner

    source§

    fn get_disk_usage<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn prune<'life0, 'life1, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn prune<'life0, 'life1, 'async_trait>( &'life0 self, pruner: &'life1 mut Self::Pruner, ) -> Pin<Box<dyn Future<Output = Result<Option<u64>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

    source§

    impl<S> PrunerConfig for FailStorage<S>
    where - S: PrunerConfig,

    source§

    impl<S> VersionedDataSource for FailStorage<S>

    source§

    type Transaction<'a> = Transaction<<S as VersionedDataSource>::Transaction<'a>> + 'life1: 'async_trait,

    source§

    impl<S> PrunerConfig for FailStorage<S>
    where + S: PrunerConfig,

    source§

    impl<S> VersionedDataSource for FailStorage<S>

    source§

    type Transaction<'a> = Transaction<<S as VersionedDataSource>::Transaction<'a>> where - Self: 'a

    A transaction which can read and modify the data source.
    source§

    type ReadOnly<'a> = Transaction<<S as VersionedDataSource>::ReadOnly<'a>> + Self: 'a

    A transaction which can read and modify the data source.
    source§

    type ReadOnly<'a> = Transaction<<S as VersionedDataSource>::ReadOnly<'a>> where - Self: 'a

    source§

    async fn write(&self) -> Result<<Self as VersionedDataSource>::Transaction<'_>>

    Start an atomic transaction on the data source.
    source§

    async fn read(&self) -> Result<<Self as VersionedDataSource>::ReadOnly<'_>>

    Start a read-only transaction on the data source. Read more

    Auto Trait Implementations§

    §

    impl<S> Freeze for FailStorage<S>
    where + Self: 'a

    source§

    async fn write(&self) -> Result<<Self as VersionedDataSource>::Transaction<'_>>

    Start an atomic transaction on the data source.
    source§

    async fn read(&self) -> Result<<Self as VersionedDataSource>::ReadOnly<'_>>

    Start a read-only transaction on the data source. Read more

    Auto Trait Implementations§

    §

    impl<S> Freeze for FailStorage<S>
    where S: Freeze,

    §

    impl<S> !RefUnwindSafe for FailStorage<S>

    §

    impl<S> Send for FailStorage<S>
    where S: Send,

    §

    impl<S> Sync for FailStorage<S>
    where S: Sync,

    §

    impl<S> Unpin for FailStorage<S>
    where diff --git a/hotshot_query_service/data_source/storage/fail_storage/struct.Transaction.html b/hotshot_query_service/data_source/storage/fail_storage/struct.Transaction.html index 41d28b056..28553815c 100644 --- a/hotshot_query_service/data_source/storage/fail_storage/struct.Transaction.html +++ b/hotshot_query_service/data_source/storage/fail_storage/struct.Transaction.html @@ -1,108 +1,130 @@ -Transaction in hotshot_query_service::data_source::storage::fail_storage - Rust
    pub struct Transaction<T> { /* private fields */ }

    Trait Implementations§

    source§

    impl<T> AggregatesStorage for Transaction<T>
    where - T: AggregatesStorage + Send + Sync,

    source§

    async fn aggregates_height(&mut self) -> Result<usize>

    The block height for which aggregate statistics are currently available.
    source§

    impl<Types, T> AvailabilityStorage<Types> for Transaction<T>
    where +Transaction in hotshot_query_service::data_source::storage::fail_storage - Rust
    pub struct Transaction<T> { /* private fields */ }

    Trait Implementations§

    source§

    impl<T> AggregatesStorage for Transaction<T>
    where + T: AggregatesStorage + Send + Sync,

    source§

    async fn aggregates_height(&mut self) -> Result<usize>

    The block height for which aggregate statistics are currently available.
    source§

    impl<Types, T> AvailabilityStorage<Types> for Transaction<T>
    where Types: NodeType, Payload<Types>: QueryablePayload<Types>, - T: AvailabilityStorage<Types>,

    source§

    fn get_leaf<'life0, 'async_trait>( + T: AvailabilityStorage<Types>,

    source§

    fn get_leaf<'life0, 'async_trait>( &'life0 mut self, id: LeafId<Types>, ) -> Pin<Box<dyn Future<Output = QueryResult<LeafQueryData<Types>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_block<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn get_block<'life0, 'async_trait>( &'life0 mut self, id: BlockId<Types>, ) -> Pin<Box<dyn Future<Output = QueryResult<BlockQueryData<Types>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_header<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn get_header<'life0, 'async_trait>( &'life0 mut self, id: BlockId<Types>, ) -> Pin<Box<dyn Future<Output = QueryResult<Header<Types>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_payload<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn get_payload<'life0, 'async_trait>( &'life0 mut self, id: BlockId<Types>, ) -> Pin<Box<dyn Future<Output = QueryResult<PayloadQueryData<Types>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_vid_common<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn get_payload_metadata<'life0, 'async_trait>( + &'life0 mut self, + id: BlockId<Types>, +) -> Pin<Box<dyn Future<Output = QueryResult<PayloadMetadata<Types>>> + Send + 'async_trait>>
    where + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn get_vid_common<'life0, 'async_trait>( &'life0 mut self, id: BlockId<Types>, ) -> Pin<Box<dyn Future<Output = QueryResult<VidCommonQueryData<Types>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_leaf_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source§

    fn get_vid_common_metadata<'life0, 'async_trait>( + &'life0 mut self, + id: BlockId<Types>, +) -> Pin<Box<dyn Future<Output = QueryResult<VidCommonMetadata<Types>>> + Send + 'async_trait>>
    where + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn get_leaf_range<'life0, 'async_trait, R>( &'life0 mut self, range: R, ) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<LeafQueryData<Types>>>>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_block_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source§

    fn get_block_range<'life0, 'async_trait, R>( &'life0 mut self, range: R, ) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<BlockQueryData<Types>>>>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_payload_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source§

    fn get_payload_range<'life0, 'async_trait, R>( &'life0 mut self, range: R, ) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<PayloadQueryData<Types>>>>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_vid_common_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source§

    fn get_payload_metadata_range<'life0, 'async_trait, R>( + &'life0 mut self, + range: R, +) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<PayloadMetadata<Types>>>>> + Send + 'async_trait>>
    where + R: RangeBounds<usize> + Send + 'static + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn get_vid_common_range<'life0, 'async_trait, R>( &'life0 mut self, range: R, ) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<VidCommonQueryData<Types>>>>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_transaction<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn get_vid_common_metadata_range<'life0, 'async_trait, R>( + &'life0 mut self, + range: R, +) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<VidCommonMetadata<Types>>>>> + Send + 'async_trait>>
    where + R: RangeBounds<usize> + Send + 'static + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn get_transaction<'life0, 'async_trait>( &'life0 mut self, hash: TransactionHash<Types>, ) -> Pin<Box<dyn Future<Output = QueryResult<TransactionQueryData<Types>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    impl<T: Debug> Debug for Transaction<T>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<Types, T> NodeStorage<Types> for Transaction<T>
    where + 'life0: 'async_trait,

    source§

    impl<T: Debug> Debug for Transaction<T>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<Types, T> NodeStorage<Types> for Transaction<T>
    where Types: NodeType, - T: NodeStorage<Types> + Send + Sync,

    source§

    fn block_height<'life0, 'async_trait>( + T: NodeStorage<Types> + Send + Sync,

    source§

    fn block_height<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn count_transactions_in_range<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn count_transactions_in_range<'life0, 'async_trait>( &'life0 mut self, range: impl 'async_trait + RangeBounds<usize> + Send, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn payload_size_in_range<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn payload_size_in_range<'life0, 'async_trait>( &'life0 mut self, range: impl 'async_trait + RangeBounds<usize> + Send, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn vid_share<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

    source§

    fn vid_share<'life0, 'async_trait, ID>( &'life0 mut self, id: ID, ) -> Pin<Box<dyn Future<Output = QueryResult<VidShare>> + Send + 'async_trait>>
    where ID: Into<BlockId<Types>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn sync_status<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn sync_status<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = QueryResult<SyncStatus>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    Search the database for missing objects and generate a report.
    source§

    fn get_header_window<'life0, 'async_trait>( + 'life0: 'async_trait,

    Search the database for missing objects and generate a report.
    source§

    fn get_header_window<'life0, 'async_trait>( &'life0 mut self, start: impl 'async_trait + Into<WindowStart<Types>> + Send + Sync, end: u64, ) -> Pin<Box<dyn Future<Output = QueryResult<TimeWindowQueryData<Header<Types>>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    impl<T> PrunedHeightStorage for Transaction<T>
    where - T: PrunedHeightStorage + Send + Sync,

    source§

    fn load_pruned_height<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    impl<T> PrunedHeightStorage for Transaction<T>
    where + T: PrunedHeightStorage + Send + Sync,

    source§

    fn load_pruned_height<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<Option<u64>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    impl<T> Transaction for Transaction<T>
    where - T: Transaction,

    source§

    async fn commit(self) -> Result<()>

    source§

    fn revert(self) -> impl Future + Send

    source§

    impl<T, Types> UpdateAggregatesStorage<Types> for Transaction<T>
    where + 'life0: 'async_trait,

    source§

    impl<T> Transaction for Transaction<T>
    where + T: Transaction,

    source§

    async fn commit(self) -> Result<()>

    source§

    fn revert(self) -> impl Future + Send

    source§

    impl<T, Types> UpdateAggregatesStorage<Types> for Transaction<T>
    where Types: NodeType, - T: UpdateAggregatesStorage<Types> + Send + Sync,

    source§

    async fn update_aggregates( &mut self, - block: &BlockQueryData<Types>, -) -> Result<()>

    Update aggregate statistics based on a new block.
    source§

    impl<Types, T> UpdateAvailabilityStorage<Types> for Transaction<T>
    where + blocks: &[PayloadMetadata<Types>], +) -> Result<()>

    Update aggregate statistics based on a new block.
    source§

    impl<Types, T> UpdateAvailabilityStorage<Types> for Transaction<T>
    where Types: NodeType, Payload<Types>: QueryablePayload<Types>, - T: UpdateAvailabilityStorage<Types> + Send + Sync,

    source§

    async fn insert_leaf(&mut self, leaf: LeafQueryData<Types>) -> Result<()>

    source§

    async fn insert_block(&mut self, block: BlockQueryData<Types>) -> Result<()>

    source§

    async fn insert_vid( + T: UpdateAvailabilityStorage<Types> + Send + Sync,

    source§

    async fn insert_leaf(&mut self, leaf: LeafQueryData<Types>) -> Result<()>

    source§

    async fn insert_block(&mut self, block: BlockQueryData<Types>) -> Result<()>

    source§

    async fn insert_vid( &mut self, common: VidCommonQueryData<Types>, share: Option<VidShare>, diff --git a/hotshot_query_service/data_source/storage/fs/index.html b/hotshot_query_service/data_source/storage/fs/index.html index b875b4cd9..2eab391a9 100644 --- a/hotshot_query_service/data_source/storage/fs/index.html +++ b/hotshot_query_service/data_source/storage/fs/index.html @@ -1 +1 @@ -hotshot_query_service::data_source::storage::fs - Rust

    Module hotshot_query_service::data_source::storage::fs

    source ·

    Structs§

    Traits§

    \ No newline at end of file +hotshot_query_service::data_source::storage::fs - Rust

    Module hotshot_query_service::data_source::storage::fs

    source ·

    Structs§

    Traits§

    \ No newline at end of file diff --git a/hotshot_query_service/data_source/storage/fs/struct.FileSystemStorage.html b/hotshot_query_service/data_source/storage/fs/struct.FileSystemStorage.html index 399ad2bcb..5f6c028cd 100644 --- a/hotshot_query_service/data_source/storage/fs/struct.FileSystemStorage.html +++ b/hotshot_query_service/data_source/storage/fs/struct.FileSystemStorage.html @@ -26,9 +26,9 @@ synchronization of the store.

    source

    pub async fn skip_version(&self) -> Result<(), PersistenceError>

    Advance the version of the persistent store without committing changes to persistent state.

    Trait Implementations§

    source§

    impl<Types: Debug + NodeType> Debug for FileSystemStorage<Types>
    where - Payload<Types>: QueryablePayload<Types>,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<Types> HasMetrics for FileSystemStorage<Types>
    where + Payload<Types>: QueryablePayload<Types>,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<Types> HasMetrics for FileSystemStorage<Types>
    where Types: NodeType, - Payload<Types>: QueryablePayload<Types>,

    source§

    impl<Types: NodeType> PruneStorage for FileSystemStorage<Types>
    where + Payload<Types>: QueryablePayload<Types>,

    source§

    impl<Types: NodeType> PruneStorage for FileSystemStorage<Types>
    where Payload<Types>: QueryablePayload<Types>,

    source§

    type Pruner = ()

    source§

    fn get_disk_usage<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>
    where diff --git a/hotshot_query_service/data_source/storage/fs/struct.Transaction.html b/hotshot_query_service/data_source/storage/fs/struct.Transaction.html index 98ea55938..f1647705e 100644 --- a/hotshot_query_service/data_source/storage/fs/struct.Transaction.html +++ b/hotshot_query_service/data_source/storage/fs/struct.Transaction.html @@ -1,4 +1,4 @@ -Transaction in hotshot_query_service::data_source::storage::fs - Rust
    pub struct Transaction<T: Revert> { /* private fields */ }

    Trait Implementations§

    source§

    impl<T: Revert + Send> AggregatesStorage for Transaction<T>

    source§

    async fn aggregates_height(&mut self) -> Result<usize>

    The block height for which aggregate statistics are currently available.
    source§

    impl<Types, T> AvailabilityStorage<Types> for Transaction<T>
    where +Transaction in hotshot_query_service::data_source::storage::fs - Rust
    pub struct Transaction<T: Revert> { /* private fields */ }

    Trait Implementations§

    source§

    impl<T: Revert + Send> AggregatesStorage for Transaction<T>

    source§

    async fn aggregates_height(&mut self) -> Result<usize>

    The block height for which aggregate statistics are currently available.
    source§

    impl<Types, T> AvailabilityStorage<Types> for Transaction<T>
    where Types: NodeType, Payload<Types>: QueryablePayload<Types>, Header<Types>: QueryableHeader<Types>, @@ -22,69 +22,91 @@ id: BlockId<Types>, ) -> Pin<Box<dyn Future<Output = QueryResult<PayloadQueryData<Types>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_vid_common<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn get_payload_metadata<'life0, 'async_trait>( + &'life0 mut self, + id: BlockId<Types>, +) -> Pin<Box<dyn Future<Output = QueryResult<PayloadMetadata<Types>>> + Send + 'async_trait>>
    where + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn get_vid_common<'life0, 'async_trait>( &'life0 mut self, id: BlockId<Types>, ) -> Pin<Box<dyn Future<Output = QueryResult<VidCommonQueryData<Types>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_leaf_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source§

    fn get_vid_common_metadata<'life0, 'async_trait>( + &'life0 mut self, + id: BlockId<Types>, +) -> Pin<Box<dyn Future<Output = QueryResult<VidCommonMetadata<Types>>> + Send + 'async_trait>>
    where + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn get_leaf_range<'life0, 'async_trait, R>( &'life0 mut self, range: R, ) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<LeafQueryData<Types>>>>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_block_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source§

    fn get_block_range<'life0, 'async_trait, R>( &'life0 mut self, range: R, ) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<BlockQueryData<Types>>>>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_payload_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source§

    fn get_payload_range<'life0, 'async_trait, R>( &'life0 mut self, range: R, ) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<PayloadQueryData<Types>>>>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_vid_common_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source§

    fn get_payload_metadata_range<'life0, 'async_trait, R>( + &'life0 mut self, + range: R, +) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<PayloadMetadata<Types>>>>> + Send + 'async_trait>>
    where + R: RangeBounds<usize> + Send + 'static + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn get_vid_common_range<'life0, 'async_trait, R>( &'life0 mut self, range: R, ) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<VidCommonQueryData<Types>>>>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_transaction<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn get_vid_common_metadata_range<'life0, 'async_trait, R>( + &'life0 mut self, + range: R, +) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<VidCommonMetadata<Types>>>>> + Send + 'async_trait>>
    where + R: RangeBounds<usize> + Send + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn get_transaction<'life0, 'async_trait>( &'life0 mut self, hash: TransactionHash<Types>, ) -> Pin<Box<dyn Future<Output = QueryResult<TransactionQueryData<Types>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    impl<T: Debug + Revert> Debug for Transaction<T>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<T: Revert> Drop for Transaction<T>

    source§

    fn drop(&mut self)

    Executes the destructor for this type. Read more
    source§

    impl<Types, T> NodeStorage<Types> for Transaction<T>
    where + 'life0: 'async_trait,

    source§

    impl<T: Debug + Revert> Debug for Transaction<T>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<T: Revert> Drop for Transaction<T>

    source§

    fn drop(&mut self)

    Executes the destructor for this type. Read more
    source§

    impl<Types, T> NodeStorage<Types> for Transaction<T>
    where Types: NodeType, Payload<Types>: QueryablePayload<Types>, Header<Types>: QueryableHeader<Types>, - T: Revert + Deref<Target = FileSystemStorageInner<Types>> + Send,

    source§

    fn block_height<'life0, 'async_trait>( + T: Revert + Deref<Target = FileSystemStorageInner<Types>> + Send,

    source§

    fn block_height<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn count_transactions_in_range<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn count_transactions_in_range<'life0, 'async_trait>( &'life0 mut self, range: impl 'async_trait + RangeBounds<usize> + Send, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn payload_size_in_range<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn payload_size_in_range<'life0, 'async_trait>( &'life0 mut self, range: impl 'async_trait + RangeBounds<usize> + Send, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn vid_share<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

    source§

    fn vid_share<'life0, 'async_trait, ID>( &'life0 mut self, id: ID, ) -> Pin<Box<dyn Future<Output = QueryResult<VidShare>> + Send + 'async_trait>>
    where ID: Into<BlockId<Types>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn sync_status<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn sync_status<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = QueryResult<SyncStatus>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    Search the database for missing objects and generate a report.
    source§

    fn get_header_window<'life0, 'async_trait>( + 'life0: 'async_trait,

    Search the database for missing objects and generate a report.
    source§

    fn get_header_window<'life0, 'async_trait>( &'life0 mut self, start: impl 'async_trait + Into<WindowStart<Types>> + Send + Sync, end: u64, @@ -94,17 +116,17 @@ Types: NodeType, Payload<Types>: QueryablePayload<Types>,

    source§

    async fn commit(self) -> Result<()>

    source§

    fn revert(self) -> impl Future + Send

    source§

    impl<'a, Types> Transaction for Transaction<RwLockWriteGuard<'a, FileSystemStorageInner<Types>>>
    where Types: NodeType, - Payload<Types>: QueryablePayload<Types>,

    source§

    async fn commit(self) -> Result<()>

    source§

    fn revert(self) -> impl Future + Send

    source§

    impl<Types, T: Revert + Send> UpdateAggregatesStorage<Types> for Transaction<T>
    where - Types: NodeType,

    source§

    async fn commit(self) -> Result<()>

    source§

    fn revert(self) -> impl Future + Send

    source§

    impl<Types, T: Revert + Send> UpdateAggregatesStorage<Types> for Transaction<T>
    where + Types: NodeType,

    source§

    async fn update_aggregates( &mut self, - _block: &BlockQueryData<Types>, -) -> Result<()>

    Update aggregate statistics based on a new block.
    source§

    impl<'a, Types: NodeType> UpdateAvailabilityStorage<Types> for Transaction<RwLockWriteGuard<'a, FileSystemStorageInner<Types>>>
    where + _blocks: &[PayloadMetadata<Types>], +) -> Result<()>

    Update aggregate statistics based on a new block.
    source§

    impl<'a, Types: NodeType> UpdateAvailabilityStorage<Types> for Transaction<RwLockWriteGuard<'a, FileSystemStorageInner<Types>>>
    where Payload<Types>: QueryablePayload<Types>, - Header<Types>: QueryableHeader<Types>,

    source§

    async fn insert_leaf(&mut self, leaf: LeafQueryData<Types>) -> Result<()>

    source§

    async fn insert_block(&mut self, block: BlockQueryData<Types>) -> Result<()>

    source§

    async fn insert_vid( + Header<Types>: QueryableHeader<Types>,

    source§

    async fn insert_leaf(&mut self, leaf: LeafQueryData<Types>) -> Result<()>

    source§

    async fn insert_block(&mut self, block: BlockQueryData<Types>) -> Result<()>

    source§

    async fn insert_vid( &mut self, common: VidCommonQueryData<Types>, share: Option<VidShare>, -) -> Result<()>

    source§

    impl<T: Revert> PrunedHeightStorage for Transaction<T>

    Auto Trait Implementations§

    §

    impl<T> Freeze for Transaction<T>
    where +) -> Result<()>

    source§

    impl<T: Revert> PrunedHeightStorage for Transaction<T>

    Auto Trait Implementations§

    §

    impl<T> Freeze for Transaction<T>
    where T: Freeze,

    §

    impl<T> RefUnwindSafe for Transaction<T>
    where T: RefUnwindSafe,

    §

    impl<T> Send for Transaction<T>
    where T: Send,

    §

    impl<T> Sync for Transaction<T>
    where diff --git a/hotshot_query_service/data_source/storage/index.html b/hotshot_query_service/data_source/storage/index.html index 196fb8f4a..ace2694cc 100644 --- a/hotshot_query_service/data_source/storage/index.html +++ b/hotshot_query_service/data_source/storage/index.html @@ -1,4 +1,4 @@ -hotshot_query_service::data_source::storage - Rust

    Module hotshot_query_service::data_source::storage

    source ·
    Expand description

    Persistent storage for data sources.

    +hotshot_query_service::data_source::storage - Rust

    Module hotshot_query_service::data_source::storage

    source ·
    Expand description

    Persistent storage for data sources.

    Naturally, an archival query service such as this is heavily dependent on a persistent storage implementation. This module defines the interfaces required of this storage. Any storage layer implementing the appropriate interfaces can be used as the storage layer when constructing a diff --git a/hotshot_query_service/data_source/storage/no_storage/index.html b/hotshot_query_service/data_source/storage/no_storage/index.html index a73f7e9bd..c5fac675c 100644 --- a/hotshot_query_service/data_source/storage/no_storage/index.html +++ b/hotshot_query_service/data_source/storage/no_storage/index.html @@ -1 +1 @@ -hotshot_query_service::data_source::storage::no_storage - Rust

    Modules§

    Structs§

    \ No newline at end of file +hotshot_query_service::data_source::storage::no_storage - Rust

    Modules§

    Structs§

    \ No newline at end of file diff --git a/hotshot_query_service/data_source/storage/no_storage/struct.Transaction.html b/hotshot_query_service/data_source/storage/no_storage/struct.Transaction.html index aeadd5ca2..a7690ce77 100644 --- a/hotshot_query_service/data_source/storage/no_storage/struct.Transaction.html +++ b/hotshot_query_service/data_source/storage/no_storage/struct.Transaction.html @@ -1,4 +1,4 @@ -Transaction in hotshot_query_service::data_source::storage::no_storage - Rust
    pub struct Transaction<'a> { /* private fields */ }

    Trait Implementations§

    source§

    impl<'a> AggregatesStorage for Transaction<'a>

    source§

    async fn aggregates_height(&mut self) -> Result<usize>

    The block height for which aggregate statistics are currently available.
    source§

    impl<'a, Types: NodeType> AvailabilityStorage<Types> for Transaction<'a>
    where +Transaction in hotshot_query_service::data_source::storage::no_storage - Rust
    pub struct Transaction<'a> { /* private fields */ }

    Trait Implementations§

    source§

    impl<'a> AggregatesStorage for Transaction<'a>

    source§

    async fn aggregates_height(&mut self) -> Result<usize>

    The block height for which aggregate statistics are currently available.
    source§

    impl<'a, Types: NodeType> AvailabilityStorage<Types> for Transaction<'a>
    where Payload<Types>: QueryablePayload<Types>,

    source§

    fn get_leaf<'life0, 'async_trait>( &'life0 mut self, _id: LeafId<Types>, @@ -19,66 +19,88 @@ _id: BlockId<Types>, ) -> Pin<Box<dyn Future<Output = QueryResult<PayloadQueryData<Types>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_vid_common<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn get_payload_metadata<'life0, 'async_trait>( + &'life0 mut self, + _id: BlockId<Types>, +) -> Pin<Box<dyn Future<Output = QueryResult<PayloadMetadata<Types>>> + Send + 'async_trait>>
    where + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn get_vid_common<'life0, 'async_trait>( &'life0 mut self, _id: BlockId<Types>, ) -> Pin<Box<dyn Future<Output = QueryResult<VidCommonQueryData<Types>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_leaf_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source§

    fn get_vid_common_metadata<'life0, 'async_trait>( + &'life0 mut self, + _id: BlockId<Types>, +) -> Pin<Box<dyn Future<Output = QueryResult<VidCommonMetadata<Types>>> + Send + 'async_trait>>
    where + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn get_leaf_range<'life0, 'async_trait, R>( &'life0 mut self, _range: R, ) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<LeafQueryData<Types>>>>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_block_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source§

    fn get_block_range<'life0, 'async_trait, R>( &'life0 mut self, _range: R, ) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<BlockQueryData<Types>>>>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_payload_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source§

    fn get_payload_range<'life0, 'async_trait, R>( &'life0 mut self, _range: R, ) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<PayloadQueryData<Types>>>>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_vid_common_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source§

    fn get_payload_metadata_range<'life0, 'async_trait, R>( + &'life0 mut self, + _range: R, +) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<PayloadMetadata<Types>>>>> + Send + 'async_trait>>
    where + R: RangeBounds<usize> + Send + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn get_vid_common_range<'life0, 'async_trait, R>( &'life0 mut self, _range: R, ) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<VidCommonQueryData<Types>>>>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_transaction<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn get_vid_common_metadata_range<'life0, 'async_trait, R>( + &'life0 mut self, + _range: R, +) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<VidCommonMetadata<Types>>>>> + Send + 'async_trait>>
    where + R: RangeBounds<usize> + Send + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn get_transaction<'life0, 'async_trait>( &'life0 mut self, _hash: TransactionHash<Types>, ) -> Pin<Box<dyn Future<Output = QueryResult<TransactionQueryData<Types>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    impl<'a, Types: NodeType> NodeStorage<Types> for Transaction<'a>
    where - Payload<Types>: QueryablePayload<Types>,

    source§

    fn block_height<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    impl<'a, Types: NodeType> NodeStorage<Types> for Transaction<'a>
    where + Payload<Types>: QueryablePayload<Types>,

    source§

    fn block_height<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn count_transactions_in_range<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn count_transactions_in_range<'life0, 'async_trait>( &'life0 mut self, _range: impl 'async_trait + RangeBounds<usize> + Send, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn payload_size_in_range<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn payload_size_in_range<'life0, 'async_trait>( &'life0 mut self, _range: impl 'async_trait + RangeBounds<usize> + Send, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn vid_share<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

    source§

    fn vid_share<'life0, 'async_trait, ID>( &'life0 mut self, _id: ID, ) -> Pin<Box<dyn Future<Output = QueryResult<VidShare>> + Send + 'async_trait>>
    where ID: Into<BlockId<Types>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn sync_status<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn sync_status<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = QueryResult<SyncStatus>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    Search the database for missing objects and generate a report.
    source§

    fn get_header_window<'life0, 'async_trait>( + 'life0: 'async_trait,

    Search the database for missing objects and generate a report.
    source§

    fn get_header_window<'life0, 'async_trait>( &'life0 mut self, _start: impl 'async_trait + Into<WindowStart<Types>> + Send + Sync, _end: u64, @@ -88,12 +110,12 @@ &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<Option<u64>>> + Send + 'async_trait>>
    where Self: Send + 'async_trait, - 'life0: 'async_trait,

    source§

    impl<'a> Transaction for Transaction<'a>

    source§

    async fn commit(self) -> Result<()>

    source§

    fn revert(self) -> impl Future + Send

    source§

    impl<'a, Types> UpdateAggregatesStorage<Types> for Transaction<'a>
    where - Types: NodeType,

    source§

    async fn update_aggregates( + 'life0: 'async_trait,

    source§

    impl<'a> Transaction for Transaction<'a>

    source§

    async fn commit(self) -> Result<()>

    source§

    fn revert(self) -> impl Future + Send

    source§

    impl<'a, Types> UpdateAggregatesStorage<Types> for Transaction<'a>
    where + Types: NodeType,

    source§

    async fn update_aggregates( &mut self, - _block: &BlockQueryData<Types>, -) -> Result<()>

    Update aggregate statistics based on a new block.
    source§

    impl<'a, Types: NodeType> UpdateAvailabilityStorage<Types> for Transaction<'a>
    where - Payload<Types>: QueryablePayload<Types>,

    source§

    async fn insert_leaf(&mut self, leaf: LeafQueryData<Types>) -> Result<()>

    source§

    async fn insert_block(&mut self, block: BlockQueryData<Types>) -> Result<()>

    source§

    async fn insert_vid( + _blocks: &[PayloadMetadata<Types>], +) -> Result<()>

    Update aggregate statistics based on a new block.
    source§

    impl<'a, Types: NodeType> UpdateAvailabilityStorage<Types> for Transaction<'a>
    where + Payload<Types>: QueryablePayload<Types>,

    source§

    async fn insert_leaf(&mut self, leaf: LeafQueryData<Types>) -> Result<()>

    source§

    async fn insert_block(&mut self, block: BlockQueryData<Types>) -> Result<()>

    source§

    async fn insert_vid( &mut self, common: VidCommonQueryData<Types>, _share: Option<VidShare>, diff --git a/hotshot_query_service/data_source/storage/no_storage/testing/enum.DataSource.html b/hotshot_query_service/data_source/storage/no_storage/testing/enum.DataSource.html index 1efc918b6..dda9e33ed 100644 --- a/hotshot_query_service/data_source/storage/no_storage/testing/enum.DataSource.html +++ b/hotshot_query_service/data_source/storage/no_storage/testing/enum.DataSource.html @@ -1,133 +1,171 @@ -DataSource in hotshot_query_service::data_source::storage::no_storage::testing - Rust
    pub enum DataSource {
    +DataSource in hotshot_query_service::data_source::storage::no_storage::testing - Rust

    Variants§

    Trait Implementations§

    source§

    impl AvailabilityDataSource<MockTypes> for DataSource

    source§

    type LeafRange<R> = Pin<Box<dyn Stream<Item = Fetch<LeafQueryData<MockTypes>>> + Send>> where - R: RangeBounds<usize> + Send

    source§

    type BlockRange<R> = Pin<Box<dyn Stream<Item = Fetch<BlockQueryData<MockTypes>>> + Send>> + R: RangeBounds<usize> + Send

    source§

    type BlockRange<R> = Pin<Box<dyn Stream<Item = Fetch<BlockQueryData<MockTypes>>> + Send>> where - R: RangeBounds<usize> + Send

    source§

    type PayloadRange<R> = Pin<Box<dyn Stream<Item = Fetch<PayloadQueryData<MockTypes>>> + Send>> + R: RangeBounds<usize> + Send

    source§

    type PayloadRange<R> = Pin<Box<dyn Stream<Item = Fetch<PayloadQueryData<MockTypes>>> + Send>> where - R: RangeBounds<usize> + Send

    source§

    type VidCommonRange<R> = Pin<Box<dyn Stream<Item = Fetch<VidCommonQueryData<MockTypes>>> + Send>> + R: RangeBounds<usize> + Send

    source§

    type PayloadMetadataRange<R> = Pin<Box<dyn Stream<Item = Fetch<PayloadMetadata<MockTypes>>> + Send>> where - R: RangeBounds<usize> + Send

    source§

    fn get_leaf<'life0, 'async_trait, ID>( + R: RangeBounds<usize> + Send

    source§

    type VidCommonRange<R> = Pin<Box<dyn Stream<Item = Fetch<VidCommonQueryData<MockTypes>>> + Send>> +where + R: RangeBounds<usize> + Send

    source§

    type VidCommonMetadataRange<R> = Pin<Box<dyn Stream<Item = Fetch<VidCommonMetadata<MockTypes>>> + Send>> +where + R: RangeBounds<usize> + Send

    source§

    fn get_leaf<'life0, 'async_trait, ID>( &'life0 self, id: ID, ) -> Pin<Box<dyn Future<Output = Fetch<LeafQueryData<MockTypes>>> + Send + 'async_trait>>
    where ID: Into<LeafId<MockTypes>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_block<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

    source§

    fn get_block<'life0, 'async_trait, ID>( &'life0 self, id: ID, ) -> Pin<Box<dyn Future<Output = Fetch<BlockQueryData<MockTypes>>> + Send + 'async_trait>>
    where ID: Into<BlockId<MockTypes>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_payload<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

    source§

    fn get_payload<'life0, 'async_trait, ID>( &'life0 self, id: ID, ) -> Pin<Box<dyn Future<Output = Fetch<PayloadQueryData<MockTypes>>> + Send + 'async_trait>>
    where ID: Into<BlockId<MockTypes>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_vid_common<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

    source§

    fn get_payload_metadata<'life0, 'async_trait, ID>( + &'life0 self, + id: ID, +) -> Pin<Box<dyn Future<Output = Fetch<PayloadMetadata<MockTypes>>> + Send + 'async_trait>>
    where + ID: Into<BlockId<MockTypes>> + Send + Sync + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn get_vid_common<'life0, 'async_trait, ID>( &'life0 self, id: ID, ) -> Pin<Box<dyn Future<Output = Fetch<VidCommonQueryData<MockTypes>>> + Send + 'async_trait>>
    where ID: Into<BlockId<MockTypes>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_leaf_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source§

    fn get_vid_common_metadata<'life0, 'async_trait, ID>( + &'life0 self, + id: ID, +) -> Pin<Box<dyn Future<Output = Fetch<VidCommonMetadata<MockTypes>>> + Send + 'async_trait>>
    where + ID: Into<BlockId<MockTypes>> + Send + Sync + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn get_leaf_range<'life0, 'async_trait, R>( &'life0 self, range: R, ) -> Pin<Box<dyn Future<Output = Self::LeafRange<R>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_block_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source§

    fn get_block_range<'life0, 'async_trait, R>( &'life0 self, range: R, ) -> Pin<Box<dyn Future<Output = Self::BlockRange<R>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_payload_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source§

    fn get_payload_range<'life0, 'async_trait, R>( &'life0 self, range: R, ) -> Pin<Box<dyn Future<Output = Self::PayloadRange<R>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_vid_common_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source§

    fn get_payload_metadata_range<'life0, 'async_trait, R>( + &'life0 self, + range: R, +) -> Pin<Box<dyn Future<Output = Self::PayloadMetadataRange<R>> + Send + 'async_trait>>
    where + R: RangeBounds<usize> + Send + 'static + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn get_vid_common_range<'life0, 'async_trait, R>( &'life0 self, range: R, ) -> Pin<Box<dyn Future<Output = Self::VidCommonRange<R>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_transaction<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn get_vid_common_metadata_range<'life0, 'async_trait, R>( + &'life0 self, + range: R, +) -> Pin<Box<dyn Future<Output = Self::VidCommonMetadataRange<R>> + Send + 'async_trait>>
    where + R: RangeBounds<usize> + Send + 'static + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn get_transaction<'life0, 'async_trait>( &'life0 self, hash: TransactionHash<MockTypes>, ) -> Pin<Box<dyn Future<Output = Fetch<TransactionQueryData<MockTypes>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    Returns the transaction with the given hash.
    source§

    fn subscribe_blocks<'life0, 'async_trait>( + 'life0: 'async_trait,

    Returns the transaction with the given hash.
    source§

    fn subscribe_blocks<'life0, 'async_trait>( &'life0 self, from: usize, ) -> Pin<Box<dyn Future<Output = BoxStream<'static, BlockQueryData<Types>>> + Send + 'async_trait>>
    where Self: Sync + 'async_trait, - 'life0: 'async_trait,

    source§

    fn subscribe_payloads<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn subscribe_payloads<'life0, 'async_trait>( &'life0 self, from: usize, ) -> Pin<Box<dyn Future<Output = BoxStream<'static, PayloadQueryData<Types>>> + Send + 'async_trait>>
    where Self: Sync + 'async_trait, - 'life0: 'async_trait,

    source§

    fn subscribe_leaves<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn subscribe_payload_metadata<'life0, 'async_trait>( + &'life0 self, + from: usize, +) -> Pin<Box<dyn Future<Output = BoxStream<'static, PayloadMetadata<Types>>> + Send + 'async_trait>>
    where + Self: Sync + 'async_trait, + 'life0: 'async_trait,

    source§

    fn subscribe_leaves<'life0, 'async_trait>( &'life0 self, from: usize, ) -> Pin<Box<dyn Future<Output = BoxStream<'static, LeafQueryData<Types>>> + Send + 'async_trait>>
    where Self: Sync + 'async_trait, - 'life0: 'async_trait,

    source§

    fn subscribe_vid_common<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn subscribe_vid_common<'life0, 'async_trait>( &'life0 self, from: usize, ) -> Pin<Box<dyn Future<Output = BoxStream<'static, VidCommonQueryData<Types>>> + Send + 'async_trait>>
    where Self: Sync + 'async_trait, - 'life0: 'async_trait,

    source§

    impl Clone for DataSource

    source§

    fn clone(&self) -> DataSource

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl DataSourceLifeCycle for DataSource

    source§

    type Storage = Storage

    Backing storage for the data source. Read more
    source§

    fn create<'async_trait>( + 'life0: 'async_trait,

    source§

    fn subscribe_vid_common_metadata<'life0, 'async_trait>( + &'life0 self, + from: usize, +) -> Pin<Box<dyn Future<Output = BoxStream<'static, VidCommonMetadata<Types>>> + Send + 'async_trait>>
    where + Self: Sync + 'async_trait, + 'life0: 'async_trait,

    source§

    impl Clone for DataSource

    source§

    fn clone(&self) -> DataSource

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl DataSourceLifeCycle for DataSource

    source§

    type Storage = Storage

    Backing storage for the data source. Read more
    source§

    fn create<'async_trait>( node_id: usize, ) -> Pin<Box<dyn Future<Output = Self::Storage> + Send + 'async_trait>>
    where - Self: 'async_trait,

    source§

    fn connect<'life0, 'async_trait>( + Self: 'async_trait,

    source§

    fn connect<'life0, 'async_trait>( db: &'life0 Self::Storage, ) -> Pin<Box<dyn Future<Output = Self> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn reset<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn reset<'life0, 'async_trait>( db: &'life0 Self::Storage, ) -> Pin<Box<dyn Future<Output = Self> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn setup<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn setup<'life0, 'async_trait>( network: &'life0 mut MockNetwork<Self>, ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    Setup runs after setting up the network but before starting a test.
    source§

    fn handle_event<'life0, 'life1, 'async_trait>( + 'life0: 'async_trait,

    Setup runs after setting up the network but before starting a test.
    source§

    fn handle_event<'life0, 'life1, 'async_trait>( &'life0 self, event: &'life1 Event<MockTypes>, ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

    source§

    impl Debug for DataSource

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl HasMetrics for DataSource

    source§

    impl NodeDataSource<MockTypes> for DataSource

    source§

    fn block_height<'life0, 'async_trait>( + 'life1: 'async_trait,

    source§

    impl Debug for DataSource

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl HasMetrics for DataSource

    source§

    impl NodeDataSource<MockTypes> for DataSource

    source§

    fn block_height<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn count_transactions_in_range<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn count_transactions_in_range<'life0, 'async_trait>( &'life0 self, range: impl 'async_trait + RangeBounds<usize> + Send, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn payload_size_in_range<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn payload_size_in_range<'life0, 'async_trait>( &'life0 self, range: impl 'async_trait + RangeBounds<usize> + Send, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn vid_share<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

    source§

    fn vid_share<'life0, 'async_trait, ID>( &'life0 self, id: ID, ) -> Pin<Box<dyn Future<Output = QueryResult<VidShare>> + Send + 'async_trait>>
    where ID: Into<BlockId<MockTypes>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn sync_status<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn sync_status<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = QueryResult<SyncStatus>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    Search the database for missing objects and generate a report.
    source§

    fn get_header_window<'life0, 'async_trait>( + 'life0: 'async_trait,

    Search the database for missing objects and generate a report.
    source§

    fn get_header_window<'life0, 'async_trait>( &'life0 self, start: impl 'async_trait + Into<WindowStart<MockTypes>> + Send + Sync, end: u64, @@ -141,7 +179,7 @@ &'life0 self, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: Sync + 'async_trait, - 'life0: 'async_trait,

    source§

    impl StatusDataSource for DataSource

    source§

    fn block_height<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    impl StatusDataSource for DataSource

    source§

    fn block_height<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, @@ -153,11 +191,11 @@ &'life0 self, ) -> Pin<Box<dyn Future<Output = QueryResult<f64>> + Send + 'async_trait>>
    where Self: Sync + 'async_trait, - 'life0: 'async_trait,

    source§

    impl UpdateAvailabilityData<MockTypes> for DataSource

    source§

    async fn append(&self, info: BlockInfo<MockTypes>) -> Result<()>

    Append information about a new block to the database.
    source§

    impl VersionedDataSource for DataSource

    source§

    type Transaction<'a> = Transaction<'a, <SqlStorage as VersionedDataSource>::Transaction<'a>> + 'life0: 'async_trait,

    source§

    impl UpdateAvailabilityData<MockTypes> for DataSource

    source§

    async fn append(&self, info: BlockInfo<MockTypes>) -> Result<()>

    Append information about a new block to the database.
    source§

    impl VersionedDataSource for DataSource

    source§

    type Transaction<'a> = Transaction<'a, <SqlStorage as VersionedDataSource>::Transaction<'a>> where - Self: 'a

    A transaction which can read and modify the data source.
    source§

    type ReadOnly<'a> = Transaction<'a, <SqlStorage as VersionedDataSource>::ReadOnly<'a>> + Self: 'a

    A transaction which can read and modify the data source.
    source§

    type ReadOnly<'a> = Transaction<'a, <SqlStorage as VersionedDataSource>::ReadOnly<'a>> where - Self: 'a

    source§

    async fn read(&self) -> Result<Self::ReadOnly<'_>>

    Start a read-only transaction on the data source. Read more
    source§

    async fn write(&self) -> Result<Self::Transaction<'_>>

    Start an atomic transaction on the data source.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + Self: 'a

    source§

    async fn read(&self) -> Result<Self::ReadOnly<'_>>

    Start a read-only transaction on the data source. Read more
    source§

    async fn write(&self) -> Result<Self::Transaction<'_>>

    Start an atomic transaction on the data source.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<T> ArchivePointee for T

    §

    type ArchivedMetadata = ()

    The archived version of the pointer metadata for this type.
    §

    fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

    Converts some archived metadata to the pointer metadata for itself.
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where diff --git a/hotshot_query_service/data_source/storage/no_storage/testing/enum.Storage.html b/hotshot_query_service/data_source/storage/no_storage/testing/enum.Storage.html index e3c4c0e91..721a64407 100644 --- a/hotshot_query_service/data_source/storage/no_storage/testing/enum.Storage.html +++ b/hotshot_query_service/data_source/storage/no_storage/testing/enum.Storage.html @@ -1,4 +1,4 @@ -Storage in hotshot_query_service::data_source::storage::no_storage::testing - Rust
    pub enum Storage {
    +Storage in hotshot_query_service::data_source::storage::no_storage::testing - Rust
    pub enum Storage {
         Sql(TmpDb),
         NoStorage {
             fetch_from_port: u16,
    diff --git a/hotshot_query_service/data_source/storage/no_storage/testing/enum.Transaction.html b/hotshot_query_service/data_source/storage/no_storage/testing/enum.Transaction.html
    index 964f8445c..e18212b0b 100644
    --- a/hotshot_query_service/data_source/storage/no_storage/testing/enum.Transaction.html
    +++ b/hotshot_query_service/data_source/storage/no_storage/testing/enum.Transaction.html
    @@ -1,40 +1,40 @@
    -Transaction in hotshot_query_service::data_source::storage::no_storage::testing - Rust
    pub enum Transaction<'a, T> {
    +Transaction in hotshot_query_service::data_source::storage::no_storage::testing - Rust
    pub enum Transaction<'a, T> {
         Sql(T),
         NoStorage(Transaction<'a>),
    -}

    Variants§

    §

    Sql(T)

    §

    NoStorage(Transaction<'a>)

    Trait Implementations§

    source§

    impl<'a, T> NodeStorage<MockTypes> for Transaction<'a, T>
    where - T: NodeStorage<MockTypes> + Send,

    source§

    fn block_height<'life0, 'async_trait>( +}

    Variants§

    §

    Sql(T)

    §

    NoStorage(Transaction<'a>)

    Trait Implementations§

    source§

    impl<'a, T> NodeStorage<MockTypes> for Transaction<'a, T>
    where + T: NodeStorage<MockTypes> + Send,

    source§

    fn block_height<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn count_transactions_in_range<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn count_transactions_in_range<'life0, 'async_trait>( &'life0 mut self, range: impl 'async_trait + RangeBounds<usize> + Send, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn payload_size_in_range<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn payload_size_in_range<'life0, 'async_trait>( &'life0 mut self, range: impl 'async_trait + RangeBounds<usize> + Send, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn vid_share<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

    source§

    fn vid_share<'life0, 'async_trait, ID>( &'life0 mut self, id: ID, ) -> Pin<Box<dyn Future<Output = QueryResult<VidShare>> + Send + 'async_trait>>
    where ID: Into<BlockId<MockTypes>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn sync_status<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn sync_status<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = QueryResult<SyncStatus>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    Search the database for missing objects and generate a report.
    source§

    fn get_header_window<'life0, 'async_trait>( + 'life0: 'async_trait,

    Search the database for missing objects and generate a report.
    source§

    fn get_header_window<'life0, 'async_trait>( &'life0 mut self, start: impl 'async_trait + Into<WindowStart<MockTypes>> + Send + Sync, end: u64, ) -> Pin<Box<dyn Future<Output = QueryResult<TimeWindowQueryData<Header<MockTypes>>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    impl<'a, T> Transaction for Transaction<'a, T>
    where - T: Transaction,

    source§

    async fn commit(self) -> Result<()>

    source§

    fn revert(self) -> impl Future + Send

    source§

    impl<'a, T> UpdateAvailabilityStorage<MockTypes> for Transaction<'a, T>

    source§

    async fn insert_leaf(&mut self, leaf: LeafQueryData<MockTypes>) -> Result<()>

    source§

    async fn insert_block(&mut self, block: BlockQueryData<MockTypes>) -> Result<()>

    source§

    async fn insert_vid( + 'life0: 'async_trait,

    source§

    impl<'a, T> Transaction for Transaction<'a, T>
    where + T: Transaction,

    source§

    async fn commit(self) -> Result<()>

    source§

    fn revert(self) -> impl Future + Send

    source§

    impl<'a, T> UpdateAvailabilityStorage<MockTypes> for Transaction<'a, T>

    source§

    async fn insert_leaf(&mut self, leaf: LeafQueryData<MockTypes>) -> Result<()>

    source§

    async fn insert_block(&mut self, block: BlockQueryData<MockTypes>) -> Result<()>

    source§

    async fn insert_vid( &mut self, common: VidCommonQueryData<MockTypes>, share: Option<VidShare>, diff --git a/hotshot_query_service/data_source/storage/no_storage/testing/index.html b/hotshot_query_service/data_source/storage/no_storage/testing/index.html index adbf9744c..146cc9118 100644 --- a/hotshot_query_service/data_source/storage/no_storage/testing/index.html +++ b/hotshot_query_service/data_source/storage/no_storage/testing/index.html @@ -1 +1 @@ -hotshot_query_service::data_source::storage::no_storage::testing - Rust

    Enums§

    \ No newline at end of file +hotshot_query_service::data_source::storage::no_storage::testing - Rust

    Enums§

    \ No newline at end of file diff --git a/hotshot_query_service/data_source/storage/pruning/trait.PruneStorage.html b/hotshot_query_service/data_source/storage/pruning/trait.PruneStorage.html index 8362d7a3c..d18a3a2b9 100644 --- a/hotshot_query_service/data_source/storage/pruning/trait.PruneStorage.html +++ b/hotshot_query_service/data_source/storage/pruning/trait.PruneStorage.html @@ -24,6 +24,6 @@ ) -> Pin<Box<dyn Future<Output = Result<Option<u64>>> + Send + 'async_trait>>
    where Self: Sync + 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

    Implementors§

    source§

    impl PruneStorage for NoStorage

    source§

    impl PruneStorage for SqlStorage

    source§

    impl<S> PruneStorage for FailStorage<S>
    where - S: PruneStorage + Sync,

    source§

    impl<Types: NodeType> PruneStorage for FileSystemStorage<Types>
    where + 'life1: 'async_trait,

    Implementors§

    \ No newline at end of file diff --git a/hotshot_query_service/data_source/storage/pruning/trait.PrunedHeightStorage.html b/hotshot_query_service/data_source/storage/pruning/trait.PrunedHeightStorage.html index 5a4ffeda8..fdf9c998b 100644 --- a/hotshot_query_service/data_source/storage/pruning/trait.PrunedHeightStorage.html +++ b/hotshot_query_service/data_source/storage/pruning/trait.PrunedHeightStorage.html @@ -9,5 +9,5 @@ &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<Option<u64>>> + Send + 'async_trait>>
    where Self: Send + 'async_trait, - 'life0: 'async_trait,

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl<'a> PrunedHeightStorage for hotshot_query_service::data_source::storage::no_storage::Transaction<'a>

    source§

    impl<Mode: TransactionMode> PrunedHeightStorage for hotshot_query_service::data_source::storage::sql::Transaction<Mode>

    source§

    impl<T> PrunedHeightStorage for hotshot_query_service::data_source::storage::fail_storage::Transaction<T>
    where - T: PrunedHeightStorage + Send + Sync,

    source§

    impl<T: Revert> PrunedHeightStorage for hotshot_query_service::data_source::storage::fs::Transaction<T>

    \ No newline at end of file + 'life0: 'async_trait,

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl<'a> PrunedHeightStorage for hotshot_query_service::data_source::storage::no_storage::Transaction<'a>

    source§

    impl<Mode: TransactionMode> PrunedHeightStorage for hotshot_query_service::data_source::storage::sql::Transaction<Mode>

    source§

    impl<T> PrunedHeightStorage for hotshot_query_service::data_source::storage::fail_storage::Transaction<T>
    where + T: PrunedHeightStorage + Send + Sync,

    source§

    impl<T: Revert> PrunedHeightStorage for hotshot_query_service::data_source::storage::fs::Transaction<T>

    \ No newline at end of file diff --git a/hotshot_query_service/data_source/storage/pruning/trait.PrunerConfig.html b/hotshot_query_service/data_source/storage/pruning/trait.PrunerConfig.html index af1dd140e..d2bb8d5a6 100644 --- a/hotshot_query_service/data_source/storage/pruning/trait.PrunerConfig.html +++ b/hotshot_query_service/data_source/storage/pruning/trait.PrunerConfig.html @@ -2,6 +2,6 @@ // Provided methods fn set_pruning_config(&mut self, _cfg: PrunerCfg) { ... } fn get_pruning_config(&self) -> Option<PrunerCfg> { ... } -}

    Provided Methods§

    Implementors§

    \ No newline at end of file diff --git a/hotshot_query_service/data_source/storage/sql/struct.QueryBuilder.html b/hotshot_query_service/data_source/storage/sql/struct.QueryBuilder.html index 85918ad5b..06754e0f7 100644 --- a/hotshot_query_service/data_source/storage/sql/struct.QueryBuilder.html +++ b/hotshot_query_service/data_source/storage/sql/struct.QueryBuilder.html @@ -1,4 +1,4 @@ -QueryBuilder in hotshot_query_service::data_source::storage::sql - Rust
    pub struct QueryBuilder<'q> { /* private fields */ }
    Expand description

    Helper type for programatically constructing queries.

    +QueryBuilder in hotshot_query_service::data_source::storage::sql - Rust
    pub struct QueryBuilder<'q> { /* private fields */ }
    Expand description

    Helper type for programatically constructing queries.

    This type can be used to bind arguments of various types, similar to Query or QueryAs. With QueryBuilder, though, the arguments are bound first and the SQL statement is given last. Each time an argument is bound, a SQL fragment is returned as a string which can be used @@ -24,22 +24,22 @@

    §Example

    .await?; Ok(results) }
    -

    Implementations§

    source§

    impl<'q> QueryBuilder<'q>

    source

    pub fn bind<T>(&mut self, arg: T) -> QueryResult<String>
    where +

    Implementations§

    source§

    impl<'q> QueryBuilder<'q>

    source

    pub fn bind<T>(&mut self, arg: T) -> QueryResult<String>
    where T: 'q + Encode<'q, Db> + Type<Db>,

    Add an argument and return its name as a formal parameter in a SQL prepared statement.

    -
    source

    pub fn query(self, sql: &'q str) -> Query<'q>

    Finalize the query with a constructed SQL statement.

    -
    source

    pub fn query_as<T>(self, sql: &'q str) -> QueryAs<'q, T>
    where +

    source

    pub fn query(self, sql: &'q str) -> Query<'q>

    Finalize the query with a constructed SQL statement.

    +
    source

    pub fn query_as<T>(self, sql: &'q str) -> QueryAs<'q, T>
    where T: for<'r> FromRow<'r, <Db as Database>::Row>,

    Finalize the query with a constructed SQL statement and a specified output type.

    -
    source§

    impl<'q> QueryBuilder<'q>

    source

    pub fn header_where_clause<Types: NodeType>( +

    source§

    impl<'q> QueryBuilder<'q>

    source

    pub fn header_where_clause<Types: NodeType>( &mut self, id: BlockId<Types>, ) -> QueryResult<String>

    Construct a SQL WHERE clause which filters for a header exactly matching id.

    -
    source

    pub fn bounds_to_where_clause<R>( +

    source

    pub fn bounds_to_where_clause<R>( &mut self, range: R, column: &str, ) -> QueryResult<String>
    where R: RangeBounds<usize>,

    Convert range bounds to a SQL WHERE clause constraining a given column.

    -

    Trait Implementations§

    source§

    impl<'q> Debug for QueryBuilder<'q>

    source§

    fn fmt(&self, __f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'q> Default for QueryBuilder<'q>

    source§

    fn default() -> QueryBuilder<'q>

    Returns the “default value” for a type. Read more

    Auto Trait Implementations§

    §

    impl<'q> Freeze for QueryBuilder<'q>

    §

    impl<'q> !RefUnwindSafe for QueryBuilder<'q>

    §

    impl<'q> Send for QueryBuilder<'q>

    §

    impl<'q> Sync for QueryBuilder<'q>

    §

    impl<'q> Unpin for QueryBuilder<'q>

    §

    impl<'q> !UnwindSafe for QueryBuilder<'q>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl<'q> Debug for QueryBuilder<'q>

    source§

    fn fmt(&self, __f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'q> Default for QueryBuilder<'q>

    source§

    fn default() -> QueryBuilder<'q>

    Returns the “default value” for a type. Read more

    Auto Trait Implementations§

    §

    impl<'q> Freeze for QueryBuilder<'q>

    §

    impl<'q> !RefUnwindSafe for QueryBuilder<'q>

    §

    impl<'q> Send for QueryBuilder<'q>

    §

    impl<'q> Sync for QueryBuilder<'q>

    §

    impl<'q> Unpin for QueryBuilder<'q>

    §

    impl<'q> !UnwindSafe for QueryBuilder<'q>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<T> ArchivePointee for T

    §

    type ArchivedMetadata = ()

    The archived version of the pointer metadata for this type.
    §

    fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

    Converts some archived metadata to the pointer metadata for itself.
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where diff --git a/hotshot_query_service/data_source/storage/sql/struct.Transaction.html b/hotshot_query_service/data_source/storage/sql/struct.Transaction.html index faff626ba..14c6c6361 100644 --- a/hotshot_query_service/data_source/storage/sql/struct.Transaction.html +++ b/hotshot_query_service/data_source/storage/sql/struct.Transaction.html @@ -1,5 +1,5 @@ Transaction in hotshot_query_service::data_source::storage::sql - Rust
    pub struct Transaction<Mode> { /* private fields */ }
    Expand description

    An atomic SQL transaction.

    -

    Implementations§

    source§

    impl<Mode> Transaction<Mode>

    source

    pub async fn load_header<Types: NodeType>( +

    Implementations§

    source§

    impl<Mode> Transaction<Mode>

    source

    pub async fn load_header<Types: NodeType>( &mut self, id: impl Into<BlockId<Types>> + Send, ) -> QueryResult<Header<Types>>

    Load a header from storage.

    @@ -40,65 +40,87 @@ rows: R, ) -> Result<()>
    where R: IntoIterator, - R::Item: 'p + FixedLengthParams<'p, N> + Clone,

    Trait Implementations§

    source§

    impl<Mode: TransactionMode> AggregatesStorage for Transaction<Mode>

    source§

    async fn aggregates_height(&mut self) -> Result<usize>

    The block height for which aggregate statistics are currently available.
    source§

    impl<Mode, Types> AvailabilityStorage<Types> for Transaction<Mode>
    where + R::Item: 'p + FixedLengthParams<'p, N> + Clone,

    Trait Implementations§

    source§

    impl<Mode: TransactionMode> AggregatesStorage for Transaction<Mode>

    source§

    async fn aggregates_height(&mut self) -> Result<usize>

    The block height for which aggregate statistics are currently available.
    source§

    impl<Mode, Types> AvailabilityStorage<Types> for Transaction<Mode>
    where Types: NodeType, Mode: TransactionMode, Payload<Types>: QueryablePayload<Types>, - Header<Types>: QueryableHeader<Types>,

    source§

    fn get_leaf<'life0, 'async_trait>( + Header<Types>: QueryableHeader<Types>,

    source§

    fn get_leaf<'life0, 'async_trait>( &'life0 mut self, id: LeafId<Types>, ) -> Pin<Box<dyn Future<Output = QueryResult<LeafQueryData<Types>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_block<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn get_block<'life0, 'async_trait>( &'life0 mut self, id: BlockId<Types>, ) -> Pin<Box<dyn Future<Output = QueryResult<BlockQueryData<Types>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_header<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn get_header<'life0, 'async_trait>( &'life0 mut self, id: BlockId<Types>, ) -> Pin<Box<dyn Future<Output = QueryResult<Header<Types>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_payload<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn get_payload<'life0, 'async_trait>( &'life0 mut self, id: BlockId<Types>, ) -> Pin<Box<dyn Future<Output = QueryResult<PayloadQueryData<Types>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_vid_common<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn get_payload_metadata<'life0, 'async_trait>( + &'life0 mut self, + id: BlockId<Types>, +) -> Pin<Box<dyn Future<Output = QueryResult<PayloadMetadata<Types>>> + Send + 'async_trait>>
    where + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn get_vid_common<'life0, 'async_trait>( &'life0 mut self, id: BlockId<Types>, ) -> Pin<Box<dyn Future<Output = QueryResult<VidCommonQueryData<Types>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_leaf_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source§

    fn get_vid_common_metadata<'life0, 'async_trait>( + &'life0 mut self, + id: BlockId<Types>, +) -> Pin<Box<dyn Future<Output = QueryResult<VidCommonMetadata<Types>>> + Send + 'async_trait>>
    where + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn get_leaf_range<'life0, 'async_trait, R>( &'life0 mut self, range: R, ) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<LeafQueryData<Types>>>>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_block_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source§

    fn get_block_range<'life0, 'async_trait, R>( &'life0 mut self, range: R, ) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<BlockQueryData<Types>>>>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_payload_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source§

    fn get_payload_range<'life0, 'async_trait, R>( &'life0 mut self, range: R, ) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<PayloadQueryData<Types>>>>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_vid_common_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source§

    fn get_payload_metadata_range<'life0, 'async_trait, R>( + &'life0 mut self, + range: R, +) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<PayloadMetadata<Types>>>>> + Send + 'async_trait>>
    where + R: RangeBounds<usize> + Send + 'static + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn get_vid_common_range<'life0, 'async_trait, R>( &'life0 mut self, range: R, ) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<VidCommonQueryData<Types>>>>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_transaction<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn get_vid_common_metadata_range<'life0, 'async_trait, R>( + &'life0 mut self, + range: R, +) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<VidCommonMetadata<Types>>>>> + Send + 'async_trait>>
    where + R: RangeBounds<usize> + Send + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn get_transaction<'life0, 'async_trait>( &'life0 mut self, hash: TransactionHash<Types>, ) -> Pin<Box<dyn Future<Output = QueryResult<TransactionQueryData<Types>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    impl<Mode: Debug> Debug for Transaction<Mode>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<Mode> Deref for Transaction<Mode>

    source§

    type Target = Transaction<'static, Postgres>

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &Self::Target

    Dereferences the value.
    source§

    impl<Mode> DerefMut for Transaction<Mode>

    source§

    fn deref_mut(&mut self) -> &mut Self::Target

    Mutably dereferences the value.
    source§

    impl<Mode, Types> ExplorerStorage<Types> for Transaction<Mode>
    where + 'life0: 'async_trait,

    source§

    impl<Mode: Debug> Debug for Transaction<Mode>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<Mode> Deref for Transaction<Mode>

    source§

    type Target = Transaction<'static, Postgres>

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &Self::Target

    Dereferences the value.
    source§

    impl<Mode> DerefMut for Transaction<Mode>

    source§

    fn deref_mut(&mut self) -> &mut Self::Target

    Mutably dereferences the value.
    source§

    impl<Mode, Types> ExplorerStorage<Types> for Transaction<Mode>
    where Mode: TransactionMode, Types: NodeType, Payload<Types>: QueryablePayload<Types>, @@ -132,13 +154,13 @@ Self: 'async_trait, 'life0: 'async_trait,

    get_transaction_detail is a method that retrieves the details of a specific transaction from the blockchain. The transaction is identified -by the given TransactionIdentifier.
    source§

    fn get_explorer_summary<'life0, 'async_trait>( +by the given TransactionIdentifier.

    source§

    fn get_explorer_summary<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<ExplorerSummary<Types>, GetExplorerSummaryError>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    get_explorer_summary is a method that retrieves a summary overview of the blockchain. This is useful for displaying information that -indicates the overall status of the block chain.
    source§

    fn get_search_results<'life0, 'async_trait>( +indicates the overall status of the block chain.

    source§

    fn get_search_results<'life0, 'async_trait>( &'life0 mut self, search_query: TaggedBase64, ) -> Pin<Box<dyn Future<Output = Result<SearchResult<Types>, GetSearchResultsError>> + Send + 'async_trait>>
    where @@ -159,58 +181,58 @@ ) -> Pin<Box<dyn Future<Output = QueryResult<MerkleProof<State::Entry, State::Key, State::T, ARITY>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    Retreives a Merkle path from the database

    -
    source§

    impl<Mode, Types> NodeStorage<Types> for Transaction<Mode>
    where +

    source§

    impl<Mode, Types> NodeStorage<Types> for Transaction<Mode>
    where Mode: TransactionMode, - Types: NodeType,

    source§

    fn block_height<'life0, 'async_trait>( + Types: NodeType,

    source§

    fn block_height<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn count_transactions_in_range<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn count_transactions_in_range<'life0, 'async_trait>( &'life0 mut self, range: impl 'async_trait + RangeBounds<usize> + Send, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn payload_size_in_range<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn payload_size_in_range<'life0, 'async_trait>( &'life0 mut self, range: impl 'async_trait + RangeBounds<usize> + Send, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn vid_share<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

    source§

    fn vid_share<'life0, 'async_trait, ID>( &'life0 mut self, id: ID, ) -> Pin<Box<dyn Future<Output = QueryResult<VidShare>> + Send + 'async_trait>>
    where ID: Into<BlockId<Types>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn sync_status<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn sync_status<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = QueryResult<SyncStatus>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    Search the database for missing objects and generate a report.
    source§

    fn get_header_window<'life0, 'async_trait>( + 'life0: 'async_trait,

    Search the database for missing objects and generate a report.
    source§

    fn get_header_window<'life0, 'async_trait>( &'life0 mut self, start: impl 'async_trait + Into<WindowStart<Types>> + Send + Sync, end: u64, ) -> Pin<Box<dyn Future<Output = QueryResult<TimeWindowQueryData<Header<Types>>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    impl<Mode: TransactionMode> PrunedHeightStorage for Transaction<Mode>

    source§

    fn load_pruned_height<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    impl<Mode: TransactionMode> PrunedHeightStorage for Transaction<Mode>

    source§

    fn load_pruned_height<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<Option<u64>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    impl<Mode: TransactionMode> Transaction for Transaction<Mode>

    source§

    async fn commit(self) -> Result<()>

    source§

    fn revert(self) -> impl Future + Send

    source§

    impl<Types: NodeType> UpdateAggregatesStorage<Types> for Transaction<Write>

    source§

    async fn update_aggregates( + 'life0: 'async_trait,

    source§

    impl<Mode: TransactionMode> Transaction for Transaction<Mode>

    source§

    async fn commit(self) -> Result<()>

    source§

    fn revert(self) -> impl Future + Send

    source§

    impl<Types: NodeType> UpdateAggregatesStorage<Types> for Transaction<Write>

    source§

    async fn update_aggregates( &mut self, - block: &BlockQueryData<Types>, -) -> Result<()>

    Update aggregate statistics based on a new block.
    source§

    impl<Types> UpdateAvailabilityStorage<Types> for Transaction<Write>
    where + blocks: &[PayloadMetadata<Types>], +) -> Result<()>

    Update aggregate statistics based on a new block.
    source§

    impl<Types> UpdateAvailabilityStorage<Types> for Transaction<Write>
    where Types: NodeType, Payload<Types>: QueryablePayload<Types>, - Header<Types>: QueryableHeader<Types>,

    source§

    async fn insert_leaf(&mut self, leaf: LeafQueryData<Types>) -> Result<()>

    source§

    async fn insert_block(&mut self, block: BlockQueryData<Types>) -> Result<()>

    source§

    async fn insert_vid( + Header<Types>: QueryableHeader<Types>,

    source§

    async fn insert_leaf(&mut self, leaf: LeafQueryData<Types>) -> Result<()>

    source§

    async fn insert_block(&mut self, block: BlockQueryData<Types>) -> Result<()>

    source§

    async fn insert_vid( &mut self, common: VidCommonQueryData<Types>, share: Option<VidShare>, -) -> Result<()>

    source§

    impl<Types: NodeType, State: MerklizedState<Types, ARITY>, const ARITY: usize> UpdateStateData<Types, State, ARITY> for Transaction<Write>

    source§

    fn set_last_state_height<'life0, 'async_trait>( +) -> Result<()>

    source§

    impl<Types: NodeType, State: MerklizedState<Types, ARITY>, const ARITY: usize> UpdateStateData<Types, State, ARITY> for Transaction<Write>

    source§

    fn set_last_state_height<'life0, 'async_trait>( &'life0 mut self, height: usize, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn insert_merkle_nodes<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn insert_merkle_nodes<'life0, 'async_trait>( &'life0 mut self, proof: MerkleProof<State::Entry, State::Key, State::T, ARITY>, traversal_path: Vec<usize>, diff --git a/hotshot_query_service/data_source/storage/trait.AggregatesStorage.html b/hotshot_query_service/data_source/storage/trait.AggregatesStorage.html index 0b6c331c6..282b99723 100644 --- a/hotshot_query_service/data_source/storage/trait.AggregatesStorage.html +++ b/hotshot_query_service/data_source/storage/trait.AggregatesStorage.html @@ -1,8 +1,8 @@ -AggregatesStorage in hotshot_query_service::data_source::storage - Rust
    pub trait AggregatesStorage {
    +AggregatesStorage in hotshot_query_service::data_source::storage - Rust
    pub trait AggregatesStorage {
         // Required method
         fn aggregates_height(
             &mut self,
         ) -> impl Future<Output = Result<usize>> + Send;
    -}

    Required Methods§

    source

    fn aggregates_height(&mut self) -> impl Future<Output = Result<usize>> + Send

    The block height for which aggregate statistics are currently available.

    -

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl<'a> AggregatesStorage for hotshot_query_service::data_source::storage::no_storage::Transaction<'a>

    source§

    impl<Mode: TransactionMode> AggregatesStorage for hotshot_query_service::data_source::storage::sql::Transaction<Mode>

    source§

    impl<T> AggregatesStorage for hotshot_query_service::data_source::storage::fail_storage::Transaction<T>
    where - T: AggregatesStorage + Send + Sync,

    source§

    impl<T: Revert + Send> AggregatesStorage for hotshot_query_service::data_source::storage::fs::Transaction<T>

    \ No newline at end of file +}

    Required Methods§

    source

    fn aggregates_height(&mut self) -> impl Future<Output = Result<usize>> + Send

    The block height for which aggregate statistics are currently available.

    +

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl<'a> AggregatesStorage for hotshot_query_service::data_source::storage::no_storage::Transaction<'a>

    source§

    impl<Mode: TransactionMode> AggregatesStorage for hotshot_query_service::data_source::storage::sql::Transaction<Mode>

    source§

    impl<T> AggregatesStorage for hotshot_query_service::data_source::storage::fail_storage::Transaction<T>
    where + T: AggregatesStorage + Send + Sync,

    source§

    impl<T: Revert + Send> AggregatesStorage for hotshot_query_service::data_source::storage::fs::Transaction<T>

    \ No newline at end of file diff --git a/hotshot_query_service/data_source/storage/trait.AvailabilityStorage.html b/hotshot_query_service/data_source/storage/trait.AvailabilityStorage.html index 98c1f4323..bf7e3610d 100644 --- a/hotshot_query_service/data_source/storage/trait.AvailabilityStorage.html +++ b/hotshot_query_service/data_source/storage/trait.AvailabilityStorage.html @@ -1,7 +1,7 @@ -AvailabilityStorage in hotshot_query_service::data_source::storage - Rust
    pub trait AvailabilityStorage<Types>: Send + Sync
    where +AvailabilityStorage in hotshot_query_service::data_source::storage - Rust
    pub trait AvailabilityStorage<Types>: Send + Sync
    where Types: NodeType, Payload<Types>: QueryablePayload<Types>,
    { - // Required methods +
    Show 14 methods // Required methods fn get_leaf<'life0, 'async_trait>( &'life0 mut self, id: LeafId<Types>, @@ -26,12 +26,24 @@ ) -> Pin<Box<dyn Future<Output = QueryResult<PayloadQueryData<Types>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; + fn get_payload_metadata<'life0, 'async_trait>( + &'life0 mut self, + id: BlockId<Types>, + ) -> Pin<Box<dyn Future<Output = QueryResult<PayloadMetadata<Types>>> + Send + 'async_trait>> + where Self: 'async_trait, + 'life0: 'async_trait; fn get_vid_common<'life0, 'async_trait>( &'life0 mut self, id: BlockId<Types>, ) -> Pin<Box<dyn Future<Output = QueryResult<VidCommonQueryData<Types>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; + fn get_vid_common_metadata<'life0, 'async_trait>( + &'life0 mut self, + id: BlockId<Types>, + ) -> Pin<Box<dyn Future<Output = QueryResult<VidCommonMetadata<Types>>> + Send + 'async_trait>> + where Self: 'async_trait, + 'life0: 'async_trait; fn get_leaf_range<'life0, 'async_trait, R>( &'life0 mut self, range: R, @@ -53,6 +65,13 @@ where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, 'life0: 'async_trait; + fn get_payload_metadata_range<'life0, 'async_trait, R>( + &'life0 mut self, + range: R, + ) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<PayloadMetadata<Types>>>>> + Send + 'async_trait>> + where R: RangeBounds<usize> + Send + 'static + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait; fn get_vid_common_range<'life0, 'async_trait, R>( &'life0 mut self, range: R, @@ -60,13 +79,20 @@ where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, 'life0: 'async_trait; + fn get_vid_common_metadata_range<'life0, 'async_trait, R>( + &'life0 mut self, + range: R, + ) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<VidCommonMetadata<Types>>>>> + Send + 'async_trait>> + where R: RangeBounds<usize> + Send + 'static + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait; fn get_transaction<'life0, 'async_trait>( &'life0 mut self, hash: TransactionHash<Types>, ) -> Pin<Box<dyn Future<Output = QueryResult<TransactionQueryData<Types>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; -}
    Expand description

    Persistent storage for a HotShot blockchain.

    +
    }
    Expand description

    Persistent storage for a HotShot blockchain.

    This trait defines the interface which must be provided by the storage layer in order to implement an availability data source. It is very similar to AvailabilityDataSource with every occurrence of @@ -78,69 +104,91 @@ data.

    Rust gives us ways to abstract and deduplicate these two similar APIs, but they do not lead to a better interface.

    -

    Required Methods§

    source

    fn get_leaf<'life0, 'async_trait>( +

    Required Methods§

    source

    fn get_leaf<'life0, 'async_trait>( &'life0 mut self, id: LeafId<Types>, ) -> Pin<Box<dyn Future<Output = QueryResult<LeafQueryData<Types>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source

    fn get_block<'life0, 'async_trait>( + 'life0: 'async_trait,

    source

    fn get_block<'life0, 'async_trait>( &'life0 mut self, id: BlockId<Types>, ) -> Pin<Box<dyn Future<Output = QueryResult<BlockQueryData<Types>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source

    fn get_header<'life0, 'async_trait>( + 'life0: 'async_trait,

    source

    fn get_header<'life0, 'async_trait>( &'life0 mut self, id: BlockId<Types>, ) -> Pin<Box<dyn Future<Output = QueryResult<Header<Types>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source

    fn get_payload<'life0, 'async_trait>( + 'life0: 'async_trait,

    source

    fn get_payload<'life0, 'async_trait>( &'life0 mut self, id: BlockId<Types>, ) -> Pin<Box<dyn Future<Output = QueryResult<PayloadQueryData<Types>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source

    fn get_vid_common<'life0, 'async_trait>( + 'life0: 'async_trait,

    source

    fn get_payload_metadata<'life0, 'async_trait>( + &'life0 mut self, + id: BlockId<Types>, +) -> Pin<Box<dyn Future<Output = QueryResult<PayloadMetadata<Types>>> + Send + 'async_trait>>
    where + Self: 'async_trait, + 'life0: 'async_trait,

    source

    fn get_vid_common<'life0, 'async_trait>( &'life0 mut self, id: BlockId<Types>, ) -> Pin<Box<dyn Future<Output = QueryResult<VidCommonQueryData<Types>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source

    fn get_leaf_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source

    fn get_vid_common_metadata<'life0, 'async_trait>( + &'life0 mut self, + id: BlockId<Types>, +) -> Pin<Box<dyn Future<Output = QueryResult<VidCommonMetadata<Types>>> + Send + 'async_trait>>
    where + Self: 'async_trait, + 'life0: 'async_trait,

    source

    fn get_leaf_range<'life0, 'async_trait, R>( &'life0 mut self, range: R, ) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<LeafQueryData<Types>>>>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source

    fn get_block_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source

    fn get_block_range<'life0, 'async_trait, R>( &'life0 mut self, range: R, ) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<BlockQueryData<Types>>>>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source

    fn get_payload_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source

    fn get_payload_range<'life0, 'async_trait, R>( &'life0 mut self, range: R, ) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<PayloadQueryData<Types>>>>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source

    fn get_vid_common_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source

    fn get_payload_metadata_range<'life0, 'async_trait, R>( + &'life0 mut self, + range: R, +) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<PayloadMetadata<Types>>>>> + Send + 'async_trait>>
    where + R: RangeBounds<usize> + Send + 'static + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait,

    source

    fn get_vid_common_range<'life0, 'async_trait, R>( &'life0 mut self, range: R, ) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<VidCommonQueryData<Types>>>>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source

    fn get_transaction<'life0, 'async_trait>( + 'life0: 'async_trait,

    source

    fn get_vid_common_metadata_range<'life0, 'async_trait, R>( + &'life0 mut self, + range: R, +) -> Pin<Box<dyn Future<Output = QueryResult<Vec<QueryResult<VidCommonMetadata<Types>>>>> + Send + 'async_trait>>
    where + R: RangeBounds<usize> + Send + 'static + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait,

    source

    fn get_transaction<'life0, 'async_trait>( &'life0 mut self, hash: TransactionHash<Types>, ) -> Pin<Box<dyn Future<Output = QueryResult<TransactionQueryData<Types>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl<'a, Types: NodeType> AvailabilityStorage<Types> for hotshot_query_service::data_source::storage::no_storage::Transaction<'a>
    where - Payload<Types>: QueryablePayload<Types>,

    source§

    impl<Mode, Types> AvailabilityStorage<Types> for hotshot_query_service::data_source::storage::sql::Transaction<Mode>
    where + 'life0: 'async_trait,

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl<'a, Types: NodeType> AvailabilityStorage<Types> for hotshot_query_service::data_source::storage::no_storage::Transaction<'a>
    where + Payload<Types>: QueryablePayload<Types>,

    source§

    impl<Mode, Types> AvailabilityStorage<Types> for hotshot_query_service::data_source::storage::sql::Transaction<Mode>
    where Types: NodeType, Mode: TransactionMode, Payload<Types>: QueryablePayload<Types>, - Header<Types>: QueryableHeader<Types>,

    source§

    impl<Types, T> AvailabilityStorage<Types> for hotshot_query_service::data_source::storage::fail_storage::Transaction<T>
    where + Header<Types>: QueryableHeader<Types>,

    source§

    impl<Types, T> AvailabilityStorage<Types> for hotshot_query_service::data_source::storage::fail_storage::Transaction<T>
    where Types: NodeType, Payload<Types>: QueryablePayload<Types>, - T: AvailabilityStorage<Types>,

    source§

    impl<Types, T> AvailabilityStorage<Types> for hotshot_query_service::data_source::storage::fs::Transaction<T>
    where + T: AvailabilityStorage<Types>,

    source§

    impl<Types, T> AvailabilityStorage<Types> for hotshot_query_service::data_source::storage::fs::Transaction<T>
    where Types: NodeType, Payload<Types>: QueryablePayload<Types>, Header<Types>: QueryableHeader<Types>, diff --git a/hotshot_query_service/data_source/storage/trait.ExplorerStorage.html b/hotshot_query_service/data_source/storage/trait.ExplorerStorage.html index d23e6a839..04fe50be6 100644 --- a/hotshot_query_service/data_source/storage/trait.ExplorerStorage.html +++ b/hotshot_query_service/data_source/storage/trait.ExplorerStorage.html @@ -1,4 +1,4 @@ -ExplorerStorage in hotshot_query_service::data_source::storage - Rust
    pub trait ExplorerStorage<Types>
    where +ExplorerStorage in hotshot_query_service::data_source::storage - Rust
    pub trait ExplorerStorage<Types>
    where Types: NodeType, Header<Types>: ExplorerHeader<Types> + QueryableHeader<Types>, Transaction<Types>: ExplorerTransaction, @@ -47,7 +47,7 @@ being up-to-date or having all of the data required, but rather it is concerned with providing the requested data as quickly as possible, and in a way that can be easily cached.

    -

    Required Methods§

    source

    fn get_block_detail<'life0, 'async_trait>( +

    Required Methods§

    source

    fn get_block_detail<'life0, 'async_trait>( &'life0 mut self, request: BlockIdentifier<Types>, ) -> Pin<Box<dyn Future<Output = Result<BlockDetail<Types>, GetBlockDetailError>> + Send + 'async_trait>>
    where @@ -55,7 +55,7 @@ 'life0: 'async_trait,

    get_block_detail is a method that retrieves the details of a specific block from the blockchain. The block is identified by the given BlockIdentifier.

    -
    source

    fn get_block_summaries<'life0, 'async_trait>( +

    source

    fn get_block_summaries<'life0, 'async_trait>( &'life0 mut self, request: GetBlockSummariesRequest<Types>, ) -> Pin<Box<dyn Future<Output = Result<Vec<BlockSummary<Types>>, GetBlockSummariesError>> + Send + 'async_trait>>
    where @@ -63,7 +63,7 @@ 'life0: 'async_trait,

    get_block_summaries is a method that retrieves a list of block summaries from the blockchain. The list is generated from the given GetBlockSummariesRequest.

    -
    source

    fn get_transaction_detail<'life0, 'async_trait>( +

    source

    fn get_transaction_detail<'life0, 'async_trait>( &'life0 mut self, request: TransactionIdentifier<Types>, ) -> Pin<Box<dyn Future<Output = Result<TransactionDetailResponse<Types>, GetTransactionDetailError>> + Send + 'async_trait>>
    where @@ -71,7 +71,7 @@ 'life0: 'async_trait,

    get_transaction_detail is a method that retrieves the details of a specific transaction from the blockchain. The transaction is identified by the given TransactionIdentifier.

    -
    source

    fn get_transaction_summaries<'life0, 'async_trait>( +

    source

    fn get_transaction_summaries<'life0, 'async_trait>( &'life0 mut self, request: GetTransactionSummariesRequest<Types>, ) -> Pin<Box<dyn Future<Output = Result<Vec<TransactionSummary<Types>>, GetTransactionSummariesError>> + Send + 'async_trait>>
    where @@ -79,14 +79,14 @@ 'life0: 'async_trait,

    get_transaction_summaries is a method that retrieves a list of transaction summaries from the blockchain. The list is generated from the given GetTransactionSummariesRequest.

    -
    source

    fn get_explorer_summary<'life0, 'async_trait>( +

    source

    fn get_explorer_summary<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<ExplorerSummary<Types>, GetExplorerSummaryError>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    get_explorer_summary is a method that retrieves a summary overview of the blockchain. This is useful for displaying information that indicates the overall status of the block chain.

    -
    source

    fn get_search_results<'life0, 'async_trait>( +

    source

    fn get_search_results<'life0, 'async_trait>( &'life0 mut self, query: TaggedBase64, ) -> Pin<Box<dyn Future<Output = Result<SearchResult<Types>, GetSearchResultsError>> + Send + 'async_trait>>
    where @@ -94,7 +94,7 @@ 'life0: 'async_trait,

    get_search_results is a method that retrieves the results of a search query against the blockchain. The results are generated from the given query string.

    -

    Implementors§

    source§

    impl<Mode, Types> ExplorerStorage<Types> for Transaction<Mode>
    where +

    Implementors§

    source§

    impl<Mode, Types> ExplorerStorage<Types> for Transaction<Mode>
    where Mode: TransactionMode, Types: NodeType, Payload<Types>: QueryablePayload<Types>, diff --git a/hotshot_query_service/data_source/storage/trait.MerklizedStateHeightStorage.html b/hotshot_query_service/data_source/storage/trait.MerklizedStateHeightStorage.html index bfe0c341f..2cf5df081 100644 --- a/hotshot_query_service/data_source/storage/trait.MerklizedStateHeightStorage.html +++ b/hotshot_query_service/data_source/storage/trait.MerklizedStateHeightStorage.html @@ -1,11 +1,11 @@ -MerklizedStateHeightStorage in hotshot_query_service::data_source::storage - Rust
    pub trait MerklizedStateHeightStorage {
    +MerklizedStateHeightStorage in hotshot_query_service::data_source::storage - Rust
    pub trait MerklizedStateHeightStorage {
         // Required method
         fn get_last_state_height<'life0, 'async_trait>(
             &'life0 mut self,
         ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
            where Self: 'async_trait,
                  'life0: 'async_trait;
    -}

    Required Methods§

    source

    fn get_last_state_height<'life0, 'async_trait>( +}

    Required Methods§

    source

    fn get_last_state_height<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, diff --git a/hotshot_query_service/data_source/storage/trait.MerklizedStateStorage.html b/hotshot_query_service/data_source/storage/trait.MerklizedStateStorage.html index 9e2128e8a..0052ca702 100644 --- a/hotshot_query_service/data_source/storage/trait.MerklizedStateStorage.html +++ b/hotshot_query_service/data_source/storage/trait.MerklizedStateStorage.html @@ -1,4 +1,4 @@ -MerklizedStateStorage in hotshot_query_service::data_source::storage - Rust
    pub trait MerklizedStateStorage<Types, State, const ARITY: usize>
    where +MerklizedStateStorage in hotshot_query_service::data_source::storage - Rust
    pub trait MerklizedStateStorage<Types, State, const ARITY: usize>
    where Types: NodeType, State: MerklizedState<Types, ARITY>,
    { // Required method @@ -11,7 +11,7 @@ 'life0: 'async_trait; }
    Expand description

    This trait defines methods that a data source should implement It enables retrieval of the membership path for a leaf node, which can be used to reconstruct the Merkle tree state.

    -

    Required Methods§

    source

    fn get_path<'life0, 'async_trait>( +

    Required Methods§

    source

    fn get_path<'life0, 'async_trait>( &'life0 mut self, snapshot: Snapshot<Types, State, ARITY>, key: State::Key, diff --git a/hotshot_query_service/data_source/storage/trait.NodeStorage.html b/hotshot_query_service/data_source/storage/trait.NodeStorage.html index 1c8a0e243..4fdf2576e 100644 --- a/hotshot_query_service/data_source/storage/trait.NodeStorage.html +++ b/hotshot_query_service/data_source/storage/trait.NodeStorage.html @@ -1,4 +1,4 @@ -NodeStorage in hotshot_query_service::data_source::storage - Rust
    pub trait NodeStorage<Types: NodeType> {
    +NodeStorage in hotshot_query_service::data_source::storage - Rust
    pub trait NodeStorage<Types: NodeType> {
         // Required methods
         fn block_height<'life0, 'async_trait>(
             &'life0 mut self,
    @@ -36,44 +36,44 @@
         ) -> Pin<Box<dyn Future<Output = QueryResult<SyncStatus>> + Send + 'async_trait>>
            where Self: 'async_trait,
                  'life0: 'async_trait;
    -}

    Required Methods§

    source

    fn block_height<'life0, 'async_trait>( +}

    Required Methods§

    source

    fn block_height<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source

    fn count_transactions_in_range<'life0, 'async_trait>( + 'life0: 'async_trait,

    source

    fn count_transactions_in_range<'life0, 'async_trait>( &'life0 mut self, range: impl 'async_trait + RangeBounds<usize> + Send, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source

    fn payload_size_in_range<'life0, 'async_trait>( + 'life0: 'async_trait,

    source

    fn payload_size_in_range<'life0, 'async_trait>( &'life0 mut self, range: impl 'async_trait + RangeBounds<usize> + Send, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source

    fn vid_share<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

    source

    fn vid_share<'life0, 'async_trait, ID>( &'life0 mut self, id: ID, ) -> Pin<Box<dyn Future<Output = QueryResult<VidShare>> + Send + 'async_trait>>
    where ID: Into<BlockId<Types>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source

    fn get_header_window<'life0, 'async_trait>( + 'life0: 'async_trait,

    source

    fn get_header_window<'life0, 'async_trait>( &'life0 mut self, start: impl 'async_trait + Into<WindowStart<Types>> + Send + Sync, end: u64, ) -> Pin<Box<dyn Future<Output = QueryResult<TimeWindowQueryData<Header<Types>>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source

    fn sync_status<'life0, 'async_trait>( + 'life0: 'async_trait,

    source

    fn sync_status<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = QueryResult<SyncStatus>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    Search the database for missing objects and generate a report.

    -

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl<'a, T> NodeStorage<MockTypes> for hotshot_query_service::data_source::storage::no_storage::testing::Transaction<'a, T>
    where - T: NodeStorage<MockTypes> + Send,

    source§

    impl<'a, Types: NodeType> NodeStorage<Types> for hotshot_query_service::data_source::storage::no_storage::Transaction<'a>
    where - Payload<Types>: QueryablePayload<Types>,

    source§

    impl<Mode, Types> NodeStorage<Types> for hotshot_query_service::data_source::storage::sql::Transaction<Mode>
    where +

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl<'a, T> NodeStorage<MockTypes> for hotshot_query_service::data_source::storage::no_storage::testing::Transaction<'a, T>
    where + T: NodeStorage<MockTypes> + Send,

    source§

    impl<'a, Types: NodeType> NodeStorage<Types> for hotshot_query_service::data_source::storage::no_storage::Transaction<'a>
    where + Payload<Types>: QueryablePayload<Types>,

    source§

    impl<Mode, Types> NodeStorage<Types> for hotshot_query_service::data_source::storage::sql::Transaction<Mode>
    where Mode: TransactionMode, - Types: NodeType,

    source§

    impl<Types, T> NodeStorage<Types> for hotshot_query_service::data_source::storage::fail_storage::Transaction<T>
    where + Types: NodeType,

    source§

    impl<Types, T> NodeStorage<Types> for hotshot_query_service::data_source::storage::fail_storage::Transaction<T>
    where Types: NodeType, - T: NodeStorage<Types> + Send + Sync,

    source§

    impl<Types, T> NodeStorage<Types> for hotshot_query_service::data_source::storage::fs::Transaction<T>
    where + T: NodeStorage<Types> + Send + Sync,

    source§

    impl<Types, T> NodeStorage<Types> for hotshot_query_service::data_source::storage::fs::Transaction<T>
    where Types: NodeType, Payload<Types>: QueryablePayload<Types>, Header<Types>: QueryableHeader<Types>, diff --git a/hotshot_query_service/data_source/storage/trait.UpdateAggregatesStorage.html b/hotshot_query_service/data_source/storage/trait.UpdateAggregatesStorage.html index a6f8080e0..1d3cf2325 100644 --- a/hotshot_query_service/data_source/storage/trait.UpdateAggregatesStorage.html +++ b/hotshot_query_service/data_source/storage/trait.UpdateAggregatesStorage.html @@ -1,16 +1,16 @@ -UpdateAggregatesStorage in hotshot_query_service::data_source::storage - Rust
    pub trait UpdateAggregatesStorage<Types>
    where +UpdateAggregatesStorage in hotshot_query_service::data_source::storage - Rust
    pub trait UpdateAggregatesStorage<Types>
    where Types: NodeType,
    { // Required method fn update_aggregates( &mut self, - block: &BlockQueryData<Types>, + blocks: &[PayloadMetadata<Types>], ) -> impl Future<Output = Result<()>> + Send; -}

    Required Methods§

    Required Methods§

    source

    fn update_aggregates( &mut self, - block: &BlockQueryData<Types>, + blocks: &[PayloadMetadata<Types>], ) -> impl Future<Output = Result<()>> + Send

    Update aggregate statistics based on a new block.

    -

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl<'a, Types> UpdateAggregatesStorage<Types> for hotshot_query_service::data_source::storage::no_storage::Transaction<'a>
    where - Types: NodeType,

    source§

    impl<T, Types> UpdateAggregatesStorage<Types> for hotshot_query_service::data_source::storage::fail_storage::Transaction<T>
    where +

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl<'a, Types> UpdateAggregatesStorage<Types> for hotshot_query_service::data_source::storage::no_storage::Transaction<'a>
    where + Types: NodeType,

    source§

    impl<T, Types> UpdateAggregatesStorage<Types> for hotshot_query_service::data_source::storage::fail_storage::Transaction<T>
    where Types: NodeType, - T: UpdateAggregatesStorage<Types> + Send + Sync,

    source§

    impl<Types, T: Revert + Send> UpdateAggregatesStorage<Types> for hotshot_query_service::data_source::storage::fs::Transaction<T>
    where - Types: NodeType,

    source§

    impl<Types: NodeType> UpdateAggregatesStorage<Types> for hotshot_query_service::data_source::storage::sql::Transaction<Write>

    \ No newline at end of file + T: UpdateAggregatesStorage<Types> + Send + Sync,

    source§

    impl<Types, T: Revert + Send> UpdateAggregatesStorage<Types> for hotshot_query_service::data_source::storage::fs::Transaction<T>
    where + Types: NodeType,

    source§

    impl<Types: NodeType> UpdateAggregatesStorage<Types> for hotshot_query_service::data_source::storage::sql::Transaction<Write>

    \ No newline at end of file diff --git a/hotshot_query_service/data_source/storage/trait.UpdateAvailabilityStorage.html b/hotshot_query_service/data_source/storage/trait.UpdateAvailabilityStorage.html index 5205064a0..99c722c53 100644 --- a/hotshot_query_service/data_source/storage/trait.UpdateAvailabilityStorage.html +++ b/hotshot_query_service/data_source/storage/trait.UpdateAvailabilityStorage.html @@ -1,4 +1,4 @@ -UpdateAvailabilityStorage in hotshot_query_service::data_source::storage - Rust
    pub trait UpdateAvailabilityStorage<Types>
    where +UpdateAvailabilityStorage in hotshot_query_service::data_source::storage - Rust
    pub trait UpdateAvailabilityStorage<Types>
    where Types: NodeType,
    { // Required methods fn insert_leaf( @@ -14,24 +14,24 @@ common: VidCommonQueryData<Types>, share: Option<VidShare>, ) -> impl Send + Future<Output = Result<()>>; -}

    Required Methods§

    Required Methods§

    source

    fn insert_leaf( &mut self, leaf: LeafQueryData<Types>, -) -> impl Send + Future<Output = Result<()>>

    source

    fn insert_block( +) -> impl Send + Future<Output = Result<()>>

    source

    fn insert_block( &mut self, block: BlockQueryData<Types>, -) -> impl Send + Future<Output = Result<()>>

    source

    fn insert_vid( +) -> impl Send + Future<Output = Result<()>>

    source

    fn insert_vid( &mut self, common: VidCommonQueryData<Types>, share: Option<VidShare>, -) -> impl Send + Future<Output = Result<()>>

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl<'a, T> UpdateAvailabilityStorage<MockTypes> for hotshot_query_service::data_source::storage::no_storage::testing::Transaction<'a, T>

    source§

    impl<'a, Types: NodeType> UpdateAvailabilityStorage<Types> for hotshot_query_service::data_source::storage::fs::Transaction<RwLockWriteGuard<'a, FileSystemStorageInner<Types>>>
    where +) -> impl Send + Future<Output = Result<()>>

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl<'a, T> UpdateAvailabilityStorage<MockTypes> for hotshot_query_service::data_source::storage::no_storage::testing::Transaction<'a, T>

    source§

    impl<'a, Types: NodeType> UpdateAvailabilityStorage<Types> for hotshot_query_service::data_source::storage::fs::Transaction<RwLockWriteGuard<'a, FileSystemStorageInner<Types>>>
    where Payload<Types>: QueryablePayload<Types>, - Header<Types>: QueryableHeader<Types>,

    source§

    impl<'a, Types: NodeType> UpdateAvailabilityStorage<Types> for hotshot_query_service::data_source::storage::no_storage::Transaction<'a>
    where - Payload<Types>: QueryablePayload<Types>,

    source§

    impl<Types> UpdateAvailabilityStorage<Types> for hotshot_query_service::data_source::storage::sql::Transaction<Write>
    where + Header<Types>: QueryableHeader<Types>,

    source§

    impl<'a, Types: NodeType> UpdateAvailabilityStorage<Types> for hotshot_query_service::data_source::storage::no_storage::Transaction<'a>
    where + Payload<Types>: QueryablePayload<Types>,

    source§

    impl<Types> UpdateAvailabilityStorage<Types> for hotshot_query_service::data_source::storage::sql::Transaction<Write>
    where Types: NodeType, Payload<Types>: QueryablePayload<Types>, - Header<Types>: QueryableHeader<Types>,

    source§

    impl<Types, T> UpdateAvailabilityStorage<Types> for hotshot_query_service::data_source::storage::fail_storage::Transaction<T>
    where + Header<Types>: QueryableHeader<Types>,

    source§

    impl<Types, T> UpdateAvailabilityStorage<Types> for hotshot_query_service::data_source::storage::fail_storage::Transaction<T>
    where Types: NodeType, Payload<Types>: QueryablePayload<Types>, T: UpdateAvailabilityStorage<Types> + Send + Sync,

    \ No newline at end of file diff --git a/hotshot_query_service/data_source/struct.ExtensibleDataSource.html b/hotshot_query_service/data_source/struct.ExtensibleDataSource.html index f01d38291..45edddba0 100644 --- a/hotshot_query_service/data_source/struct.ExtensibleDataSource.html +++ b/hotshot_query_service/data_source/struct.ExtensibleDataSource.html @@ -29,7 +29,7 @@

    This functionality is provided as an inherent method rather than an implementation of the AsMut trait so that self.as_mut() unambiguously returns &U, helping with type inference.

    -

    Trait Implementations§

    source§

    impl<D, U> AsMut<U> for ExtensibleDataSource<D, U>

    source§

    fn as_mut(&mut self) -> &mut U

    Converts this type into a mutable reference of the (usually inferred) input type.
    source§

    impl<D, U> AsRef<U> for ExtensibleDataSource<D, U>

    source§

    fn as_ref(&self) -> &U

    Converts this type into a shared reference of the (usually inferred) input type.
    source§

    impl<D, U, Types> AvailabilityDataSource<Types> for ExtensibleDataSource<D, U>
    where +

    Trait Implementations§

    source§

    impl<D, U> AsMut<U> for ExtensibleDataSource<D, U>

    source§

    fn as_mut(&mut self) -> &mut U

    Converts this type into a mutable reference of the (usually inferred) input type.
    source§

    impl<D, U> AsRef<U> for ExtensibleDataSource<D, U>

    source§

    fn as_ref(&self) -> &U

    Converts this type into a shared reference of the (usually inferred) input type.
    source§

    impl<D, U, Types> AvailabilityDataSource<Types> for ExtensibleDataSource<D, U>
    where D: AvailabilityDataSource<Types> + Send + Sync, U: Send + Sync, Types: NodeType, @@ -39,95 +39,133 @@ where R: RangeBounds<usize> + Send

    source§

    type PayloadRange<R> = <D as AvailabilityDataSource<Types>>::PayloadRange<R> where - R: RangeBounds<usize> + Send

    source§

    type VidCommonRange<R> = <D as AvailabilityDataSource<Types>>::VidCommonRange<R> + R: RangeBounds<usize> + Send

    source§

    type PayloadMetadataRange<R> = <D as AvailabilityDataSource<Types>>::PayloadMetadataRange<R> where - R: RangeBounds<usize> + Send

    source§

    fn get_leaf<'life0, 'async_trait, ID>( + R: RangeBounds<usize> + Send

    source§

    type VidCommonRange<R> = <D as AvailabilityDataSource<Types>>::VidCommonRange<R> +where + R: RangeBounds<usize> + Send

    source§

    type VidCommonMetadataRange<R> = <D as AvailabilityDataSource<Types>>::VidCommonMetadataRange<R> +where + R: RangeBounds<usize> + Send

    source§

    fn get_leaf<'life0, 'async_trait, ID>( &'life0 self, id: ID, ) -> Pin<Box<dyn Future<Output = Fetch<LeafQueryData<Types>>> + Send + 'async_trait>>
    where ID: Into<LeafId<Types>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_block<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

    source§

    fn get_block<'life0, 'async_trait, ID>( &'life0 self, id: ID, ) -> Pin<Box<dyn Future<Output = Fetch<BlockQueryData<Types>>> + Send + 'async_trait>>
    where ID: Into<BlockId<Types>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_payload<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

    source§

    fn get_payload<'life0, 'async_trait, ID>( &'life0 self, id: ID, ) -> Pin<Box<dyn Future<Output = Fetch<PayloadQueryData<Types>>> + Send + 'async_trait>>
    where ID: Into<BlockId<Types>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_vid_common<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

    source§

    fn get_payload_metadata<'life0, 'async_trait, ID>( + &'life0 self, + id: ID, +) -> Pin<Box<dyn Future<Output = Fetch<PayloadMetadata<Types>>> + Send + 'async_trait>>
    where + ID: Into<BlockId<Types>> + Send + Sync + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn get_vid_common<'life0, 'async_trait, ID>( &'life0 self, id: ID, ) -> Pin<Box<dyn Future<Output = Fetch<VidCommonQueryData<Types>>> + Send + 'async_trait>>
    where ID: Into<BlockId<Types>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_leaf_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source§

    fn get_vid_common_metadata<'life0, 'async_trait, ID>( + &'life0 self, + id: ID, +) -> Pin<Box<dyn Future<Output = Fetch<VidCommonMetadata<Types>>> + Send + 'async_trait>>
    where + ID: Into<BlockId<Types>> + Send + Sync + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn get_leaf_range<'life0, 'async_trait, R>( &'life0 self, range: R, ) -> Pin<Box<dyn Future<Output = Self::LeafRange<R>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_block_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source§

    fn get_block_range<'life0, 'async_trait, R>( &'life0 self, range: R, ) -> Pin<Box<dyn Future<Output = Self::BlockRange<R>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_payload_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source§

    fn get_payload_range<'life0, 'async_trait, R>( &'life0 self, range: R, ) -> Pin<Box<dyn Future<Output = Self::PayloadRange<R>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_vid_common_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source§

    fn get_payload_metadata_range<'life0, 'async_trait, R>( + &'life0 self, + range: R, +) -> Pin<Box<dyn Future<Output = Self::PayloadMetadataRange<R>> + Send + 'async_trait>>
    where + R: RangeBounds<usize> + Send + 'static + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn get_vid_common_range<'life0, 'async_trait, R>( &'life0 self, range: R, ) -> Pin<Box<dyn Future<Output = Self::VidCommonRange<R>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_transaction<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn get_vid_common_metadata_range<'life0, 'async_trait, R>( + &'life0 self, + range: R, +) -> Pin<Box<dyn Future<Output = Self::VidCommonMetadataRange<R>> + Send + 'async_trait>>
    where + R: RangeBounds<usize> + Send + 'static + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn get_transaction<'life0, 'async_trait>( &'life0 self, hash: TransactionHash<Types>, ) -> Pin<Box<dyn Future<Output = Fetch<TransactionQueryData<Types>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    Returns the transaction with the given hash.
    source§

    fn subscribe_blocks<'life0, 'async_trait>( + 'life0: 'async_trait,

    Returns the transaction with the given hash.
    source§

    fn subscribe_blocks<'life0, 'async_trait>( &'life0 self, from: usize, ) -> Pin<Box<dyn Future<Output = BoxStream<'static, BlockQueryData<Types>>> + Send + 'async_trait>>
    where Self: Sync + 'async_trait, - 'life0: 'async_trait,

    source§

    fn subscribe_payloads<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn subscribe_payloads<'life0, 'async_trait>( &'life0 self, from: usize, ) -> Pin<Box<dyn Future<Output = BoxStream<'static, PayloadQueryData<Types>>> + Send + 'async_trait>>
    where Self: Sync + 'async_trait, - 'life0: 'async_trait,

    source§

    fn subscribe_leaves<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn subscribe_payload_metadata<'life0, 'async_trait>( + &'life0 self, + from: usize, +) -> Pin<Box<dyn Future<Output = BoxStream<'static, PayloadMetadata<Types>>> + Send + 'async_trait>>
    where + Self: Sync + 'async_trait, + 'life0: 'async_trait,

    source§

    fn subscribe_leaves<'life0, 'async_trait>( &'life0 self, from: usize, ) -> Pin<Box<dyn Future<Output = BoxStream<'static, LeafQueryData<Types>>> + Send + 'async_trait>>
    where Self: Sync + 'async_trait, - 'life0: 'async_trait,

    source§

    fn subscribe_vid_common<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn subscribe_vid_common<'life0, 'async_trait>( &'life0 self, from: usize, ) -> Pin<Box<dyn Future<Output = BoxStream<'static, VidCommonQueryData<Types>>> + Send + 'async_trait>>
    where Self: Sync + 'async_trait, - 'life0: 'async_trait,

    source§

    impl<D: Clone, U: Clone> Clone for ExtensibleDataSource<D, U>

    source§

    fn clone(&self) -> ExtensibleDataSource<D, U>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<D, U> DataSourceLifeCycle for ExtensibleDataSource<D, U>
    where + 'life0: 'async_trait,

    source§

    fn subscribe_vid_common_metadata<'life0, 'async_trait>( + &'life0 self, + from: usize, +) -> Pin<Box<dyn Future<Output = BoxStream<'static, VidCommonMetadata<Types>>> + Send + 'async_trait>>
    where + Self: Sync + 'async_trait, + 'life0: 'async_trait,

    source§

    impl<D: Clone, U: Clone> Clone for ExtensibleDataSource<D, U>

    source§

    fn clone(&self) -> ExtensibleDataSource<D, U>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<D, U> DataSourceLifeCycle for ExtensibleDataSource<D, U>

    source§

    type Storage = <D as DataSourceLifeCycle>::Storage

    Backing storage for the data source. Read more
    source§

    fn create<'async_trait>( + U: Clone + Default + Send + Sync + 'static,

    source§

    type Storage = <D as DataSourceLifeCycle>::Storage

    Backing storage for the data source. Read more
    source§

    fn create<'async_trait>( node_id: usize, ) -> Pin<Box<dyn Future<Output = Self::Storage> + Send + 'async_trait>>
    where - Self: 'async_trait,

    source§

    fn connect<'life0, 'async_trait>( + Self: 'async_trait,

    source§

    fn connect<'life0, 'async_trait>( storage: &'life0 Self::Storage, ) -> Pin<Box<dyn Future<Output = Self> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn reset<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn reset<'life0, 'async_trait>( storage: &'life0 Self::Storage, ) -> Pin<Box<dyn Future<Output = Self> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn handle_event<'life0, 'life1, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn handle_event<'life0, 'life1, 'async_trait>( &'life0 self, event: &'life1 Event<MockTypes>, ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
    where @@ -137,98 +175,98 @@ _network: &'life0 mut MockNetwork<Self>, ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    Setup runs after setting up the network but before starting a test.
    source§

    impl<D: Debug, U: Debug> Debug for ExtensibleDataSource<D, U>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<D, U, Types> ExplorerDataSource<Types> for ExtensibleDataSource<D, U>
    where + 'life0: 'async_trait,

    Setup runs after setting up the network but before starting a test.
    source§

    impl<D: Debug, U: Debug> Debug for ExtensibleDataSource<D, U>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<D, U, Types> ExplorerDataSource<Types> for ExtensibleDataSource<D, U>
    where D: ExplorerDataSource<Types> + Sync, U: Send + Sync, Types: NodeType, Payload<Types>: QueryablePayload<Types>, Header<Types>: ExplorerHeader<Types> + QueryableHeader<Types>, - Transaction<Types>: ExplorerTransaction,

    source§

    fn get_block_detail<'life0, 'async_trait>( + Transaction<Types>: ExplorerTransaction,

    source§

    fn get_block_detail<'life0, 'async_trait>( &'life0 self, request: BlockIdentifier<Types>, ) -> Pin<Box<dyn Future<Output = Result<BlockDetail<Types>, GetBlockDetailError>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    get_block_detail is a method that retrieves the details of a specific block from the blockchain. The block is identified by the given -BlockIdentifier.
    source§

    fn get_block_summaries<'life0, 'async_trait>( +BlockIdentifier.

    source§

    fn get_block_summaries<'life0, 'async_trait>( &'life0 self, request: GetBlockSummariesRequest<Types>, ) -> Pin<Box<dyn Future<Output = Result<Vec<BlockSummary<Types>>, GetBlockSummariesError>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    get_block_summaries is a method that retrieves a list of block summaries from the blockchain. The list is generated from the given -GetBlockSummariesRequest.
    source§

    fn get_transaction_detail<'life0, 'async_trait>( +GetBlockSummariesRequest.

    source§

    fn get_transaction_detail<'life0, 'async_trait>( &'life0 self, request: TransactionIdentifier<Types>, ) -> Pin<Box<dyn Future<Output = Result<TransactionDetailResponse<Types>, GetTransactionDetailError>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    get_transaction_detail is a method that retrieves the details of a specific transaction from the blockchain. The transaction is identified -by the given TransactionIdentifier.
    source§

    fn get_transaction_summaries<'life0, 'async_trait>( +by the given TransactionIdentifier.

    source§

    fn get_transaction_summaries<'life0, 'async_trait>( &'life0 self, request: GetTransactionSummariesRequest<Types>, ) -> Pin<Box<dyn Future<Output = Result<Vec<TransactionSummary<Types>>, GetTransactionSummariesError>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    get_transaction_summaries is a method that retrieves a list of transaction summaries from the blockchain. The list is generated from -the given GetTransactionSummariesRequest.
    source§

    fn get_explorer_summary<'life0, 'async_trait>( +the given GetTransactionSummariesRequest.

    source§

    fn get_explorer_summary<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<ExplorerSummary<Types>, GetExplorerSummaryError>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    get_explorer_summary is a method that retrieves a summary overview of the blockchain. This is useful for displaying information that -indicates the overall status of the block chain.
    source§

    fn get_search_results<'life0, 'async_trait>( +indicates the overall status of the block chain.

    source§

    fn get_search_results<'life0, 'async_trait>( &'life0 self, query: TaggedBase64, ) -> Pin<Box<dyn Future<Output = Result<SearchResult<Types>, GetSearchResultsError>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    get_search_results is a method that retrieves the results of a search query against the blockchain. The results are generated from the given -query string.
    source§

    impl<D, U> HasMetrics for ExtensibleDataSource<D, U>
    where - D: HasMetrics,

    source§

    impl<D, U, Types, State, const ARITY: usize> MerklizedStateDataSource<Types, State, ARITY> for ExtensibleDataSource<D, U>
    where +query string.

    source§

    impl<D, U> HasMetrics for ExtensibleDataSource<D, U>
    where + D: HasMetrics,

    source§

    impl<D, U, Types, State, const ARITY: usize> MerklizedStateDataSource<Types, State, ARITY> for ExtensibleDataSource<D, U>
    where D: MerklizedStateDataSource<Types, State, ARITY> + Sync, U: Send + Sync, Types: NodeType, - State: MerklizedState<Types, ARITY>,

    source§

    fn get_path<'life0, 'async_trait>( + State: MerklizedState<Types, ARITY>,

    source§

    fn get_path<'life0, 'async_trait>( &'life0 self, snapshot: Snapshot<Types, State, ARITY>, key: State::Key, ) -> Pin<Box<dyn Future<Output = QueryResult<MerkleProof<State::Entry, State::Key, State::T, ARITY>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    impl<D, U> MerklizedStateHeightPersistence for ExtensibleDataSource<D, U>
    where + 'life0: 'async_trait,

    source§

    impl<D, U> MerklizedStateHeightPersistence for ExtensibleDataSource<D, U>

    source§

    fn get_last_state_height<'life0, 'async_trait>( + U: Send + Sync,

    source§

    fn get_last_state_height<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    impl<D, U, Types> NodeDataSource<Types> for ExtensibleDataSource<D, U>
    where + 'life0: 'async_trait,

    source§

    impl<D, U, Types> NodeDataSource<Types> for ExtensibleDataSource<D, U>
    where D: NodeDataSource<Types> + Send + Sync, U: Send + Sync, - Types: NodeType,

    source§

    fn block_height<'life0, 'async_trait>( + Types: NodeType,

    source§

    fn block_height<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn count_transactions_in_range<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn count_transactions_in_range<'life0, 'async_trait>( &'life0 self, range: impl 'async_trait + RangeBounds<usize> + Send, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn payload_size_in_range<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn payload_size_in_range<'life0, 'async_trait>( &'life0 self, range: impl 'async_trait + RangeBounds<usize> + Send, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn vid_share<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

    source§

    fn vid_share<'life0, 'async_trait, ID>( &'life0 self, id: ID, ) -> Pin<Box<dyn Future<Output = QueryResult<VidShare>> + Send + 'async_trait>>
    where ID: Into<BlockId<Types>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn sync_status<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn sync_status<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = QueryResult<SyncStatus>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    Search the database for missing objects and generate a report.
    source§

    fn get_header_window<'life0, 'async_trait>( + 'life0: 'async_trait,

    Search the database for missing objects and generate a report.
    source§

    fn get_header_window<'life0, 'async_trait>( &'life0 self, start: impl 'async_trait + Into<WindowStart<Types>> + Send + Sync, end: u64, @@ -242,9 +280,9 @@ &'life0 self, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: Sync + 'async_trait, - 'life0: 'async_trait,

    source§

    impl<D, U> StatusDataSource for ExtensibleDataSource<D, U>
    where + 'life0: 'async_trait,

    source§

    impl<D, U> StatusDataSource for ExtensibleDataSource<D, U>
    where D: StatusDataSource + Send + Sync, - U: Send + Sync,

    source§

    fn block_height<'life0, 'async_trait>( + U: Send + Sync,

    source§

    fn block_height<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, @@ -256,19 +294,19 @@ &'life0 self, ) -> Pin<Box<dyn Future<Output = QueryResult<f64>> + Send + 'async_trait>>
    where Self: Sync + 'async_trait, - 'life0: 'async_trait,

    source§

    impl<D, U, Types> UpdateAvailabilityData<Types> for ExtensibleDataSource<D, U>
    where + 'life0: 'async_trait,

    source§

    impl<D, U, Types> UpdateAvailabilityData<Types> for ExtensibleDataSource<D, U>
    where D: UpdateAvailabilityData<Types> + Send + Sync, U: Send + Sync, - Types: NodeType,

    source§

    async fn append(&self, info: BlockInfo<Types>) -> Result<()>

    Append information about a new block to the database.
    source§

    impl<D, U, Types, State, const ARITY: usize> UpdateStateData<Types, State, ARITY> for ExtensibleDataSource<D, U>
    where + Types: NodeType,

    source§

    async fn append(&self, info: BlockInfo<Types>) -> Result<()>

    Append information about a new block to the database.
    source§

    impl<D, U, Types, State, const ARITY: usize> UpdateStateData<Types, State, ARITY> for ExtensibleDataSource<D, U>
    where D: UpdateStateData<Types, State, ARITY> + Send + Sync, U: Send + Sync, State: MerklizedState<Types, ARITY>, - Types: NodeType,

    source§

    fn set_last_state_height<'life0, 'async_trait>( + Types: NodeType,

    source§

    fn set_last_state_height<'life0, 'async_trait>( &'life0 mut self, height: usize, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn insert_merkle_nodes<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn insert_merkle_nodes<'life0, 'async_trait>( &'life0 mut self, path: MerkleProof<State::Entry, State::Key, State::T, ARITY>, traversal_path: Vec<usize>, diff --git a/hotshot_query_service/data_source/trait.Transaction.html b/hotshot_query_service/data_source/trait.Transaction.html index 3bc489da1..c1d1b7486 100644 --- a/hotshot_query_service/data_source/trait.Transaction.html +++ b/hotshot_query_service/data_source/trait.Transaction.html @@ -8,10 +8,10 @@ underlying storage, and are saved if the process restarts. It also allows pending changes to be rolled back (revert) so that they are never written back to storage and are no longer reflected even through the data source object which was used to make the changes.

    -

    Required Methods§

    source

    fn commit(self) -> impl Future<Output = Result<()>> + Send

    source

    fn revert(self) -> impl Future + Send

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl<'a> Transaction for hotshot_query_service::data_source::storage::no_storage::Transaction<'a>

    source§

    impl<'a, T> Transaction for hotshot_query_service::data_source::storage::no_storage::testing::Transaction<'a, T>
    where +

    Required Methods§

    source

    fn commit(self) -> impl Future<Output = Result<()>> + Send

    source

    fn revert(self) -> impl Future + Send

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl<'a> Transaction for hotshot_query_service::data_source::storage::no_storage::Transaction<'a>

    source§

    impl<'a, T> Transaction for hotshot_query_service::data_source::storage::no_storage::testing::Transaction<'a, T>
    where T: Transaction,

    source§

    impl<'a, Types> Transaction for hotshot_query_service::data_source::storage::fs::Transaction<RwLockReadGuard<'a, FileSystemStorageInner<Types>>>
    where Types: NodeType, Payload<Types>: QueryablePayload<Types>,

    source§

    impl<'a, Types> Transaction for hotshot_query_service::data_source::storage::fs::Transaction<RwLockWriteGuard<'a, FileSystemStorageInner<Types>>>
    where Types: NodeType, - Payload<Types>: QueryablePayload<Types>,

    source§

    impl<Mode: TransactionMode> Transaction for hotshot_query_service::data_source::storage::sql::Transaction<Mode>

    source§

    impl<T> Transaction for hotshot_query_service::data_source::storage::fail_storage::Transaction<T>
    where + Payload<Types>: QueryablePayload<Types>,

    source§

    impl<Mode: TransactionMode> Transaction for hotshot_query_service::data_source::storage::sql::Transaction<Mode>

    source§

    impl<T> Transaction for hotshot_query_service::data_source::storage::fail_storage::Transaction<T>
    where T: Transaction,

    \ No newline at end of file diff --git a/hotshot_query_service/data_source/trait.VersionedDataSource.html b/hotshot_query_service/data_source/trait.VersionedDataSource.html index 7de456642..7e28fd95c 100644 --- a/hotshot_query_service/data_source/trait.VersionedDataSource.html +++ b/hotshot_query_service/data_source/trait.VersionedDataSource.html @@ -33,9 +33,9 @@ results will not be reflected in a successful read-only transaction which was opened before the write was committed.

    Read-only transactions do not need to be committed, and reverting has no effect.

    -

    Object Safety§

    This trait is not object safe.

    Implementors§

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl VersionedDataSource for DataSource

    source§

    type Transaction<'a> = Transaction<'a, <SqlStorage as VersionedDataSource>::Transaction<'a>> where - Self: 'a

    source§

    type ReadOnly<'a> = Transaction<'a, <SqlStorage as VersionedDataSource>::ReadOnly<'a>> + Self: 'a

    source§

    type ReadOnly<'a> = Transaction<'a, <SqlStorage as VersionedDataSource>::ReadOnly<'a>> where Self: 'a

    source§

    impl VersionedDataSource for NoStorage

    source§

    type Transaction<'a> = Transaction<'a> where @@ -51,17 +51,17 @@ where Self: 'a

    source§

    type ReadOnly<'a> = <D as VersionedDataSource>::ReadOnly<'a> where - Self: 'a

    source§

    impl<S> VersionedDataSource for FailStorage<S>

    source§

    impl<S> VersionedDataSource for FailStorage<S>

    source§

    type Transaction<'a> = Transaction<<S as VersionedDataSource>::Transaction<'a>> where - Self: 'a

    source§

    type ReadOnly<'a> = Transaction<<S as VersionedDataSource>::ReadOnly<'a>> + Self: 'a

    source§

    type ReadOnly<'a> = Transaction<<S as VersionedDataSource>::ReadOnly<'a>> where - Self: 'a

    source§

    impl<Types, S, P> VersionedDataSource for FetchingDataSource<Types, S, P>
    where + Self: 'a

    source§

    impl<Types, S, P> VersionedDataSource for FetchingDataSource<Types, S, P>
    where Types: NodeType, S: VersionedDataSource + Send + Sync, - P: Send + Sync,

    source§

    type Transaction<'a> = <S as VersionedDataSource>::Transaction<'a> where - Self: 'a

    source§

    type ReadOnly<'a> = <S as VersionedDataSource>::ReadOnly<'a> + Self: 'a

    source§

    type ReadOnly<'a> = <S as VersionedDataSource>::ReadOnly<'a> where Self: 'a

    source§

    impl<Types: NodeType> VersionedDataSource for FileSystemStorage<Types>
    where Payload<Types>: QueryablePayload<Types>,

    source§

    type Transaction<'a> = Transaction<RwLockWriteGuard<'a, FileSystemStorageInner<Types>>> diff --git a/hotshot_query_service/enum.QueryError.html b/hotshot_query_service/enum.QueryError.html index 67682c9ca..2f4f4f7f1 100644 --- a/hotshot_query_service/enum.QueryError.html +++ b/hotshot_query_service/enum.QueryError.html @@ -1,4 +1,4 @@ -QueryError in hotshot_query_service - Rust

    Enum hotshot_query_service::QueryError

    source ·
    pub enum QueryError {
    +QueryError in hotshot_query_service - Rust

    Enum hotshot_query_service::QueryError

    source ·
    pub enum QueryError {
         NotFound,
         Missing,
         Error {
    @@ -8,16 +8,16 @@
     
    §

    Missing

    The requested resource exists but is not currently available.

    In most cases a missing resource can be recovered from DA.

    §

    Error

    There was an error while trying to fetch the requested resource.

    -

    Fields

    §message: String

    Implementations§

    source§

    impl QueryError

    source

    pub fn status(&self) -> StatusCode

    Trait Implementations§

    source§

    impl Clone for QueryError

    source§

    fn clone(&self) -> QueryError

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for QueryError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for QueryError

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where - __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for QueryError

    source§

    fn fmt(&self, __snafu_display_formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for QueryError
    where - Self: Debug + Display,

    source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    Returns the lower-level source of this error, if any. Read more
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type-based access to context intended for error reports. Read more
    source§

    impl ErrorCompat for QueryError

    source§

    fn backtrace(&self) -> Option<&Backtrace>

    Returns a Backtrace that may be printed.
    §

    fn iter_chain(&self) -> ChainCompat<'_, '_>
    where +

    Fields

    §message: String

    Implementations§

    source§

    impl QueryError

    source

    pub fn status(&self) -> StatusCode

    Trait Implementations§

    source§

    impl Clone for QueryError

    source§

    fn clone(&self) -> QueryError

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for QueryError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de> Deserialize<'de> for QueryError

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where + __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl Display for QueryError

    source§

    fn fmt(&self, __snafu_display_formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for QueryError
    where + Self: Debug + Display,

    source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    Returns the lower-level source of this error, if any. Read more
    source§

    fn provide<'a>(&'a self, request: &mut Request<'a>)

    🔬This is a nightly-only experimental API. (error_generic_member_access)
    Provides type-based access to context intended for error reports. Read more
    source§

    impl ErrorCompat for QueryError

    source§

    fn backtrace(&self) -> Option<&Backtrace>

    Returns a Backtrace that may be printed.
    §

    fn iter_chain(&self) -> ChainCompat<'_, '_>
    where Self: AsErrorSource,

    Returns an iterator for traversing the chain of errors, starting with the current error -and continuing with recursive calls to Error::source. Read more
    source§

    impl From<Error> for QueryError

    source§

    fn from(err: Error) -> Self

    Converts to this type from the input type.
    source§

    impl From<QueryError> for Error

    source§

    fn from(original: QueryError) -> Error

    Converts to this type from the input type.
    source§

    impl From<QueryError> for Error

    source§

    fn from(original: QueryError) -> Error

    Converts to this type from the input type.
    source§

    impl From<QueryError> for GetBlockDetailError

    source§

    fn from(value: QueryError) -> Self

    Converts to this type from the input type.
    source§

    impl From<QueryError> for GetBlockSummariesError

    source§

    fn from(value: QueryError) -> Self

    Converts to this type from the input type.
    source§

    impl From<QueryError> for GetExplorerSummaryError

    source§

    fn from(value: QueryError) -> Self

    Converts to this type from the input type.
    source§

    impl From<QueryError> for GetSearchResultsError

    source§

    fn from(value: QueryError) -> Self

    Converts to this type from the input type.
    source§

    impl From<QueryError> for GetTransactionDetailError

    source§

    fn from(value: QueryError) -> Self

    Converts to this type from the input type.
    source§

    impl From<QueryError> for GetTransactionSummariesError

    source§

    fn from(value: QueryError) -> Self

    Converts to this type from the input type.
    source§

    impl From<TimestampConversionError> for QueryError

    source§

    fn from(value: TimestampConversionError) -> Self

    Converts to this type from the input type.
    source§

    impl<__T0> IntoError<QueryError> for ErrorSnafu<__T0>
    where +and continuing with recursive calls to Error::source. Read more

    source§

    impl From<Error> for QueryError

    source§

    fn from(err: Error) -> Self

    Converts to this type from the input type.
    source§

    impl From<QueryError> for Error

    source§

    fn from(original: QueryError) -> Error

    Converts to this type from the input type.
    source§

    impl From<QueryError> for Error

    source§

    fn from(original: QueryError) -> Error

    Converts to this type from the input type.
    source§

    impl From<QueryError> for GetBlockDetailError

    source§

    fn from(value: QueryError) -> Self

    Converts to this type from the input type.
    source§

    impl From<QueryError> for GetBlockSummariesError

    source§

    fn from(value: QueryError) -> Self

    Converts to this type from the input type.
    source§

    impl From<QueryError> for GetExplorerSummaryError

    source§

    fn from(value: QueryError) -> Self

    Converts to this type from the input type.
    source§

    impl From<QueryError> for GetSearchResultsError

    source§

    fn from(value: QueryError) -> Self

    Converts to this type from the input type.
    source§

    impl From<QueryError> for GetTransactionDetailError

    source§

    fn from(value: QueryError) -> Self

    Converts to this type from the input type.
    source§

    impl From<QueryError> for GetTransactionSummariesError

    source§

    fn from(value: QueryError) -> Self

    Converts to this type from the input type.
    source§

    impl From<TimestampConversionError> for QueryError

    source§

    fn from(value: TimestampConversionError) -> Self

    Converts to this type from the input type.
    source§

    impl<__T0> IntoError<QueryError> for ErrorSnafu<__T0>
    where QueryError: Error + ErrorCompat, - __T0: Into<String>,

    source§

    type Source = NoneError

    The underlying error
    source§

    fn into_error(self, error: Self::Source) -> QueryError

    Combine the information to produce the error
    source§

    impl IntoError<QueryError> for MissingSnafu
    where - QueryError: Error + ErrorCompat,

    source§

    type Source = NoneError

    The underlying error
    source§

    fn into_error(self, error: Self::Source) -> QueryError

    Combine the information to produce the error
    source§

    impl IntoError<QueryError> for NotFoundSnafu
    where - QueryError: Error + ErrorCompat,

    source§

    type Source = NoneError

    The underlying error
    source§

    fn into_error(self, error: Self::Source) -> QueryError

    Combine the information to produce the error
    source§

    impl Serialize for QueryError

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __T0: Into<String>,

    source§

    type Source = NoneError

    The underlying error
    source§

    fn into_error(self, error: Self::Source) -> QueryError

    Combine the information to produce the error
    source§

    impl IntoError<QueryError> for MissingSnafu
    where + QueryError: Error + ErrorCompat,

    source§

    type Source = NoneError

    The underlying error
    source§

    fn into_error(self, error: Self::Source) -> QueryError

    Combine the information to produce the error
    source§

    impl IntoError<QueryError> for NotFoundSnafu
    where + QueryError: Error + ErrorCompat,

    source§

    type Source = NoneError

    The underlying error
    source§

    fn into_error(self, error: Self::Source) -> QueryError

    Combine the information to produce the error
    source§

    impl Serialize for QueryError

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where __S: Serializer,

    Serialize this value into the given Serde serializer. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<T> ArchivePointee for T

    §

    type ArchivedMetadata = ()

    The archived version of the pointer metadata for this type.
    §

    fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, diff --git a/hotshot_query_service/explorer/trait.ExplorerDataSource.html b/hotshot_query_service/explorer/trait.ExplorerDataSource.html index 0a5a98dca..519a2109e 100644 --- a/hotshot_query_service/explorer/trait.ExplorerDataSource.html +++ b/hotshot_query_service/explorer/trait.ExplorerDataSource.html @@ -94,13 +94,13 @@ 'life0: 'async_trait,

    get_search_results is a method that retrieves the results of a search query against the blockchain. The results are generated from the given query string.

    -

    Implementors§

    source§

    impl<D, U, Types> ExplorerDataSource<Types> for ExtensibleDataSource<D, U>
    where +

    Implementors§

    source§

    impl<D, U, Types> ExplorerDataSource<Types> for ExtensibleDataSource<D, U>
    where D: ExplorerDataSource<Types> + Sync, U: Send + Sync, Types: NodeType, Payload<Types>: QueryablePayload<Types>, Header<Types>: ExplorerHeader<Types> + QueryableHeader<Types>, - Transaction<Types>: ExplorerTransaction,

    source§

    impl<Types, S, P> ExplorerDataSource<Types> for FetchingDataSource<Types, S, P>

    source§

    impl<Types, S, P> ExplorerDataSource<Types> for FetchingDataSource<Types, S, P>
    where Types: NodeType, Payload<Types>: QueryablePayload<Types>, Header<Types>: QueryableHeader<Types> + ExplorerHeader<Types>, diff --git a/hotshot_query_service/fetching/provider/struct.AnyProvider.html b/hotshot_query_service/fetching/provider/struct.AnyProvider.html index c8dff5a16..06d9437df 100644 --- a/hotshot_query_service/fetching/provider/struct.AnyProvider.html +++ b/hotshot_query_service/fetching/provider/struct.AnyProvider.html @@ -173,7 +173,7 @@

    §Examples

    V: MultiLane<T>,

    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -[WithDispatch] wrapper. Read more
    source§

    impl<Types, P> AvailabilityProvider<Types> for P
    where +[WithDispatch] wrapper. Read more

    source§

    impl<Types, P> AvailabilityProvider<Types> for P
    where Types: NodeType, P: Provider<Types, LeafRequest> + Provider<Types, PayloadRequest> + Provider<Types, VidCommonRequest> + Sync + 'static,

    §

    impl<T> ErasedDestructor for T
    where T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/hotshot_query_service/fetching/provider/struct.NoFetching.html b/hotshot_query_service/fetching/provider/struct.NoFetching.html index a62fc1a47..ab35f9e67 100644 --- a/hotshot_query_service/fetching/provider/struct.NoFetching.html +++ b/hotshot_query_service/fetching/provider/struct.NoFetching.html @@ -125,7 +125,7 @@ V: MultiLane<T>,
    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -[WithDispatch] wrapper. Read more
    source§

    impl<Types, P> AvailabilityProvider<Types> for P
    where +[WithDispatch] wrapper. Read more
    source§

    impl<Types, P> AvailabilityProvider<Types> for P
    where Types: NodeType, P: Provider<Types, LeafRequest> + Provider<Types, PayloadRequest> + Provider<Types, VidCommonRequest> + Sync + 'static,

    §

    impl<T> ErasedDestructor for T
    where T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/hotshot_query_service/fetching/provider/struct.QueryServiceProvider.html b/hotshot_query_service/fetching/provider/struct.QueryServiceProvider.html index f5b014948..f75700d84 100644 --- a/hotshot_query_service/fetching/provider/struct.QueryServiceProvider.html +++ b/hotshot_query_service/fetching/provider/struct.QueryServiceProvider.html @@ -139,7 +139,7 @@ V: MultiLane<T>,
    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -[WithDispatch] wrapper. Read more
    source§

    impl<Types, P> AvailabilityProvider<Types> for P
    where +[WithDispatch] wrapper. Read more
    source§

    impl<Types, P> AvailabilityProvider<Types> for P
    where Types: NodeType, P: Provider<Types, LeafRequest> + Provider<Types, PayloadRequest> + Provider<Types, VidCommonRequest> + Sync + 'static,

    §

    impl<T> ErasedDestructor for T
    where T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/hotshot_query_service/fetching/provider/struct.TestProvider.html b/hotshot_query_service/fetching/provider/struct.TestProvider.html index 340130831..8d196e2d7 100644 --- a/hotshot_query_service/fetching/provider/struct.TestProvider.html +++ b/hotshot_query_service/fetching/provider/struct.TestProvider.html @@ -144,7 +144,7 @@ V: MultiLane<T>,
    §

    fn vzip(self) -> V

    §

    impl<T> WithSubscriber for T

    §

    fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
    where S: Into<Dispatch>,

    Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
    §

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -[WithDispatch] wrapper. Read more
    source§

    impl<Types, P> AvailabilityProvider<Types> for P
    where +[WithDispatch] wrapper. Read more
    source§

    impl<Types, P> AvailabilityProvider<Types> for P
    where Types: NodeType, P: Provider<Types, LeafRequest> + Provider<Types, PayloadRequest> + Provider<Types, VidCommonRequest> + Sync + 'static,

    §

    impl<T> ErasedDestructor for T
    where T: 'static,

    §

    impl<T> MaybeSendSync for T

    \ No newline at end of file diff --git a/hotshot_query_service/fn.run_standalone_service.html b/hotshot_query_service/fn.run_standalone_service.html index c22785d5b..45695edfa 100644 --- a/hotshot_query_service/fn.run_standalone_service.html +++ b/hotshot_query_service/fn.run_standalone_service.html @@ -1,4 +1,4 @@ -run_standalone_service in hotshot_query_service - Rust

    Function hotshot_query_service::run_standalone_service

    source ·
    pub async fn run_standalone_service<Types: NodeType, I: NodeImplementation<Types>, D, ApiVer, HsVer: Versions>(
    +run_standalone_service in hotshot_query_service - Rust

    Function hotshot_query_service::run_standalone_service

    source ·
    pub async fn run_standalone_service<Types: NodeType, I: NodeImplementation<Types>, D, ApiVer, HsVer: Versions>(
         options: Options,
         data_source: D,
         hotshot: SystemContextHandle<Types, I, HsVer>,
    diff --git a/hotshot_query_service/index.html b/hotshot_query_service/index.html
    index 397bbc342..8fd2b51c9 100644
    --- a/hotshot_query_service/index.html
    +++ b/hotshot_query_service/index.html
    @@ -1,4 +1,4 @@
    -hotshot_query_service - Rust

    Crate hotshot_query_service

    source ·
    Expand description

    The HotShot Query Service is a minimal, generic query service that can be integrated into any +hotshot_query_service - Rust

    Crate hotshot_query_service

    source ·
    Expand description

    The HotShot Query Service is a minimal, generic query service that can be integrated into any decentralized application running on the [hotshot] consensus layer. It provides all the features that HotShot itself expects of a query service (such as providing consensus-related data for catchup and synchronization) as well as some application-level features that deal only with @@ -195,9 +195,15 @@

    §Composition where R: RangeBounds<usize> + Send; type PayloadRange<R> = D::PayloadRange<R> + where + R: RangeBounds<usize> + Send; + type PayloadMetadataRange<R> = D::PayloadMetadataRange<R> where R: RangeBounds<usize> + Send; type VidCommonRange<R> = D::VidCommonRange<R> + where + R: RangeBounds<usize> + Send; + type VidCommonMetadataRange<R> = D::VidCommonMetadataRange<R> where R: RangeBounds<usize> + Send; diff --git a/hotshot_query_service/macro.instantiate_data_source_tests.html b/hotshot_query_service/macro.instantiate_data_source_tests.html index 4766c5385..7a165579e 100644 --- a/hotshot_query_service/macro.instantiate_data_source_tests.html +++ b/hotshot_query_service/macro.instantiate_data_source_tests.html @@ -1,3 +1,3 @@ -instantiate_data_source_tests in hotshot_query_service - Rust
    macro_rules! instantiate_data_source_tests {
    +instantiate_data_source_tests in hotshot_query_service - Rust
    macro_rules! instantiate_data_source_tests {
         ($t:ty) => { ... };
     }
    \ No newline at end of file diff --git a/hotshot_query_service/macro.instantiate_node_tests.html b/hotshot_query_service/macro.instantiate_node_tests.html index 61fde7505..c505f05fb 100644 --- a/hotshot_query_service/macro.instantiate_node_tests.html +++ b/hotshot_query_service/macro.instantiate_node_tests.html @@ -1,3 +1,3 @@ -instantiate_node_tests in hotshot_query_service - Rust
    macro_rules! instantiate_node_tests {
    +instantiate_node_tests in hotshot_query_service - Rust
    macro_rules! instantiate_node_tests {
         ($($t:ty),*) => { ... };
     }
    \ No newline at end of file diff --git a/hotshot_query_service/macro.instantiate_persistence_tests.html b/hotshot_query_service/macro.instantiate_persistence_tests.html index 095155057..5e02adae2 100644 --- a/hotshot_query_service/macro.instantiate_persistence_tests.html +++ b/hotshot_query_service/macro.instantiate_persistence_tests.html @@ -1,3 +1,3 @@ -instantiate_persistence_tests in hotshot_query_service - Rust
    macro_rules! instantiate_persistence_tests {
    +instantiate_persistence_tests in hotshot_query_service - Rust
    macro_rules! instantiate_persistence_tests {
         ($($t:ty),*) => { ... };
     }
    \ No newline at end of file diff --git a/hotshot_query_service/macro.instantiate_status_tests.html b/hotshot_query_service/macro.instantiate_status_tests.html index 1ceead4c5..a4d4ed5be 100644 --- a/hotshot_query_service/macro.instantiate_status_tests.html +++ b/hotshot_query_service/macro.instantiate_status_tests.html @@ -1,3 +1,3 @@ -instantiate_status_tests in hotshot_query_service - Rust
    macro_rules! instantiate_status_tests {
    +instantiate_status_tests in hotshot_query_service - Rust
    macro_rules! instantiate_status_tests {
         ($($t:ty),*) => { ... };
     }
    \ No newline at end of file diff --git a/hotshot_query_service/merklized_state/trait.MerklizedStateDataSource.html b/hotshot_query_service/merklized_state/trait.MerklizedStateDataSource.html index 865ae4a55..c01aec0d6 100644 --- a/hotshot_query_service/merklized_state/trait.MerklizedStateDataSource.html +++ b/hotshot_query_service/merklized_state/trait.MerklizedStateDataSource.html @@ -17,11 +17,11 @@ key: State::Key, ) -> Pin<Box<dyn Future<Output = QueryResult<MerkleProof<State::Entry, State::Key, State::T, ARITY>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    Implementors§

    source§

    impl<D, U, Types, State, const ARITY: usize> MerklizedStateDataSource<Types, State, ARITY> for ExtensibleDataSource<D, U>
    where + 'life0: 'async_trait,

    Implementors§

    source§

    impl<D, U, Types, State, const ARITY: usize> MerklizedStateDataSource<Types, State, ARITY> for ExtensibleDataSource<D, U>
    where D: MerklizedStateDataSource<Types, State, ARITY> + Sync, U: Send + Sync, Types: NodeType, - State: MerklizedState<Types, ARITY>,

    source§

    impl<Types, S, P, State, const ARITY: usize> MerklizedStateDataSource<Types, State, ARITY> for FetchingDataSource<Types, S, P>
    where + State: MerklizedState<Types, ARITY>,

    source§

    impl<Types, S, P, State, const ARITY: usize> MerklizedStateDataSource<Types, State, ARITY> for FetchingDataSource<Types, S, P>
    where Types: NodeType, S: VersionedDataSource + 'static, for<'a> S::ReadOnly<'a>: MerklizedStateStorage<Types, State, ARITY>, diff --git a/hotshot_query_service/merklized_state/trait.MerklizedStateHeightPersistence.html b/hotshot_query_service/merklized_state/trait.MerklizedStateHeightPersistence.html index 7433b962f..508d9f2ce 100644 --- a/hotshot_query_service/merklized_state/trait.MerklizedStateHeightPersistence.html +++ b/hotshot_query_service/merklized_state/trait.MerklizedStateHeightPersistence.html @@ -9,9 +9,9 @@ &'life0 self, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    Implementors§

    source§

    impl<D, U> MerklizedStateHeightPersistence for ExtensibleDataSource<D, U>
    where + 'life0: 'async_trait,

    Implementors§

    source§

    impl<D, U> MerklizedStateHeightPersistence for ExtensibleDataSource<D, U>

    source§

    impl<Types, S, P> MerklizedStateHeightPersistence for FetchingDataSource<Types, S, P>
    where + U: Send + Sync,

    source§

    impl<Types, S, P> MerklizedStateHeightPersistence for FetchingDataSource<Types, S, P>
    where Types: NodeType, Payload<Types>: QueryablePayload<Types>, S: VersionedDataSource + 'static, diff --git a/hotshot_query_service/merklized_state/trait.UpdateStateData.html b/hotshot_query_service/merklized_state/trait.UpdateStateData.html index 6e2a3ff6a..d1b9a140a 100644 --- a/hotshot_query_service/merklized_state/trait.UpdateStateData.html +++ b/hotshot_query_service/merklized_state/trait.UpdateStateData.html @@ -27,8 +27,8 @@ block_number: u64, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    Implementors§

    source§

    impl<D, U, Types, State, const ARITY: usize> UpdateStateData<Types, State, ARITY> for ExtensibleDataSource<D, U>
    where + 'life0: 'async_trait,

    Implementors§

    source§

    impl<D, U, Types, State, const ARITY: usize> UpdateStateData<Types, State, ARITY> for ExtensibleDataSource<D, U>
    where D: UpdateStateData<Types, State, ARITY> + Send + Sync, U: Send + Sync, State: MerklizedState<Types, ARITY>, - Types: NodeType,

    source§

    impl<Types: NodeType, State: MerklizedState<Types, ARITY>, const ARITY: usize> UpdateStateData<Types, State, ARITY> for Transaction<Write>

    \ No newline at end of file + Types: NodeType,
    source§

    impl<Types: NodeType, State: MerklizedState<Types, ARITY>, const ARITY: usize> UpdateStateData<Types, State, ARITY> for Transaction<Write>

    \ No newline at end of file diff --git a/hotshot_query_service/node/trait.NodeDataSource.html b/hotshot_query_service/node/trait.NodeDataSource.html index 3cf2249ab..61c9fde0d 100644 --- a/hotshot_query_service/node/trait.NodeDataSource.html +++ b/hotshot_query_service/node/trait.NodeDataSource.html @@ -87,10 +87,10 @@ &'life0 self, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: Sync + 'async_trait, - 'life0: 'async_trait,

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl NodeDataSource<MockTypes> for DataSource

    source§

    impl<D, U, Types> NodeDataSource<Types> for ExtensibleDataSource<D, U>
    where + 'life0: 'async_trait,

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl NodeDataSource<MockTypes> for DataSource

    source§

    impl<D, U, Types> NodeDataSource<Types> for ExtensibleDataSource<D, U>
    where D: NodeDataSource<Types> + Send + Sync, U: Send + Sync, - Types: NodeType,

    source§

    impl<Types, S, P> NodeDataSource<Types> for FetchingDataSource<Types, S, P>
    where + Types: NodeType,

    source§

    impl<Types, S, P> NodeDataSource<Types> for FetchingDataSource<Types, S, P>
    where Types: NodeType, S: VersionedDataSource + 'static, for<'a> S::ReadOnly<'a>: NodeStorage<Types>, diff --git a/hotshot_query_service/status/trait.HasMetrics.html b/hotshot_query_service/status/trait.HasMetrics.html index 0a6f176e0..328b06554 100644 --- a/hotshot_query_service/status/trait.HasMetrics.html +++ b/hotshot_query_service/status/trait.HasMetrics.html @@ -1,10 +1,10 @@ HasMetrics in hotshot_query_service::status - Rust

    Trait hotshot_query_service::status::HasMetrics

    source ·
    pub trait HasMetrics {
         // Required method
         fn metrics(&self) -> &PrometheusMetrics;
    -}

    Required Methods§

    Implementors§

    source§

    impl HasMetrics for DataSource

    source§

    impl HasMetrics for NoStorage

    source§

    impl HasMetrics for SqlStorage

    source§

    impl HasMetrics for MetricsDataSource

    source§

    impl<D, U> HasMetrics for ExtensibleDataSource<D, U>
    where - D: HasMetrics,

    source§

    impl<S> HasMetrics for FailStorage<S>
    where - S: HasMetrics,

    source§

    impl<Types> HasMetrics for FileSystemStorage<Types>
    where +}

    Required Methods§

    Implementors§

    source§

    impl HasMetrics for DataSource

    source§

    impl HasMetrics for NoStorage

    source§

    impl HasMetrics for SqlStorage

    source§

    impl HasMetrics for MetricsDataSource

    source§

    impl<D, U> HasMetrics for ExtensibleDataSource<D, U>
    where + D: HasMetrics,

    source§

    impl<S> HasMetrics for FailStorage<S>
    where + S: HasMetrics,

    source§

    impl<Types> HasMetrics for FileSystemStorage<Types>
    where Types: NodeType, - Payload<Types>: QueryablePayload<Types>,

    source§

    impl<Types, S, P> HasMetrics for FetchingDataSource<Types, S, P>
    where + Payload<Types>: QueryablePayload<Types>,

    source§

    impl<Types, S, P> HasMetrics for FetchingDataSource<Types, S, P>
    where Types: NodeType, S: HasMetrics,

    \ No newline at end of file diff --git a/hotshot_query_service/status/trait.StatusDataSource.html b/hotshot_query_service/status/trait.StatusDataSource.html index 592597aef..4eda41f75 100644 --- a/hotshot_query_service/status/trait.StatusDataSource.html +++ b/hotshot_query_service/status/trait.StatusDataSource.html @@ -30,9 +30,9 @@ &'life0 self, ) -> Pin<Box<dyn Future<Output = QueryResult<f64>> + Send + 'async_trait>>
    where Self: Sync + 'async_trait, - 'life0: 'async_trait,

    Implementors§

    Implementors§

    source§

    impl StatusDataSource for DataSource

    source§

    impl StatusDataSource for MetricsDataSource

    source§

    impl<D, U> StatusDataSource for ExtensibleDataSource<D, U>
    where D: StatusDataSource + Send + Sync, - U: Send + Sync,

    source§

    impl<Types, S, P> StatusDataSource for FetchingDataSource<Types, S, P>
    where + U: Send + Sync,

    source§

    impl<Types, S, P> StatusDataSource for FetchingDataSource<Types, S, P>
    where Types: NodeType, S: VersionedDataSource + HasMetrics + Send + Sync + 'static, for<'a> S::ReadOnly<'a>: NodeStorage<Types>, diff --git a/hotshot_query_service/struct.ApiState.html b/hotshot_query_service/struct.ApiState.html index 64ca30818..08a5da836 100644 --- a/hotshot_query_service/struct.ApiState.html +++ b/hotshot_query_service/struct.ApiState.html @@ -1,5 +1,5 @@ -ApiState in hotshot_query_service - Rust

    Struct hotshot_query_service::ApiState

    source ·
    pub struct ApiState<D>(/* private fields */);
    Expand description

    Read-only wrapper for API state which does not require locking.

    -

    Trait Implementations§

    source§

    impl<D: Clone> Clone for ApiState<D>

    source§

    fn clone(&self) -> ApiState<D>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<D: Debug> Debug for ApiState<D>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<D> Deref for ApiState<D>

    source§

    type Target = Arc<D>

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &Self::Target

    Dereferences the value.
    source§

    impl<D> From<ApiState<D>> for Arc<D>

    source§

    fn from(original: ApiState<D>) -> Self

    Converts to this type from the input type.
    source§

    impl<D> From<Arc<D>> for ApiState<D>

    source§

    fn from(original: Arc<D>) -> ApiState<D>

    Converts to this type from the input type.
    source§

    impl<D> From<D> for ApiState<D>

    source§

    fn from(d: D) -> Self

    Converts to this type from the input type.
    source§

    impl<D: 'static + Send + Sync> ReadState for ApiState<D>

    source§

    type State = D

    The type of state which this type allows a caller to read.
    source§

    fn read<'life0, 'async_trait, T>( +ApiState in hotshot_query_service - Rust

    Struct hotshot_query_service::ApiState

    source ·
    pub struct ApiState<D>(/* private fields */);
    Expand description

    Read-only wrapper for API state which does not require locking.

    +

    Trait Implementations§

    source§

    impl<D: Clone> Clone for ApiState<D>

    source§

    fn clone(&self) -> ApiState<D>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<D: Debug> Debug for ApiState<D>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<D> Deref for ApiState<D>

    source§

    type Target = Arc<D>

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &Self::Target

    Dereferences the value.
    source§

    impl<D> From<ApiState<D>> for Arc<D>

    source§

    fn from(original: ApiState<D>) -> Self

    Converts to this type from the input type.
    source§

    impl<D> From<Arc<D>> for ApiState<D>

    source§

    fn from(original: Arc<D>) -> ApiState<D>

    Converts to this type from the input type.
    source§

    impl<D> From<D> for ApiState<D>

    source§

    fn from(d: D) -> Self

    Converts to this type from the input type.
    source§

    impl<D: 'static + Send + Sync> ReadState for ApiState<D>

    source§

    type State = D

    The type of state which this type allows a caller to read.
    source§

    fn read<'life0, 'async_trait, T>( &'life0 self, op: impl 'async_trait + Send + for<'a> FnOnce(&'a Self::State) -> BoxFuture<'a, T>, ) -> Pin<Box<dyn Future<Output = T> + Send + 'async_trait>>
    where diff --git a/hotshot_query_service/struct.ErrorSnafu.html b/hotshot_query_service/struct.ErrorSnafu.html index c6f7b1c0d..710cd73b0 100644 --- a/hotshot_query_service/struct.ErrorSnafu.html +++ b/hotshot_query_service/struct.ErrorSnafu.html @@ -1,13 +1,13 @@ -ErrorSnafu in hotshot_query_service - Rust

    Struct hotshot_query_service::ErrorSnafu

    source ·
    pub struct ErrorSnafu<__T0> {
    +ErrorSnafu in hotshot_query_service - Rust

    Struct hotshot_query_service::ErrorSnafu

    source ·
    pub struct ErrorSnafu<__T0> {
         pub message: __T0,
     }
    Expand description

    SNAFU context selector for the QueryError::Error variant

    -

    Fields§

    §message: __T0

    Implementations§

    source§

    impl<__T0> ErrorSnafu<__T0>

    source

    pub fn build(self) -> QueryError
    where +

    Fields§

    §message: __T0

    Implementations§

    source§

    impl<__T0> ErrorSnafu<__T0>

    source

    pub fn build(self) -> QueryError
    where __T0: Into<String>,

    Consume the selector and return the associated error

    -
    source

    pub fn fail<__T>(self) -> Result<__T, QueryError>
    where +

    source

    pub fn fail<__T>(self) -> Result<__T, QueryError>
    where __T0: Into<String>,

    Consume the selector and return a Result with the associated error

    -

    Trait Implementations§

    source§

    impl<__T0: Clone> Clone for ErrorSnafu<__T0>

    source§

    fn clone(&self) -> ErrorSnafu<__T0>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<__T0: Debug> Debug for ErrorSnafu<__T0>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<__T0> IntoError<QueryError> for ErrorSnafu<__T0>
    where +

    Trait Implementations§

    source§

    impl<__T0: Clone> Clone for ErrorSnafu<__T0>

    source§

    fn clone(&self) -> ErrorSnafu<__T0>

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl<__T0: Debug> Debug for ErrorSnafu<__T0>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<__T0> IntoError<QueryError> for ErrorSnafu<__T0>
    where QueryError: Error + ErrorCompat, - __T0: Into<String>,

    source§

    type Source = NoneError

    The underlying error
    source§

    fn into_error(self, error: Self::Source) -> QueryError

    Combine the information to produce the error
    source§

    impl<__T0: Copy> Copy for ErrorSnafu<__T0>

    Auto Trait Implementations§

    §

    impl<__T0> Freeze for ErrorSnafu<__T0>
    where + __T0: Into<String>,

    source§

    type Source = NoneError

    The underlying error
    source§

    fn into_error(self, error: Self::Source) -> QueryError

    Combine the information to produce the error
    source§

    impl<__T0: Copy> Copy for ErrorSnafu<__T0>

    Auto Trait Implementations§

    §

    impl<__T0> Freeze for ErrorSnafu<__T0>
    where __T0: Freeze,

    §

    impl<__T0> RefUnwindSafe for ErrorSnafu<__T0>
    where __T0: RefUnwindSafe,

    §

    impl<__T0> Send for ErrorSnafu<__T0>
    where __T0: Send,

    §

    impl<__T0> Sync for ErrorSnafu<__T0>
    where diff --git a/hotshot_query_service/struct.MissingSnafu.html b/hotshot_query_service/struct.MissingSnafu.html index 24e04b42c..8ba005b5a 100644 --- a/hotshot_query_service/struct.MissingSnafu.html +++ b/hotshot_query_service/struct.MissingSnafu.html @@ -1,8 +1,8 @@ -MissingSnafu in hotshot_query_service - Rust

    Struct hotshot_query_service::MissingSnafu

    source ·
    pub struct MissingSnafu;
    Expand description

    SNAFU context selector for the QueryError::Missing variant

    -

    Implementations§

    source§

    impl MissingSnafu

    source

    pub fn build(self) -> QueryError

    Consume the selector and return the associated error

    -
    source

    pub fn fail<__T>(self) -> Result<__T, QueryError>

    Consume the selector and return a Result with the associated error

    -

    Trait Implementations§

    source§

    impl Clone for MissingSnafu

    source§

    fn clone(&self) -> MissingSnafu

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for MissingSnafu

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl IntoError<QueryError> for MissingSnafu
    where - QueryError: Error + ErrorCompat,

    source§

    type Source = NoneError

    The underlying error
    source§

    fn into_error(self, error: Self::Source) -> QueryError

    Combine the information to produce the error
    source§

    impl Copy for MissingSnafu

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +MissingSnafu in hotshot_query_service - Rust

    Struct hotshot_query_service::MissingSnafu

    source ·
    pub struct MissingSnafu;
    Expand description

    SNAFU context selector for the QueryError::Missing variant

    +

    Implementations§

    source§

    impl MissingSnafu

    source

    pub fn build(self) -> QueryError

    Consume the selector and return the associated error

    +
    source

    pub fn fail<__T>(self) -> Result<__T, QueryError>

    Consume the selector and return a Result with the associated error

    +

    Trait Implementations§

    source§

    impl Clone for MissingSnafu

    source§

    fn clone(&self) -> MissingSnafu

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for MissingSnafu

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl IntoError<QueryError> for MissingSnafu
    where + QueryError: Error + ErrorCompat,

    source§

    type Source = NoneError

    The underlying error
    source§

    fn into_error(self, error: Self::Source) -> QueryError

    Combine the information to produce the error
    source§

    impl Copy for MissingSnafu

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<T> ArchivePointee for T

    §

    type ArchivedMetadata = ()

    The archived version of the pointer metadata for this type.
    §

    fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

    Converts some archived metadata to the pointer metadata for itself.
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where diff --git a/hotshot_query_service/struct.NotFoundSnafu.html b/hotshot_query_service/struct.NotFoundSnafu.html index 14440c25a..4a25eb526 100644 --- a/hotshot_query_service/struct.NotFoundSnafu.html +++ b/hotshot_query_service/struct.NotFoundSnafu.html @@ -1,8 +1,8 @@ -NotFoundSnafu in hotshot_query_service - Rust

    Struct hotshot_query_service::NotFoundSnafu

    source ·
    pub struct NotFoundSnafu;
    Expand description

    SNAFU context selector for the QueryError::NotFound variant

    -

    Implementations§

    source§

    impl NotFoundSnafu

    source

    pub fn build(self) -> QueryError

    Consume the selector and return the associated error

    -
    source

    pub fn fail<__T>(self) -> Result<__T, QueryError>

    Consume the selector and return a Result with the associated error

    -

    Trait Implementations§

    source§

    impl Clone for NotFoundSnafu

    source§

    fn clone(&self) -> NotFoundSnafu

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for NotFoundSnafu

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl IntoError<QueryError> for NotFoundSnafu
    where - QueryError: Error + ErrorCompat,

    source§

    type Source = NoneError

    The underlying error
    source§

    fn into_error(self, error: Self::Source) -> QueryError

    Combine the information to produce the error
    source§

    impl Copy for NotFoundSnafu

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +NotFoundSnafu in hotshot_query_service - Rust

    Struct hotshot_query_service::NotFoundSnafu

    source ·
    pub struct NotFoundSnafu;
    Expand description

    SNAFU context selector for the QueryError::NotFound variant

    +

    Implementations§

    source§

    impl NotFoundSnafu

    source

    pub fn build(self) -> QueryError

    Consume the selector and return the associated error

    +
    source

    pub fn fail<__T>(self) -> Result<__T, QueryError>

    Consume the selector and return a Result with the associated error

    +

    Trait Implementations§

    source§

    impl Clone for NotFoundSnafu

    source§

    fn clone(&self) -> NotFoundSnafu

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for NotFoundSnafu

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl IntoError<QueryError> for NotFoundSnafu
    where + QueryError: Error + ErrorCompat,

    source§

    type Source = NoneError

    The underlying error
    source§

    fn into_error(self, error: Self::Source) -> QueryError

    Combine the information to produce the error
    source§

    impl Copy for NotFoundSnafu

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<T> ArchivePointee for T

    §

    type ArchivedMetadata = ()

    The archived version of the pointer metadata for this type.
    §

    fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

    Converts some archived metadata to the pointer metadata for itself.
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where diff --git a/hotshot_query_service/struct.Options.html b/hotshot_query_service/struct.Options.html index 04442760d..a09f4b99c 100644 --- a/hotshot_query_service/struct.Options.html +++ b/hotshot_query_service/struct.Options.html @@ -1,9 +1,9 @@ -Options in hotshot_query_service - Rust

    Struct hotshot_query_service::Options

    source ·
    pub struct Options {
    +Options in hotshot_query_service - Rust

    Struct hotshot_query_service::Options

    source ·
    pub struct Options {
         pub availability: Options,
         pub node: Options,
         pub status: Options,
         pub port: u16,
    -}

    Fields§

    §availability: Options§node: Options§status: Options§port: u16

    Trait Implementations§

    source§

    impl Default for Options

    source§

    fn default() -> Options

    Returns the “default value” for a type. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +}

    Fields§

    §availability: Options§node: Options§status: Options§port: u16

    Trait Implementations§

    source§

    impl Default for Options

    source§

    fn default() -> Options

    Returns the “default value” for a type. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<T> ArchivePointee for T

    §

    type ArchivedMetadata = ()

    The archived version of the pointer metadata for this type.
    §

    fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

    Converts some archived metadata to the pointer metadata for itself.
    §

    impl<'a, T, E> AsTaggedExplicit<'a, E> for T
    where diff --git a/hotshot_query_service/testing/consensus/trait.DataSourceLifeCycle.html b/hotshot_query_service/testing/consensus/trait.DataSourceLifeCycle.html index 751e58e19..2c1207847 100644 --- a/hotshot_query_service/testing/consensus/trait.DataSourceLifeCycle.html +++ b/hotshot_query_service/testing/consensus/trait.DataSourceLifeCycle.html @@ -60,6 +60,6 @@ ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    Setup runs after setting up the network but before starting a test.

    -

    Object Safety§

    This trait is not object safe.

    Implementors§

    Object Safety§

    This trait is not object safe.

    Implementors§

    \ No newline at end of file + U: Clone + Default + Send + Sync + 'static,

    source§

    impl<P: AvailabilityProvider<MockTypes> + Default> DataSourceLifeCycle for FileSystemDataSource<MockTypes, P>

    source§

    impl<P: AvailabilityProvider<MockTypes> + Default> DataSourceLifeCycle for SqlDataSource<MockTypes, P>

    \ No newline at end of file diff --git a/hotshot_query_service/testing/mocks/struct.MockTypes.html b/hotshot_query_service/testing/mocks/struct.MockTypes.html index 529e436b3..1da41a2b8 100644 --- a/hotshot_query_service/testing/mocks/struct.MockTypes.html +++ b/hotshot_query_service/testing/mocks/struct.MockTypes.html @@ -1,83 +1,121 @@ -MockTypes in hotshot_query_service::testing::mocks - Rust

    Struct hotshot_query_service::testing::mocks::MockTypes

    source ·
    pub struct MockTypes;

    Trait Implementations§

    source§

    impl AvailabilityDataSource<MockTypes> for DataSource

    source§

    type LeafRange<R> = Pin<Box<dyn Stream<Item = Fetch<LeafQueryData<MockTypes>>> + Send>> +MockTypes in hotshot_query_service::testing::mocks - Rust

    Struct hotshot_query_service::testing::mocks::MockTypes

    source ·
    pub struct MockTypes;

    Trait Implementations§

    source§

    impl AvailabilityDataSource<MockTypes> for DataSource

    source§

    type LeafRange<R> = Pin<Box<dyn Stream<Item = Fetch<LeafQueryData<MockTypes>>> + Send>> where - R: RangeBounds<usize> + Send

    source§

    type BlockRange<R> = Pin<Box<dyn Stream<Item = Fetch<BlockQueryData<MockTypes>>> + Send>> + R: RangeBounds<usize> + Send

    source§

    type BlockRange<R> = Pin<Box<dyn Stream<Item = Fetch<BlockQueryData<MockTypes>>> + Send>> where - R: RangeBounds<usize> + Send

    source§

    type PayloadRange<R> = Pin<Box<dyn Stream<Item = Fetch<PayloadQueryData<MockTypes>>> + Send>> + R: RangeBounds<usize> + Send

    source§

    type PayloadRange<R> = Pin<Box<dyn Stream<Item = Fetch<PayloadQueryData<MockTypes>>> + Send>> where - R: RangeBounds<usize> + Send

    source§

    type VidCommonRange<R> = Pin<Box<dyn Stream<Item = Fetch<VidCommonQueryData<MockTypes>>> + Send>> + R: RangeBounds<usize> + Send

    source§

    type PayloadMetadataRange<R> = Pin<Box<dyn Stream<Item = Fetch<PayloadMetadata<MockTypes>>> + Send>> where - R: RangeBounds<usize> + Send

    source§

    fn get_leaf<'life0, 'async_trait, ID>( + R: RangeBounds<usize> + Send

    source§

    type VidCommonRange<R> = Pin<Box<dyn Stream<Item = Fetch<VidCommonQueryData<MockTypes>>> + Send>> +where + R: RangeBounds<usize> + Send

    source§

    type VidCommonMetadataRange<R> = Pin<Box<dyn Stream<Item = Fetch<VidCommonMetadata<MockTypes>>> + Send>> +where + R: RangeBounds<usize> + Send

    source§

    fn get_leaf<'life0, 'async_trait, ID>( &'life0 self, id: ID, ) -> Pin<Box<dyn Future<Output = Fetch<LeafQueryData<MockTypes>>> + Send + 'async_trait>>
    where ID: Into<LeafId<MockTypes>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_block<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

    source§

    fn get_block<'life0, 'async_trait, ID>( &'life0 self, id: ID, ) -> Pin<Box<dyn Future<Output = Fetch<BlockQueryData<MockTypes>>> + Send + 'async_trait>>
    where ID: Into<BlockId<MockTypes>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_payload<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

    source§

    fn get_payload<'life0, 'async_trait, ID>( &'life0 self, id: ID, ) -> Pin<Box<dyn Future<Output = Fetch<PayloadQueryData<MockTypes>>> + Send + 'async_trait>>
    where ID: Into<BlockId<MockTypes>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_vid_common<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

    source§

    fn get_payload_metadata<'life0, 'async_trait, ID>( + &'life0 self, + id: ID, +) -> Pin<Box<dyn Future<Output = Fetch<PayloadMetadata<MockTypes>>> + Send + 'async_trait>>
    where + ID: Into<BlockId<MockTypes>> + Send + Sync + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn get_vid_common<'life0, 'async_trait, ID>( &'life0 self, id: ID, ) -> Pin<Box<dyn Future<Output = Fetch<VidCommonQueryData<MockTypes>>> + Send + 'async_trait>>
    where ID: Into<BlockId<MockTypes>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_leaf_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source§

    fn get_vid_common_metadata<'life0, 'async_trait, ID>( + &'life0 self, + id: ID, +) -> Pin<Box<dyn Future<Output = Fetch<VidCommonMetadata<MockTypes>>> + Send + 'async_trait>>
    where + ID: Into<BlockId<MockTypes>> + Send + Sync + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn get_leaf_range<'life0, 'async_trait, R>( &'life0 self, range: R, ) -> Pin<Box<dyn Future<Output = Self::LeafRange<R>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_block_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source§

    fn get_block_range<'life0, 'async_trait, R>( &'life0 self, range: R, ) -> Pin<Box<dyn Future<Output = Self::BlockRange<R>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_payload_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source§

    fn get_payload_range<'life0, 'async_trait, R>( &'life0 self, range: R, ) -> Pin<Box<dyn Future<Output = Self::PayloadRange<R>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_vid_common_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

    source§

    fn get_payload_metadata_range<'life0, 'async_trait, R>( + &'life0 self, + range: R, +) -> Pin<Box<dyn Future<Output = Self::PayloadMetadataRange<R>> + Send + 'async_trait>>
    where + R: RangeBounds<usize> + Send + 'static + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn get_vid_common_range<'life0, 'async_trait, R>( &'life0 self, range: R, ) -> Pin<Box<dyn Future<Output = Self::VidCommonRange<R>> + Send + 'async_trait>>
    where R: RangeBounds<usize> + Send + 'static + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn get_transaction<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn get_vid_common_metadata_range<'life0, 'async_trait, R>( + &'life0 self, + range: R, +) -> Pin<Box<dyn Future<Output = Self::VidCommonMetadataRange<R>> + Send + 'async_trait>>
    where + R: RangeBounds<usize> + Send + 'static + 'async_trait, + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn get_transaction<'life0, 'async_trait>( &'life0 self, hash: TransactionHash<MockTypes>, ) -> Pin<Box<dyn Future<Output = Fetch<TransactionQueryData<MockTypes>>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    Returns the transaction with the given hash.
    source§

    fn subscribe_blocks<'life0, 'async_trait>( + 'life0: 'async_trait,

    Returns the transaction with the given hash.
    source§

    fn subscribe_blocks<'life0, 'async_trait>( &'life0 self, from: usize, ) -> Pin<Box<dyn Future<Output = BoxStream<'static, BlockQueryData<Types>>> + Send + 'async_trait>>
    where Self: Sync + 'async_trait, - 'life0: 'async_trait,

    source§

    fn subscribe_payloads<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn subscribe_payloads<'life0, 'async_trait>( &'life0 self, from: usize, ) -> Pin<Box<dyn Future<Output = BoxStream<'static, PayloadQueryData<Types>>> + Send + 'async_trait>>
    where Self: Sync + 'async_trait, - 'life0: 'async_trait,

    source§

    fn subscribe_leaves<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn subscribe_payload_metadata<'life0, 'async_trait>( + &'life0 self, + from: usize, +) -> Pin<Box<dyn Future<Output = BoxStream<'static, PayloadMetadata<Types>>> + Send + 'async_trait>>
    where + Self: Sync + 'async_trait, + 'life0: 'async_trait,

    source§

    fn subscribe_leaves<'life0, 'async_trait>( &'life0 self, from: usize, ) -> Pin<Box<dyn Future<Output = BoxStream<'static, LeafQueryData<Types>>> + Send + 'async_trait>>
    where Self: Sync + 'async_trait, - 'life0: 'async_trait,

    source§

    fn subscribe_vid_common<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn subscribe_vid_common<'life0, 'async_trait>( &'life0 self, from: usize, ) -> Pin<Box<dyn Future<Output = BoxStream<'static, VidCommonQueryData<Types>>> + Send + 'async_trait>>
    where + Self: Sync + 'async_trait, + 'life0: 'async_trait,

    source§

    fn subscribe_vid_common_metadata<'life0, 'async_trait>( + &'life0 self, + from: usize, +) -> Pin<Box<dyn Future<Output = BoxStream<'static, VidCommonMetadata<Types>>> + Send + 'async_trait>>
    where Self: Sync + 'async_trait, 'life0: 'async_trait,

    source§

    impl Clone for MockTypes

    source§

    fn clone(&self) -> MockTypes

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    source§

    impl Debug for MockTypes

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for MockTypes

    source§

    fn default() -> MockTypes

    Returns the “default value” for a type. Read more
    source§

    impl<'de> Deserialize<'de> for MockTypes

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    source§

    impl ExplorerHeader<MockTypes> for MockHeader

    source§

    type BalanceAmount = i128

    BalanceAmount is a type that represents a general balance amount. It @@ -96,31 +134,31 @@ &mut self, key: Self::Key, proof: &MerkleProof<Self::Entry, Self::Key, Self::T, 8>, -) -> Result<()>
    Insert a forgotten path into the tree.
    source§

    impl NodeDataSource<MockTypes> for DataSource

    source§

    fn block_height<'life0, 'async_trait>( +) -> Result<()>

    Insert a forgotten path into the tree.
    source§

    impl NodeDataSource<MockTypes> for DataSource

    source§

    fn block_height<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn count_transactions_in_range<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn count_transactions_in_range<'life0, 'async_trait>( &'life0 self, range: impl 'async_trait + RangeBounds<usize> + Send, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn payload_size_in_range<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn payload_size_in_range<'life0, 'async_trait>( &'life0 self, range: impl 'async_trait + RangeBounds<usize> + Send, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn vid_share<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

    source§

    fn vid_share<'life0, 'async_trait, ID>( &'life0 self, id: ID, ) -> Pin<Box<dyn Future<Output = QueryResult<VidShare>> + Send + 'async_trait>>
    where ID: Into<BlockId<MockTypes>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn sync_status<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn sync_status<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = QueryResult<SyncStatus>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    Search the database for missing objects and generate a report.
    source§

    fn get_header_window<'life0, 'async_trait>( + 'life0: 'async_trait,

    Search the database for missing objects and generate a report.
    source§

    fn get_header_window<'life0, 'async_trait>( &'life0 self, start: impl 'async_trait + Into<WindowStart<MockTypes>> + Send + Sync, end: u64, @@ -134,32 +172,32 @@ &'life0 self, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: Sync + 'async_trait, - 'life0: 'async_trait,

    source§

    impl NodeImplementation<MockTypes> for MockNodeImpl

    source§

    type Network = MemoryNetwork<VerKey>

    The underlying network type
    source§

    type Storage = TestStorage<MockTypes>

    Storage for DA layer interactions
    source§

    type AuctionResultsProvider = TestAuctionResultsProvider<MockTypes>

    The auction results type for Solver interactions
    source§

    impl<'a, T> NodeStorage<MockTypes> for Transaction<'a, T>
    where - T: NodeStorage<MockTypes> + Send,

    source§

    fn block_height<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    impl NodeImplementation<MockTypes> for MockNodeImpl

    source§

    type Network = MemoryNetwork<VerKey>

    The underlying network type
    source§

    type Storage = TestStorage<MockTypes>

    Storage for DA layer interactions
    source§

    type AuctionResultsProvider = TestAuctionResultsProvider<MockTypes>

    The auction results type for Solver interactions
    source§

    impl<'a, T> NodeStorage<MockTypes> for Transaction<'a, T>
    where + T: NodeStorage<MockTypes> + Send,

    source§

    fn block_height<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn count_transactions_in_range<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn count_transactions_in_range<'life0, 'async_trait>( &'life0 mut self, range: impl 'async_trait + RangeBounds<usize> + Send, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn payload_size_in_range<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn payload_size_in_range<'life0, 'async_trait>( &'life0 mut self, range: impl 'async_trait + RangeBounds<usize> + Send, ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn vid_share<'life0, 'async_trait, ID>( + 'life0: 'async_trait,

    source§

    fn vid_share<'life0, 'async_trait, ID>( &'life0 mut self, id: ID, ) -> Pin<Box<dyn Future<Output = QueryResult<VidShare>> + Send + 'async_trait>>
    where ID: Into<BlockId<MockTypes>> + Send + Sync + 'async_trait, Self: 'async_trait, - 'life0: 'async_trait,

    source§

    fn sync_status<'life0, 'async_trait>( + 'life0: 'async_trait,

    source§

    fn sync_status<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = QueryResult<SyncStatus>> + Send + 'async_trait>>
    where Self: 'async_trait, - 'life0: 'async_trait,

    Search the database for missing objects and generate a report.
    source§

    fn get_header_window<'life0, 'async_trait>( + 'life0: 'async_trait,

    Search the database for missing objects and generate a report.
    source§

    fn get_header_window<'life0, 'async_trait>( &'life0 mut self, start: impl 'async_trait + Into<WindowStart<MockTypes>> + Send + Sync, end: u64, @@ -174,8 +212,8 @@ <= operator. Read more

    1.0.0 · source§

    fn gt(&self, other: &Rhs) -> bool

    Tests greater than (for self and other) and is used by the > operator. Read more
    1.0.0 · source§

    fn ge(&self, other: &Rhs) -> bool

    Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
    source§

    impl QueryableHeader<MockTypes> for MockHeader

    source§

    fn timestamp(&self) -> u64

    source§

    impl Serialize for MockTypes

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl UpdateAvailabilityData<MockTypes> for DataSource

    source§

    async fn append(&self, info: BlockInfo<MockTypes>) -> Result<()>

    Append information about a new block to the database.
    source§

    impl<'a, T> UpdateAvailabilityStorage<MockTypes> for Transaction<'a, T>

    source§

    async fn insert_leaf(&mut self, leaf: LeafQueryData<MockTypes>) -> Result<()>

    source§

    async fn insert_block(&mut self, block: BlockQueryData<MockTypes>) -> Result<()>

    source§

    async fn insert_vid( + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl UpdateAvailabilityData<MockTypes> for DataSource

    source§

    async fn append(&self, info: BlockInfo<MockTypes>) -> Result<()>

    Append information about a new block to the database.
    source§

    impl<'a, T> UpdateAvailabilityStorage<MockTypes> for Transaction<'a, T>

    source§

    async fn insert_leaf(&mut self, leaf: LeafQueryData<MockTypes>) -> Result<()>

    source§

    async fn insert_block(&mut self, block: BlockQueryData<MockTypes>) -> Result<()>

    source§

    async fn insert_vid( &mut self, common: VidCommonQueryData<MockTypes>, share: Option<VidShare>, diff --git a/hotshot_query_service/type.Header.html b/hotshot_query_service/type.Header.html index 27ff5ef98..659640ed8 100644 --- a/hotshot_query_service/type.Header.html +++ b/hotshot_query_service/type.Header.html @@ -1 +1 @@ -Header in hotshot_query_service - Rust

    Type Alias hotshot_query_service::Header

    source ·
    pub type Header<Types> = <Types as NodeType>::BlockHeader;
    \ No newline at end of file +Header in hotshot_query_service - Rust

    Type Alias hotshot_query_service::Header

    source ·
    pub type Header<Types> = <Types as NodeType>::BlockHeader;
    \ No newline at end of file diff --git a/hotshot_query_service/type.Metadata.html b/hotshot_query_service/type.Metadata.html index 66f3bdaea..69834fb71 100644 --- a/hotshot_query_service/type.Metadata.html +++ b/hotshot_query_service/type.Metadata.html @@ -1 +1 @@ -Metadata in hotshot_query_service - Rust

    Type Alias hotshot_query_service::Metadata

    source ·
    pub type Metadata<Types> = <Payload<Types> as BlockPayload<Types>>::Metadata;
    \ No newline at end of file +Metadata in hotshot_query_service - Rust

    Type Alias hotshot_query_service::Metadata

    source ·
    pub type Metadata<Types> = <Payload<Types> as BlockPayload<Types>>::Metadata;
    \ No newline at end of file diff --git a/hotshot_query_service/type.Payload.html b/hotshot_query_service/type.Payload.html index 0b7933331..29f077c72 100644 --- a/hotshot_query_service/type.Payload.html +++ b/hotshot_query_service/type.Payload.html @@ -1 +1 @@ -Payload in hotshot_query_service - Rust

    Type Alias hotshot_query_service::Payload

    source ·
    pub type Payload<Types> = <Types as NodeType>::BlockPayload;
    \ No newline at end of file +Payload in hotshot_query_service - Rust

    Type Alias hotshot_query_service::Payload

    source ·
    pub type Payload<Types> = <Types as NodeType>::BlockPayload;
    \ No newline at end of file diff --git a/hotshot_query_service/type.QueryResult.html b/hotshot_query_service/type.QueryResult.html index 2c1947584..33e5fb902 100644 --- a/hotshot_query_service/type.QueryResult.html +++ b/hotshot_query_service/type.QueryResult.html @@ -1,4 +1,4 @@ -QueryResult in hotshot_query_service - Rust

    Type Alias hotshot_query_service::QueryResult

    source ·
    pub type QueryResult<T> = Result<T, QueryError>;

    Aliased Type§

    enum QueryResult<T> {
    +QueryResult in hotshot_query_service - Rust

    Type Alias hotshot_query_service::QueryResult

    source ·
    pub type QueryResult<T> = Result<T, QueryError>;

    Aliased Type§

    enum QueryResult<T> {
         Ok(T),
         Err(QueryError),
     }

    Variants§

    §1.0.0

    Ok(T)

    Contains the success value

    diff --git a/hotshot_query_service/type.SignatureKey.html b/hotshot_query_service/type.SignatureKey.html index f2cea411a..9d3455ee5 100644 --- a/hotshot_query_service/type.SignatureKey.html +++ b/hotshot_query_service/type.SignatureKey.html @@ -1 +1 @@ -SignatureKey in hotshot_query_service - Rust

    Type Alias hotshot_query_service::SignatureKey

    source ·
    pub type SignatureKey<Types> = <Types as NodeType>::SignatureKey;
    \ No newline at end of file +SignatureKey in hotshot_query_service - Rust

    Type Alias hotshot_query_service::SignatureKey

    source ·
    pub type SignatureKey<Types> = <Types as NodeType>::SignatureKey;
    \ No newline at end of file diff --git a/hotshot_query_service/type.Transaction.html b/hotshot_query_service/type.Transaction.html index c7866cc88..cee46fa59 100644 --- a/hotshot_query_service/type.Transaction.html +++ b/hotshot_query_service/type.Transaction.html @@ -1,2 +1,2 @@ -Transaction in hotshot_query_service - Rust

    Type Alias hotshot_query_service::Transaction

    source ·
    pub type Transaction<Types> = <Payload<Types> as BlockPayload<Types>>::Transaction;
    Expand description

    Item within a Payload.

    +Transaction in hotshot_query_service - Rust

    Type Alias hotshot_query_service::Transaction

    source ·
    pub type Transaction<Types> = <Payload<Types> as BlockPayload<Types>>::Transaction;
    Expand description

    Item within a Payload.

    \ No newline at end of file diff --git a/hotshot_query_service/types/trait.HeightIndexed.html b/hotshot_query_service/types/trait.HeightIndexed.html index 4781a3dc9..589d0d815 100644 --- a/hotshot_query_service/types/trait.HeightIndexed.html +++ b/hotshot_query_service/types/trait.HeightIndexed.html @@ -2,4 +2,6 @@ // Required method fn height(&self) -> u64; }
    Expand description

    Types which have a notion of “height” within a chain.

    -

    Required Methods§

    source

    fn height(&self) -> u64

    Implementations on Foreign Types§

    source§

    impl<Types: NodeType> HeightIndexed for (VidCommonQueryData<Types>, Option<VidShare>)

    source§

    fn height(&self) -> u64

    Implementors§

    source§

    impl HeightIndexed for MockHeader

    source§

    impl<Types: NodeType> HeightIndexed for BlockInfo<Types>

    source§

    impl<Types: NodeType> HeightIndexed for BlockQueryData<Types>

    source§

    impl<Types: NodeType> HeightIndexed for BlockSummaryQueryData<Types>

    source§

    impl<Types: NodeType> HeightIndexed for LeafQueryData<Types>

    source§

    impl<Types: NodeType> HeightIndexed for PayloadQueryData<Types>

    source§

    impl<Types: NodeType> HeightIndexed for VidCommonQueryData<Types>

    \ No newline at end of file +

    Required Methods§

    source

    fn height(&self) -> u64

    Implementations on Foreign Types§

    source§

    impl<Types: NodeType> HeightIndexed for (VidCommonQueryData<Types>, Option<VidShare>)

    source§

    fn height(&self) -> u64

    Implementors§

    source§

    impl HeightIndexed for MockHeader

    source§

    impl<Types> HeightIndexed for PayloadMetadata<Types>
    where + Types: NodeType,

    source§

    impl<Types> HeightIndexed for VidCommonMetadata<Types>
    where + Types: NodeType,

    source§

    impl<Types: NodeType> HeightIndexed for BlockInfo<Types>

    source§

    impl<Types: NodeType> HeightIndexed for BlockQueryData<Types>

    source§

    impl<Types: NodeType> HeightIndexed for BlockSummaryQueryData<Types>

    source§

    impl<Types: NodeType> HeightIndexed for LeafQueryData<Types>

    source§

    impl<Types: NodeType> HeightIndexed for PayloadQueryData<Types>

    source§

    impl<Types: NodeType> HeightIndexed for VidCommonQueryData<Types>

    \ No newline at end of file diff --git a/search-index.js b/search-index.js index a7ec792d5..5ca9e3771 100644 --- a/search-index.js +++ b/search-index.js @@ -1,4 +1,4 @@ -var searchIndex = new Map(JSON.parse('[["hotshot_query_service",{"t":"FPPPGPFPIFPIPFPPFPFIGIKIPIIIINNNNNNNNNNNNNCONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQNNNNNNNNQQQQQNNNNNNNNNNNNNNNNNNNNNNNCOCCONNNNNNNNNNONHNNNNNCNNOCCNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNCNNNNNNNNNNNOOOOOOOOKIGFFRFPFGGPFPFPFPPRFPFRIGFRPPFPFRPKKPPFIIIIRFFKFRNNNNNNNNNNNNNNNNNNOMNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNMMMMMMMNNNNNNNNNNNNNNNNONONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNOOMNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONOOONNNNNNNNNNNNNNONNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNOOOOOOOOEFEEFREKRKKNNNNNCNNNNNNNNNNNNNMNNNNNNNNNNNNNNCNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNCNNNNMNNNMNCCCNNNNNNNNNMNNNNMNHHKFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNIENNNNNNNNNHHHHHHHHHIEFFIENNNNQNCEHKKKEEKKEKEKKMMMCCMMMMMMMMMMMMMMMMMMMMMMCMCCMMMPFGPPPPPPPPPPPFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFKFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNGPPPPPPGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOKKRFKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNRRRFRKRIFKKFTKFIIFRFRFFRFRKRTRRFNNNNNNNNNNNMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQQNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNHNHNNNNNNNNNNNNNDNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNIRPFFGIPFFFPPPGFGPPPKKFFFKFPPPFPGPPGPFPGPGPGPGPFPPPPPFPPPPPPFRRPIRPPPPPPPFFPPPFGPPFFGIPFFFGPPPPPPPIRPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOMMOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOMMMMMMOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMOOOMOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKFKEENNNNNNNNNNNNNNNNNCCMMNNNNNNFFKFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFKRFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPRPRRGPRKKKFPPGRKNNONNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNMMNMNNNMMNNNNNNNNNNNMNMNNNNNMNNNNNNNNNNNNOOOOFFFFFFGPPPFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOEEPFGPPKFPFPFPFPFFPFGNNNNNNNNNONNNNOMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOONNNMNNNNNNNNNNOONNNNONOMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNOOOOOOOOOOGKPFPKKNONNNNMNNNNNNNNNNNHNNNNNNNNNNNNONNNNNNNNNNNNMNNMNNNNNNNNNNNNNNNOOFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCHHKIFISRKNNMMNNNNNNNNNMNNNNNNNNMNNNNNNNNNNIIIIIIFIIIIFFNNNOONNNNNNONNNNNNNNNNNNNONNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNOHNNNNONNNONONNNONNONNNNONNNNNNNNNNOOONNNKM","n":["ApiState","Availability","Custom","Err","Error","","ErrorSnafu","Explorer","Header","Leaf","MerklizedState","Metadata","Missing","MissingSnafu","Node","NotFound","NotFoundSnafu","Ok","Options","Payload","QueryError","QueryResult","Resolvable","SignatureKey","Status","Transaction","VidCommitment","VidCommon","VidShare","__clone_box","","","","","","","as_error","","as_error_source","","","","availability","","backtrace","","block_header","block_header_mut","block_payload","borrow","","","","","","","","borrow_mut","","","","","","","","build","","","catch_all","cause","","clone","","","","","","","clone_into","","","","","","","clone_to_uninit","","","","","","","commit","","commitment","","create_random_transaction","data_source","default","deref","","","","","","","","","deref_mut","","","","","","","","description","","deserialize","","","","","","","","","","","drop","","","","","","","","eq","equivalent","","","","explorer","extends_upgrade","fail","","","fetching","fill_block_payload","fill_block_payload_unchecked","fmt","","","","","","","","","","from","","","","","","","","","","","","","","","","","","","from_fd","from_filelike","from_into_filelike","from_into_socketlike","from_quorum_proposal","from_socketlike","genesis","get_hash","hash","height","include_migrations","init","","","","","","","","instantiate_availability_tests","instantiate_data_source_tests","instantiate_node_tests","instantiate_persistence_tests","instantiate_status_tests","internal","into","","","","","","","","into_error","","","justify_qc","layout_raw","","","","","","","","load","","merklized_state","message","metrics","node","","parent_commitment","payload_commitment","pointer_metadata","","","","","","","","port","read","run_standalone_service","serialize","","","source","","status","","","","task","testing","to_owned","","","","","","","to_string","","","try_from","","","","","","","","try_into","","","","","","","","try_resolve","","type_id","","","","","","","","types","unfill_block_payload","upgrade_certificate","view_number","vzip","","","","","","","","message","source","","","","","status","message","AvailabilityDataSource","BlockHash","BlockId","BlockInfo","BlockQueryData","BlockRange","BlockSummaryQueryData","Custom","CustomSnafu","Error","Fetch","FetchBlock","FetchBlockSnafu","FetchLeaf","FetchLeafSnafu","FetchTransaction","FetchTransactionSnafu","Hash","","InclusionProof","InconsistentLeafError","InvalidTransactionIndex","InvalidTransactionIndexSnafu","Iter","LeafHash","LeafId","LeafQueryData","LeafRange","Number","","Options","PayloadHash","PayloadQueryData","PayloadRange","Pending","QueryableHeader","QueryablePayload","Ready","Request","RequestSnafu","Timestamp","TransactionHash","TransactionInclusionProof","TransactionIndex","","TransactionQueryData","TransactionSummaryQueryData","UpdateAvailabilityData","VidCommonQueryData","VidCommonRange","__clone_box","","","","","","","","","","","","","","","","","","api_path","append","as_error","","as_error_source","","","","backtrace","","block","block_hash","","","","block_height","borrow","","","","","","","","","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","","","","","","","","","build","","","","","by_hash","","cause","","clone","","","","","","","","","","","","","","","","","","clone_into","","","","","","","","","","","","","","","","","","clone_to_uninit","","","","","","","","","","","","","","","","","","cmp","","common","compare","","context","data","default","define_api","deref","","","","","","","","","","","","","","","","","","","","deref_mut","","","","","","","","","","","","","","","","","","","","description","","deserialize","","","","","","","","","","","","","","","","","","","","","","","","","","","","drop","","","","","","","","","","","","","","","","","","","","enumerate","","","eq","","","","","","","","","equivalent","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","extensions","fail","","","","","fetch_timeout","fmt","","","","","","","","","","","","","","","","","","","","","","from","","","","","","","","","","","","","","","","","","","","","","","","","","","","","from_row","","","","genesis","","","","get_block","get_block_range","get_hash","","get_leaf","get_leaf_range","get_payload","get_payload_range","get_transaction","get_vid_common","get_vid_common_range","hash","","","","","","","header","","","height","","","","","","","index","","init","","","","","","","","","","","","","","","","","","","","internal","into","","","","","","","","","","","","","","","","","","","","into_error","","","","","","into_future","is_empty","","","is_pending","iter","layout_raw","","","","","","","","","","","","","","","","","","","","leaf","","","len","","map","message","metadata","new","","","","nth","","nth_transaction","","nth_transaction_with_proof","","num_transactions","","partial_cmp","","payload","payload_hash","","","pointer_metadata","","","","","","","","","","","","","","","","","","","","proof","","","qc","qc_leaf","resolve","resource","","","serialize","","","","","","","","size","","","source","","status","","subscribe_blocks","","subscribe_leaves","","subscribe_payloads","","subscribe_vid_common","","timestamp","to_owned","","","","","","","","","","","","","","","","","","to_string","","","","transaction","","","","transaction_by_hash","","","transaction_by_hash_with_proof","","transaction_with_proof","try_from","","","","","","","","","","","","","","","","","","","","try_into","","","","","","","","","","","","","","","","","","","","try_resolve","type_id","","","","","","","","","","","","","","","","","","","","vid_common","vid_share","vzip","","","","","","","","","","","","","","","","","","","","with_context","with_timeout","height","index","message","resource","","","source","status","AvailabilityProvider","ExtensibleDataSource","FetchingDataSource","FileSystemDataSource","MetricsDataSource","ReadOnly","SqlDataSource","Transaction","","UpdateDataSource","VersionedDataSource","__clone_box","","append","as_mut","as_ref","availability_tests","block_height","","","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","commit","connect","","count_transactions_in_range","create","","default","deref","","deref_mut","","deserialize","","drop","","fetching","fmt","","from","","fs","get_block","get_block_detail","get_block_range","get_block_summaries","get_explorer_summary","get_header_window","get_last_state_height","get_leaf","get_leaf_range","get_path","get_payload","get_payload_range","get_search_results","get_transaction","get_transaction_detail","get_transaction_summaries","get_vid_common","get_vid_common_range","handle_event","","init","","inner","inner_mut","insert_merkle_nodes","into","","layout_raw","","metrics","","new","node_tests","payload_size_in_range","persistence_tests","pointer_metadata","","populate_metrics","","read","","reset","","revert","set_last_state_height","sql","status_tests","storage","sync_status","to_owned","","try_from","","try_into","","type_id","","update","","vid_share","vzip","","write","","test_range","test_update","AvailabilityProvider","Builder","FetchingDataSource","Pruner","__clone_box","","append","as_ref","block_height","","borrow","","","borrow_mut","","","build","builder","clone","","clone_into","","clone_to_uninit","","connect","count_transactions_in_range","create","create_with_store","deref","","","deref_mut","","","deserialize","","","disable_aggregator","disable_proactive_fetching","drop","","","fmt","","from","","","get_block","get_block_detail","get_block_range","get_block_summaries","get_explorer_summary","get_header_window","get_last_state_height","get_leaf","get_leaf_range","get_path","get_payload","get_payload_range","get_search_results","get_transaction","get_transaction_detail","get_transaction_summaries","get_vid_common","get_vid_common_range","init","","","into","","","layout_raw","","","metrics","new","open","open_with_store","payload_size_in_range","pointer_metadata","","","populate_metrics","read","skip_version","sync_status","to_owned","","try_from","","","try_into","","","type_id","","","update","vid_share","vzip","","","with_active_fetch_delay","with_chunk_fetch_delay","with_major_scan_interval","with_major_scan_offset","with_max_retry_interval","with_min_retry_interval","with_minor_scan_interval","with_proactive_range_chunk_size","with_range_chunk_size","with_rate_limit","with_retry_multiplier","with_retry_randomization_factor","with_retry_timeout","write","FileSystemDataSource","Transaction","connect","create","","create_with_store","handle_event","open","open_with_store","reset","skip_version","test_counters","test_sync_status","test_timestamp_window","test_vid_monotonicity","test_vid_recovery","test_vid_shares","test_drop_tx","test_reset","test_revert","Builder","Config","Error","Migration","SqlDataSource","Transaction","connect","","create","handle_event","include_migrations","reset","testing","TmpDb","test_metrics","AggregatesStorage","AvailabilityStorage","ExplorerStorage","FailStorage","FileSystemStorage","MerklizedStateHeightStorage","MerklizedStateStorage","NoStorage","NodeStorage","SqlStorage","UpdateAggregatesStorage","UpdateAvailabilityStorage","aggregates_height","block_height","count_transactions_in_range","fail_storage","fs","get_block","get_block_detail","get_block_range","get_block_summaries","get_explorer_summary","get_header","get_header_window","get_last_state_height","get_leaf","get_leaf_range","get_path","get_payload","get_payload_range","get_search_results","get_transaction","get_transaction_detail","get_transaction_summaries","get_vid_common","get_vid_common_range","insert_block","insert_leaf","insert_vid","no_storage","payload_size_in_range","pruning","sql","sync_status","update_aggregates","vid_share","Any","FailStorage","FailableAction","GetBlock","GetBlockRange","GetHeader","GetHeaderRange","GetLeaf","GetLeafRange","GetPayload","GetPayloadRange","GetTransaction","GetVidCommon","GetVidCommonRange","Transaction","__clone_box","","aggregates_height","block_height","borrow","","","borrow_mut","","","clone","","clone_into","","clone_to_uninit","","commit","count_transactions_in_range","deref","","","deref_mut","","","deserialize","","","drop","","","eq","equivalent","","","","fail","fail_begins_read_only","fail_begins_writable","fail_commits","fail_one_begin_read_only","fail_one_begin_writable","fail_one_commit","fail_one_read","fail_one_write","fail_reads","fail_writes","fmt","","","from","","","","","from_fd","from_filelike","from_into_filelike","from_into_socketlike","from_socketlike","get_block","get_block_range","get_disk_usage","get_header","get_header_window","get_leaf","get_leaf_range","get_payload","get_payload_range","get_pruning_config","get_transaction","get_vid_common","get_vid_common_range","init","","","insert_block","insert_leaf","insert_vid","into","","","layout_raw","","","load_pruned_height","metrics","pass","pass_begins_read_only","pass_begins_writable","pass_commits","pass_reads","pass_writes","payload_size_in_range","pointer_metadata","","","prune","read","revert","set_pruning_config","sync_status","to_owned","","try_from","","","try_into","","","type_id","","","update_aggregates","vid_share","vzip","","","write","FileSystemStorage","FileSystemStorageInner","Revert","Transaction","aggregates_height","block_height","borrow","","","borrow_mut","","","commit","","count_transactions_in_range","create","create_with_store","deref","","","deref_mut","","","deserialize","","","drop","","","","fmt","","","from","","","get_block","get_block_range","get_header","get_header_window","get_leaf","get_leaf_range","get_payload","get_payload_range","get_transaction","get_vid_common","get_vid_common_range","init","","","insert_block","insert_leaf","insert_vid","into","","","layout_raw","","","metrics","open","open_with_store","payload_size_in_range","pointer_metadata","","","read","revert","","","skip_version","sync_status","try_from","","","try_into","","","type_id","","","update_aggregates","vid_share","vzip","","","write","NoStorage","Transaction","__clone_box","aggregates_height","block_height","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","commit","count_transactions_in_range","default","deref","","deref_mut","","deserialize","","drop","","fmt","from","","get_block","get_block_range","get_header","get_header_window","get_leaf","get_leaf_range","get_payload","get_payload_range","get_transaction","get_vid_common","get_vid_common_range","init","","insert_block","insert_leaf","insert_vid","into","","layout_raw","","metrics","payload_size_in_range","pointer_metadata","","read","revert","sync_status","testing","to_owned","try_from","","try_into","","type_id","","update_aggregates","vid_share","vzip","","write","DataSource","NoStorage","","","Sql","","","Storage","Transaction","__clone_box","append","block_height","","","borrow","","","borrow_mut","","","clone","clone_into","clone_to_uninit","commit","connect","count_transactions_in_range","","create","deref","","","deref_mut","","","deserialize","","","drop","","","fmt","from","","","get_block","get_block_range","get_header_window","","get_leaf","get_leaf_range","get_payload","get_payload_range","get_transaction","get_vid_common","get_vid_common_range","handle_event","init","","","insert_block","insert_leaf","insert_vid","into","","","layout_raw","","","metrics","payload_size_in_range","","pointer_metadata","","","populate_metrics","read","reset","revert","setup","sync_status","","to_owned","try_from","","","try_into","","","type_id","","","update","vid_share","","vzip","","","write","fetch_from_port","PruneStorage","PrunedHeightStorage","Pruner","PrunerCfg","PrunerConfig","__clone_box","batch_size","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","deref","deref_mut","deserialize","drop","fmt","from","get_disk_usage","get_pruning_config","init","interval","into","layout_raw","load_pruned_height","max_usage","minimum_retention","new","pointer_metadata","prune","pruning_threshold","set_pruning_config","target_retention","to_owned","try_from","try_into","type_id","validate","vzip","with_batch_size","with_interval","with_max_usage","with_minimum_retention","with_pruning_threshold","with_target_retention","ArgumentBuffer","Arguments","Column","Config","Connection","Database","","Db","Error","Executor","FixedLengthParams","Migration","NAME","Params","Pruner","Query","QueryAs","QueryBuilder","QueryResult","Read","Row","SqlStorage","Sqlite","Statement","Transaction","TransactionManager","TransactionMode","TypeInfo","URL_SCHEMES","Value","ValueRef","Write","__clone_box","","","","aggregates_height","applied","applied_on","archive","as_ref","","backtrace","begin","","","bind","","block_height","borrow","","","","","","","","","","borrow_mut","","","","","","","","","","bounds_to_where_clause","builder","chain","checksum","cleanup_test","cleanup_test_dbs","clone","","","","clone_into","","","","clone_to_uninit","","","","cmp","commit","compare","connect","","connection_timeout","context","count_transactions_in_range","create_database","database","database_exists","default","","","","","default_migrations","deref","","","","","","","","","","","","deref_mut","","","","","","","","","","","","deserialize","","","","","","","","","","display","","","downcast","downcast_mut","downcast_ref","drop","","","","","","","","","","","drop_database","eq","equivalent","","","","execute","","execute_many","","","execute_many_with_retries","execute_one","execute_one_with_retries","fetch","","fetch_all","","fetch_many","fetch_one","","fetch_optional","fmt","","","","","","","","","","","","fmt_value_debug","from","","","","","","","","","","","","","from_str","get_block","get_block_detail","get_block_range","get_block_summaries","get_disk_usage","get_explorer_summary","get_feature_gate","get_header","get_header_window","get_last_state_height","get_leaf","get_leaf_range","get_path","get_payload","get_payload_range","get_pruning_config","get_search_results","get_transaction","get_transaction_detail","get_transaction_summaries","get_vid_common","get_vid_common_range","header_where_clause","host","idle_connection_timeout","include_dir","include_migrations","init","","","","","","","","","","insert_block","insert_leaf","insert_merkle_nodes","insert_vid","into","","","","","","","","","","is","layout_raw","","","","","","","","","","load_header","load_pruned_height","max_connections","metrics","migrations","min_connections","msg","name","new","no_migrations","param_type_for_id","partial_cmp","password","payload_size_in_range","pointer_metadata","","","","","","","","","","port","prefix","prepare","","prepare_with","prune","pruner_cfg","query","","query_as","","read","reset_schema","return_type_for_id","revert","root_cause","schema","set_applied","set_last_state_height","set_pruning_config","slow_statement_threshold","snapshot","sql","sqlx","sync_status","test_context","testing","tls","to_owned","","","","to_string","","try_from","","","","","","","","","","try_into","","","","","","","","","","type_id","","","","","","","","","","unapplied","update_aggregates","upsert","user","version","vid_share","vzip","","","","","","","","","","write","TestMerkleTreeMigration","TmpDb","borrow","","borrow_mut","","config","deref","","deref_mut","","deserialize","","drop","","","fmt","from","","host","init","","","into","","layout_raw","","persistent","pointer_metadata","","port","start","stop","try_from","","try_into","","type_id","","vzip","","BalanceAmount","","Block","BlockDetail","BlockDetailResponse","BlockIdentifier","BlockNamespaceId","BlockNotFound","BlockRange","BlockSummary","BlockSummaryResponse","Btc","CryptoEnd","CryptoStart","CurrencyCode","CurrencyMismatchError","Error","Esp","Eth","Eur","ExplorerDataSource","ExplorerHeader","ExplorerHistograms","ExplorerSummary","ExplorerSummaryResponse","ExplorerTransaction","FeeAttribution","FiatCurrencyEnd","FiatCurrencyStart","Gbp","GenesisOverview","GetBlockDetail","GetBlockDetailError","","GetBlockSummaries","GetBlockSummariesError","","GetBlockSummariesRequest","GetExplorerSummary","GetExplorerSummaryError","GetSearchResults","GetSearchResultsError","GetTransactionDetail","GetTransactionDetailError","GetTransactionSummaries","GetTransactionSummariesError","","GetTransactionSummariesRequest","Hash","","Height","HeightAndOffset","IntError","InvalidCurrencyCodeError","InvalidLimit","","InvalidQuery","Jpy","Latest","","MonetaryValue","NamespaceId","","None","ProposerId","","QueryError","","","","","","RollUp","SearchResult","SearchResultResponse","TargetNotFound","","TimeError","Timestamp","TimestampConversionError","TokenEnd","TokenStart","TransactionDetail","TransactionDetailResponse","TransactionIdentifier","TransactionNamespaceId","TransactionNotFound","TransactionRange","TransactionSummariesResponse","TransactionSummary","TransactionSummaryFilter","Unimplemented","","","","","","Usd","WalletAddress","","Xxx","__clone_box","","","","","","","","","","","","","","","","add","as_error","","","","","","","","as_error_source","","","","","","","","","","","","","","","","block_confirmed","block_detail","block_heights","block_reward","block_size","block_summaries","block_time","block_transactions","blocks","","borrow","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","btc","clone","","","","","","","","","","","","","","","","clone_into","","","","","","","","","","","","","","","","clone_to_uninit","","","","","","","","","","","","","","","","cmp","compare","currency","","currency1","currency2","default","define_api","deref","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","deref_mut","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","deserialize","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","drop","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","eq","","","","","","","","","","","","","","equivalent","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","esp","eth","explorer_summary","fee_details","fee_info_account","fee_info_balance","fee_recipient","fees","filter","fmt","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","from","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","from_row","","genesis_overview","get_block_detail","get_block_summaries","get_explorer_summary","get_search_results","get_transaction_detail","get_transaction_summaries","hash","","","","height","","","","histograms","init","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","into","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","into_resettable","is_crypto","is_fiat","is_token","latest_block","latest_blocks","latest_transactions","layout_raw","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","namespace_id","namespace_ids","new","num_blocks","num_transactions","","","","","offset","","partial_cmp","pointer_metadata","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","proposer_id","","","range","reward_balance","rollups","","search_results","sequencing_fees","serialize","","","","","","","","","","","","","","","","","","","","","","","","","","","","significant_digits","size","","","source","","","","","","","","status","","","","","","","sub","target","","","time","","","","to_owned","","","","","","","","","","","","","","","","to_string","","","","","","","","","","","","","","transaction_detail","transaction_summaries","transactions","","try_from","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","try_into","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","type_id","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","usd","value","vzip","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Callback","Fetcher","LocalCallback","Provider","Request","__clone_box","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","fmt","from","init","into","layout_raw","new","pointer_metadata","provider","request","run","","spawn_fetch","to_owned","try_from","try_into","type_id","vzip","AnyProvider","NoFetching","Provider","QueryServiceProvider","TestProvider","__clone_box","","","","block","borrow","","","","borrow_mut","","","","clone","","","","clone_into","","","","clone_to_uninit","","","","default","","deref","","","","deref_mut","","","","deserialize","","","","drop","","","","fail","fetch","","","","","","","","","fmt","","","","from","","","","init","","","","into","","","","layout_raw","","","","new","","pointer_metadata","","","","to_owned","","","","try_from","","","","try_into","","","","type_id","","","","unblock","unfail","vzip","","","","with_block_provider","with_leaf_provider","with_provider","with_vid_common_provider","LeafRequest","PayloadRequest","Request","Response","VidCommonRequest","__clone_box","","","borrow","","","borrow_mut","","","clone","","","clone_into","","","clone_to_uninit","","","deref","","","deref_mut","","","deserialize","","","drop","","","eq","","","equivalent","","","","","","","","","","","","fmt","","","from","","","","get_hash","","","hash","","","init","","","into","","","layout_raw","","","pointer_metadata","","","to_owned","","","try_from","","","try_into","","","type_id","","","vzip","","","Commit","","Custom","Digest","Entry","Error","Index","Key","MerklizedState","MerklizedStateDataSource","MerklizedStateHeightPersistence","Options","Query","Request","Snapshot","T","UpdateStateData","__clone_box","","api_path","as_error","as_error_source","","backtrace","borrow","","","borrow_mut","","","cause","clone","","clone_into","","clone_to_uninit","","cmp","compare","default","define_api","deref","","","deref_mut","","","description","deserialize","","","","drop","","","eq","equivalent","","","","extensions","fmt","","","","from","","","","","","get_hash","get_last_state_height","get_path","hash","header_state_commitment_field","init","","","insert_merkle_nodes","insert_path","into","","","layout_raw","","","partial_cmp","pointer_metadata","","","serialize","set_last_state_height","source","state_type","status","to_owned","","to_string","","tree_height","try_from","","","try_into","","","type_id","","","vzip","","","message","source","","status","Counter","CounterFamily","Gauge","GaugeFamily","Histogram","HistogramFamily","MetricsError","NoSuchMetric","NoSuchSubgroup","Prometheus","PrometheusMetrics","TextFamily","__clone_box","","","","","","","","add","add_point","as_error","as_error_source","","backtrace","borrow","","","","","","","","","borrow_mut","","","","","","","","","cause","clone","","","","","","","","clone_into","","","","","","","","clone_to_uninit","","","","","","","","counter_family","create","","","","create_counter","create_gauge","create_histogram","create_text","default","deref","","","","","","","","","deref_mut","","","","","","","","","description","deserialize","","","","","","","","","drop","","","","","","","","","export","fmt","","","","","","","","","","from","","","","","","","","","","gauge_family","","get","","","","","get_counter","get_counter_family","get_gauge","get_histogram","get_histogram_family","get_subgroup","histogram_family","init","","","","","","","","","into","","","","","","","","","layout_raw","","","","","","","","","mean","pointer_metadata","","","","","","","","","sample_count","set","source","subgroup","sum","text_family","to_owned","","","","","","","","to_string","try_from","","","","","","","","","try_into","","","","","","","","","type_id","","","","","","","","","update","vzip","","","","","","","","","name","namespace","path","source","BlockHash","BlockId","Custom","CustomSnafu","Error","Hash","Height","NodeDataSource","Options","Query","QuerySnafu","QueryVid","QueryVidSnafu","QueryWindow","QueryWindowSnafu","Request","RequestSnafu","SyncStatus","Time","TimeWindowQueryData","WindowStart","__clone_box","","","","","","","","","api_path","as_error","as_error_source","","backtrace","block","block_height","borrow","","","","","","","","","","borrow_mut","","","","","","","","","","build","cause","clone","","","","","","","","","clone_into","","","","","","","","","clone_to_uninit","","","","","","","","","cmp","compare","count_transactions","","count_transactions_in_range","default","","define_api","deref","","","","","","","","","","deref_mut","","","","","","","","","","description","deserialize","","","","","","","","","","","","","drop","","","","","","","","","","end","eq","","equivalent","","","","","","","","extensions","fail","fmt","","","","","","","","","","from","","","","","","","","","","","","","","","fully_synced","get_hash","get_header_window","hash","init","","","","","","","","","","internal","into","","","","","","","","","","into_error","","","","","is_fully_synced","layout_raw","","","","","","","","","","message","missing_blocks","missing_leaves","missing_vid_common","missing_vid_shares","next","partial_cmp","payload_size","","payload_size_in_range","pointer_metadata","","","","","","","","","","prev","pruned_height","serialize","","","source","start","status","","sync_status","to_owned","","","","","","","","","to_string","try_from","","","","","","","","","","try_into","","","","","","","","","","type_id","","","","","","","","","","vid_share","vzip","","","","","","","","","","window","block","end","message","source","","","","start","status","Error","HasMetrics","Internal","Options","Request","StatusDataSource","UpdateStatusData","__clone_box","api_path","as_error","as_error_source","","backtrace","block_height","borrow","","borrow_mut","","cause","clone","clone_into","clone_to_uninit","consensus_metrics","","default","define_api","deref","","deref_mut","","description","deserialize","","","drop","","elapsed_time_since_last_decide","","extensions","fmt","","from","","","","init","","into","","layout_raw","","metrics","pointer_metadata","","populate_metrics","serialize","source","status","success_rate","","to_owned","to_string","try_from","","try_into","","type_id","","vzip","","reason","source","BackgroundTask","Task","__clone_box","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","deref","","deref_mut","","deserialize","","drop","","","fmt","","from","","init","","into","","join","layout_raw","","pointer_metadata","","spawn","","to_owned","try_from","","try_into","","type_id","","vzip","","consensus","mocks","setup_test","sleep","DataSourceLifeCycle","MockDataSource","MockNetwork","MockSqlDataSource","NUM_NODES","Storage","TestableDataSource","borrow","borrow_mut","connect","create","data_source","data_source_index","deref","deref_mut","deserialize","drop","","from","handle","handle_event","init","","init_with_config","into","layout_raw","num_nodes","pointer_metadata","proposer","reset","setup","shut_down","spawn","start","storage","submit_transaction","try_from","try_into","type_id","vzip","MockAuctionResults","MockBase","MockHeader","MockMembership","MockMerkleTree","MockNetwork","MockNodeImpl","MockPayload","MockQuorumProposal","MockStorage","MockTransaction","MockTypes","MockVersions","__clone_box","","","block_header","block_number","borrow","","","borrow_mut","","","builder_commitment","clone","","","clone_into","","","clone_to_uninit","","","cmp","","compare","","decided_upgrade_certificate","default","","delay_config","deref","","","deref_mut","","","deserialize","","","","","drop","","","eq","","equivalent","","","","","","","","fee_info_account","fee_info_balance","fmt","","","from","","","get_hash","","hash","","header_state_commitment_field","height","init","","","insert_path","into","","","iter","justify_qc","layout_raw","","","len","metadata","mock_transaction","namespace_id","namespace_ids","partial_cmp","","payload_commitment","pointer_metadata","","","proposal_certificate","proposer_id","random","reward_balance","serialize","","should_return_err","state_type","timestamp","","to_owned","","","transaction_with_proof","transactions","tree_height","try_from","","","try_into","","","type_id","","","upgrade_certificate","urls","view_number","vzip","","","HeightIndexed","height"],"q":[[0,"hotshot_query_service"],[303,"hotshot_query_service::Error"],[310,"hotshot_query_service::QueryError"],[311,"hotshot_query_service::availability"],[1010,"hotshot_query_service::availability::Error"],[1018,"hotshot_query_service::data_source"],[1133,"hotshot_query_service::data_source::availability_tests"],[1135,"hotshot_query_service::data_source::fetching"],[1251,"hotshot_query_service::data_source::fs"],[1262,"hotshot_query_service::data_source::node_tests"],[1268,"hotshot_query_service::data_source::persistence_tests"],[1271,"hotshot_query_service::data_source::sql"],[1284,"hotshot_query_service::data_source::sql::testing"],[1285,"hotshot_query_service::data_source::status_tests"],[1286,"hotshot_query_service::data_source::storage"],[1332,"hotshot_query_service::data_source::storage::fail_storage"],[1465,"hotshot_query_service::data_source::storage::fs"],[1552,"hotshot_query_service::data_source::storage::no_storage"],[1618,"hotshot_query_service::data_source::storage::no_storage::testing"],[1716,"hotshot_query_service::data_source::storage::no_storage::testing::Storage"],[1717,"hotshot_query_service::data_source::storage::pruning"],[1763,"hotshot_query_service::data_source::storage::sql"],[2134,"hotshot_query_service::data_source::storage::sql::testing"],[2175,"hotshot_query_service::explorer"],[3230,"hotshot_query_service::fetching"],[3262,"hotshot_query_service::fetching::provider"],[3372,"hotshot_query_service::fetching::request"],[3462,"hotshot_query_service::merklized_state"],[3575,"hotshot_query_service::merklized_state::Error"],[3579,"hotshot_query_service::metrics"],[3819,"hotshot_query_service::metrics::MetricsError"],[3823,"hotshot_query_service::node"],[4122,"hotshot_query_service::node::Error"],[4131,"hotshot_query_service::status"],[4201,"hotshot_query_service::status::Error"],[4203,"hotshot_query_service::task"],[4246,"hotshot_query_service::testing"],[4250,"hotshot_query_service::testing::consensus"],[4290,"hotshot_query_service::testing::mocks"],[4424,"hotshot_query_service::types"],[4426,"dyn_clone::sealed"],[4427,"core::error"],[4428,"hotshot_query_service::error"],[4429,"std::backtrace"],[4430,"core::option"],[4431,"hotshot_types::data"],[4432,"hotshot_types::traits::node_implementation"],[4433,"alloc::string"],[4434,"core::convert"],[4435,"tide_disco::status"],[4436,"core::clone"],[4437,"hotshot_types::message"],[4438,"committable"],[4439,"hotshot_query_service::resolvable"],[4440,"rand_core"],[4441,"rkyv::with"],[4442,"core::result"],[4443,"serde::de"],[4444,"hotshot_types::simple_vote"],[4445,"hotshot_types::simple_certificate"],[4446,"async_lock::rwlock"],[4447,"alloc::sync"],[4448,"utils::anytrace"],[4449,"core::fmt"],[4450,"sqlx_core::error"],[4451,"hotshot_query_service::explorer::query_data"],[4452,"std::os::fd::owned"],[4453,"io_lifetimes::portability"],[4454,"core::hash"],[4455,"core::marker"],[4456,"core::alloc::layout"],[4457,"arc_swap::access"],[4458,"core::future::future"],[4459,"alloc::boxed"],[4460,"core::pin"],[4461,"futures_core::future"],[4462,"core::ops::function"],[4463,"hotshot::types::handle"],[4464,"hotshot_query_service::availability::data_source"],[4465,"hotshot_query_service::data_source::update"],[4466,"hotshot_query_service::node::data_source"],[4467,"hotshot_query_service::status::data_source"],[4468,"vbs::version"],[4469,"serde::ser"],[4470,"core::any"],[4471,"anyhow"],[4472,"hotshot_query_service::availability::query_data"],[4473,"core::cmp"],[4474,"core::iter::traits::iterator"],[4475,"hotshot_types::vid"],[4476,"hotshot_query_service::availability::fetch"],[4477,"snafu"],[4478,"tide_disco::api"],[4479,"tide_disco::method"],[4480,"tide_disco::request"],[4481,"futures_core::stream"],[4482,"core::ops::range"],[4483,"core::time"],[4484,"hotshot_query_service::data_source::extension"],[4485,"hotshot_query_service::data_source::metrics"],[4486,"hotshot_query_service::explorer::data_source"],[4487,"hotshot_query_service::merklized_state::data_source"],[4488,"tagged_base64"],[4489,"hotshot_types::event"],[4490,"core::default"],[4491,"jf_merkle_tree::internal"],[4492,"alloc::vec"],[4493,"hotshot_types::traits::metrics"],[4494,"std::path"],[4495,"atomic_store::atomic_store"],[4496,"core::ops::deref"],[4497,"atomic_store::error"],[4498,"hotshot_query_service::data_source::storage::sql::transaction"],[4499,"time::offset_date_time"],[4500,"refinery_core::runner"],[4501,"hotshot_query_service::data_source::storage::sql::queries"],[4502,"hotshot_query_service::data_source::storage::sql::db"],[4503,"sqlx_core::encode"],[4504,"sqlx_core::types"],[4505,"sqlx_core::executor"],[4506,"sqlx_core::database"],[4507,"sqlx_sqlite::database"],[4508,"sqlx_core::type_checking"],[4509,"sqlx_postgres::options"],[4510,"core::iter::traits::collect"],[4511,"sqlx_core::from_row"],[4512,"sqlx_core::testing"],[4513,"refinery_core::error"],[4514,"hotshot_query_service::explorer::monetary_value"],[4515,"hotshot_query_service::explorer::currency"],[4516,"hotshot_query_service::explorer::traits"],[4517,"core::num::error"],[4518,"time::error::component_range"],[4519,"clap_builder::builder::resettable"],[4520,"async_lock::semaphore"],[4521,"backoff"],[4522,"hotshot_query_service::fetching::provider::testing"],[4523,"hotshot_query_service::fetching::provider::any"],[4524,"hotshot_query_service::fetching::provider::query_service"],[4525,"url"],[4526,"jf_merkle_tree"],[4527,"core::str::traits"],[4528,"ark_serialize"],[4529,"prometheus::errors"],[4530,"hotshot_query_service::node::query_data"],[4531,"tokio::runtime::task::error"],[4532,"hotshot_types::signature_key"],[4533,"hotshot_types"],[4534,"include_dir_macros"]],"i":"`j0ALf`A``2``2`0`20`1``````2````Ab3AhAjAl4Bf757755`Cf86555584326015843260143288658432615843261584326155Bn66`16954371226954371297669954377126954371266666`6543`66669954377269999999543777122222222626666`69543712`````96954371254366954371222`3``1666954371212`69797`971``695437269769543712695437120669543712`66669543712BN`BNbBNdBNfBNhBNj5BNl`````Ij`Fb```0`0`0`MnN`M``3`0```421`1`4Nn``04`````1````532K`KfKdNbKjKlKnNdNfNhL`LbLdLfLhFbOjJn?2??22?2K`Kf?>==Nn4MnN`43KdNbKjKlKnNdNfNhL`LbLdLfLhFbNnOjMnN`K`KfKdNbKjKlKnNdNfNhL`LbLdLfLhFb54321M`0>1MnN`K`KfKdNbKjKlKnNdNfNhL`LbLdLfLhFbMnN`K`KfKdNbKjKlKnNdNfNhL`LbLdLfLhFbMnN`K`KfKdNbKjKlKnNdNfNhL`LbLdLfLhFbMnN`<10Nn>Oj`1032K`KfKdNbKjKlKnNdNfNhL`LbLdLfLhFbNnOjMnN`K`KfKdNbKjKlKnNdNfNhL`LbLdLfLhFb=0NnOjMnN`K`Kf0KdNb0Kj0Kl0Kn0Nd0Nf0NhL`LbLdLfLhFb0NnOjMnN`K`KfKdNbKjKlKnNdNfNhL`LbLdLfLhFbM`0=MnN`KfNbKjKlKnNdNf888877776666555544443333222211110000OjL`LbLdLfLh5>>==K`=Kd0=<;:98Nh76543Fb0Nn:Mn00N`0066Kf6NbKj0KlKnNd0Nf;L`LbLdLfLh???;:98;:98Ij0>=0000000>=<;:87<;7K`=<;:8393NnOjMnN`4KfKdNbKjKlKnNdNfNhL`LbLdLfLhFb0NnOjMnN`K`KfKdNbKjKlKnNdNfNhL`LbLdLfLhFb654321NnM`0>101OjMnN`K`KfKdNbKjKlKnNdNfNhL`LbLdLfLhFb>?=M`=Nn3>K`KfNb?4444440=MnN`232Kl6Oj3265Kd5Kj3KnNdNfNhL`LbLdLfLhFbM`0:Kf=Nn8761Nb>Kl>=<51?=Kd667Ij0000000ABhMnN`K`957Kj7KnNdNfNhL`LbLdLfLhFb=>22==99<<00;;11BAlBBjBBdBAf1BBl22BBbBBh?>B@b>ACbADd?>=6BAhFhBAjBBf;B@jB@lB@nBA`BAbBAdElBBjBBlBBnBC`BCbBCdAOnB@`B@bAOjACbADdB@dB@fB@hBAfBAhFhBAjBAlBAnACfBB`ADfBBbBBdBBfBBhB@jB@lB@nBA`BAbBAdElBBjBBlBBnBC`BCbBCdAOjAOnB@`B@b3ACbADdB@dB@fB@hB@jB@lB@nBA`BAbBAdEl>==>ADf`?>=AOj=<;:9BAfBAhFhBAjBAlBAnACfBB`9BBbBBdBBfBBhB@jB@lB@nBA`BAbBAdElBBjBBlBBnBC`BCbBCdAOnB@`B@bAOjACbADdB@dB@fB@hBAfBAhFhBAjBAlBAnACfBB`ADfBBbBBdBBfBBhB@jB@lB@nBA`BAbBAdElBBjBBlBBnBC`BCbBCdAOn0B@`0B@b0AOj0ACbADdB@dB@fB@h0BAf0BAh0FhBAj0BAl0BAn0ACfBB`0ADfBBb0BBd0BBf0BBh0B@j0B@l0B@n0BA`0BAb0BAd0El0BBj0BBl0BBn0BC`0BCb0BCd0AOnB@`B@bAOjACbADdB@dB@fB@hBAfBAhFhBAjBAlBAnACfBB`ADfBBbBBdBBfBBhB@jB@lB@nBA`BAbBAdElBBjBBlBBnBC`BCbBCdB@bAOjACbADdB@dB@fB@hBAfBAhFhBAjBAlBAnACf====<<<<;;;;::::9999888877776666555544443333222211110000<=FhBAj<;ACfBB`ADfBBbBBdBBfBBhB@jB@lB@nBA`BAbBAdElBBjBBlBBnBC`BCbBCdAOnB@`B@bAOjACbADdB@dB@fB@hBAfBAhFhBAjBAlBAnACfBB`ADfBBbBBdBBfBBhB@jB@lB@nBA`BAbBAdElBBjBBlBBnBC`BCbBCdB@b000???AOnB@`2AOjACbADdB@dB@fB@hBAfBAhFhBAjBAlBAnACfBB`ADfBBbBBdBBfBBhB@jB@lB@nBA`BAbBAdElBBjBBlBBnBC`BCbBCdBDfBCnAOjB@dB@fBAfBAhBAlBAn10B@bAOnB@`29ACbADd:9B@h98FhBAj98ACfBB`ADfBBbBBdBBfBBhB@jB@lB@nBA`BAbBAdElBBjBBlBBnBC`BCbBCdBCnBAfBAhADf3BAnBBb6BAlAOnB@`B@bAOjB@h:9BAj68BB`8BBdBBfBBhB@jB@lB@nBA`BAbBAdElBBjBBlBBnBC`BCbBCdB@bBAfBAhBAlFhB@jB@lB@nBA`BAbBAdEl6543210AOjB@dB@fBAj>=BAjBAlBAn0ACfBB`ADfBBbBBdBBfBBhB@jB@lB@nBA`BAbBAdElBBjBBlBBnBC`BCbBCdAOnB@`B@bAOjACbADdB@dB@fB@hBAfBAhFhBAjBAlBAnACfBB`ADfBBbBBdBBfBBhB@jB@lB@nBA`BAbBAdElBBjBBlBBnBC`BCbBCdAOnB@`B@bAOjACbADdB@dB@fB@hBAfBAhFhBAjBAlBAnACfBB`ADfBBbBBdBBfBBhB@jB@lB@nBA`BAbBAdElBBjBBlBBnBC`BCbBCdAOj0AOnB@`B@b3ACbADdB@dB@fB@hBAfBAhFhBAjBAlBAnACfBB`ADfBBbBBdBBfBBhB@jB@lB@nBA`BAbBAdElBBjBBlBBnBC`BCbBCd`````BDh0000000000000000``BDnBE`222222`````BEhBEjBEfBEl1321032103210321032103032103210321032101BEd444333214321432143214321432132432143214321432143212243214444```BEb`BEnBF`BFb2102102102102102102102102102102222111100002102100210210210210210210210210210210210AClACnEn11`21````00`1`20BFf11113013011313131330`3013011301130133333033113011113ACjAD`54523AEd563463466344045464645634634634634C@`C@bC@d2```````BHj00``AEfBHfBHlBHhBHnBI`BIbBId6488888765432108765432108765432107654321076543210732107777787654321087654321088765432108765432107887654321088765432107765321777777787654321087654321087654321048765432104587477654321088765432108765432108765432105876543210C@f0C@hC@j``F```ACh0``1`1`1`1``0``0BJlBJnBK`BKbBKdBKfBJj8BKh99993In987165432:987165432:2:98765432:98765432:98765432:8800071`987165432:987165432::98877165432::987165432:387888877771298765432::99877165432::::8808987165432::987165432:654328987165432:2888878000987165432:7887::3:2098765432::987165432:987165432:987165432:0987165432:7C@lC@nCA`CAbCAd4332``Fd`0``0BKn1111J`12122222001`1212212212001221222121212AEh23BL`444224434343434CAfCAh``BLb0BLd10111101010100101010100101010110101010`````````BLh`AK`01100000000010000000011000000000`````````````ADhBLlBLjCAjBMh43243204324324324242CAl530543543554335435355553333115435435353BMj26540654BMl476503`BMf486487654448632448761128768768765CAn6987`BKl","f":"`````````````````````````````{{bd}f}000000{b{{b{h}}}}00000``{{{b{j}}}{{n{{b{l}}}}}}{{{b{A`}}}{{n{{b{l}}}}}}{{{b{{Ab{c}}}}}bAd}{{{b{Af{Ab{c}}}}}{{b{Af}}}Ad}{{{b{{Ab{c}}}}}nAd}{b{{b{c}}}{}}0000000{{{b{Af}}}{{b{Afc}}}{}}0000000{AhA`}{AjA`}{{{Al{c}}}A`{{B`{An}}}}{{BbAn}j}{{{b{j}}}{{n{{b{h}}}}}}{{{b{A`}}}{{n{{b{h}}}}}}{{{b{{Ab{c}}}}}{{Ab{c}}}{BdAd}}{{{b{j}}}j}{{{b{Ah}}}Ah}{{{b{Aj}}}Aj}{{{b{{Al{c}}}}}{{Al{c}}}Bd}{{{b{A`}}}A`}{{{b{{Bf{c}}}}}{{Bf{c}}}Bd}{{b{b{Afc}}}f{}}000000{bf}000000{{{b{{Ab{c}}}}{b{{Bh{ce}}}}}{{Bj{{Ab{c}}}}}AdBl}{{{b{{Ab{c}}}}}{{Bj{{Ab{c}}}}}Ad}{{{b{Bn}}}{{Bj{c}}}C`}{b{{Bj{c}}}{}}{{{b{{Ab{c}}}}{b{AfCb}}Cd}{}Ad}`{{}Cf}{Ch{{b{c}}}{}}0000000{{{b{{Bf{c}}}}}{{b{e}}}{}{}}{Ch{{b{Afc}}}{}}0000000{{{b{j}}}{{b{Cj}}}}{{{b{A`}}}{{b{Cj}}}}{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}{c{{Cn{{Ab{e}}}}}D`Ad}1{c{{Cn{j}}}D`}2222{c{{Cn{A`}}}D`}33{Chf}0000000{{{b{{Ab{c}}}}{b{{Ab{c}}}}}DbAd}{{b{b{c}}}Db{}}000`{{{b{{Ab{c}}}}{b{{Ab{c}}}}{b{{Dl{{Dj{{n{{Dh{c{Dd{c}}Df}}}}}}}}}}}{{Cn{fDn}}}Ad}{Ah{{Cn{cA`}}}{}}{Aj{{Cn{cA`}}}{}}{{{Al{c}}}{{Cn{eA`}}}{{B`{An}}}{}}`{{{b{Af{Ab{c}}}}Ch}{{Cn{fE`}}}Ad}{{{b{Af{Ab{c}}}}}fAd}{{{b{{Ab{c}}}}{b{AfEb}}}{{Cn{fEd}}}Ad}{{{b{{Ab{c}}}}{b{AfEb}}}{{Cn{fEd}}}{EfAd}}{{{b{j}}{b{AfEb}}}Eh}0{{{b{Ah}}{b{AfEb}}}Eh}{{{b{Aj}}{b{AfEb}}}Eh}{{{b{{Al{c}}}}{b{AfEb}}}EhEf}{{{b{A`}}{b{AfEb}}}Eh}0{{{b{{Bf{c}}}}{b{AfEb}}}EhEf}{cc{}}{{{Ej{AnBb}}}j}{Elj}{Enj}{F`j}{Fbj}{Fdj}6666{FfA`}7{FhA`}88{Fjc{}}{c{{Bf{c}}}{}}{{{Dl{c}}}{{Bf{c}}}{}}{Flc{}}0{ceFn{}}{ceG`{}}{{{b{{Gb{c}}}}}{{Ab{c}}}Ad}3{{bb}{{Ab{c}}}Ad}{{{b{c}}{b{e}}}Cd{GdGf}Gh}{{{b{{Ab{c}}}}{b{Afe}}}fAdGj}{{{b{{Ab{c}}}}}CdAd}`{{}Ch}0000000`````{cjGl}{{}c{}}0000000{{Ahc}A`{}}{{Ajc}A`{}}{{{Al{c}}e}A`{{B`{An}}}{}}{{{b{{Ab{c}}}}}{{Dh{c{Gn{c}}H`}}}Ad}{{}{{Cn{HbHd}}}}0000000{b{{Hf{c}}}{}}{b}`````{{{b{{Ab{c}}}}}{{Bj{{Ab{c}}}}}Ad}{{{b{{Ab{c}}}}}{}Ad}22222222`{{{b{{Bf{c}}}}i}{{Hl{{Hj{Hh}}}}}{HnI`}{}{}{Hn{If{{b{e}}}{{Ib{{Id{g}}}}}}}}{{Cfe{Ih{cgi}}k}{{Cn{fj}}}Ad{{Ij{c}}{Il{c}}{In{c}}J`JbHnI`}{{Jd{c}}}BlJf}{{{b{{Ab{c}}}}e}Cn{AdJh}Jj}{{{b{j}}c}CnJj}{{{b{A`}}c}CnJj}{{{b{j}}}{{n{{b{h}}}}}}{{{b{A`}}}{{n{{b{h}}}}}}`{{{b{j}}}Bb}{{{b{A`}}}Bb}```{bc{}}000000{bAn}00{c{{Cn{e}}}{}{}}0000000{{}{{Cn{c}}}{}}0000000{Bn{{Cn{cBn}}}C`}{{}{{Cn{cc}}}{}}{bJl}0000000`{{{b{Af{Ab{c}}}}}nAd}{{{b{{Ab{c}}}}}{{n{{Dh{c{Dd{c}}Df}}}}}Ad}{{{b{{Ab{c}}}}}{}Ad}{{}c{}}0000000``````````````````````````````````````````````````````````{{bd}f}00000000000000000`{{{b{Jn}}{K`{c}}}{{`{Hn{Hh{}{{Ib{{Kb{f}}}}}}}}}Ad}{b{{b{h}}}}00000{{{b{{Kd{c}}}}}{{n{{b{l}}}}}Ad}{{{b{Fb}}}{{n{{b{l}}}}}}`{{{b{{Kf{c}}}}}{{Kh{c}}}Ad}{{{b{{Kj{c}}}}}{{Kh{c}}}Ad}{{{b{{Kl{c}}}}}{{Kh{c}}}Ad}{{{b{{Kn{c}}}}}{{Kh{c}}}Ad}{{{b{{Kn{c}}}}}CdAd}{b{{b{c}}}{}}0000000000000000000{{{b{Af}}}{{b{Afc}}}{}}0000000000000000000{{{L`{c}}}Fb{{B`{An}}}}{{{Lb{c}}}Fb{{B`{An}}}}{{{Ld{c}}}Fb{{B`{An}}}}{{{Lf{ce}}}Fb{{B`{Cd}}}{{B`{Cd}}}}{{{Lh{ce}}}Fb{{B`{An}}}{{B`{Bb}}}}{{{b{{M`{}{{Lj{c}}{Ll{e}}{Ln{g}}}}}}{b{i}}{Bj{k}}}{{n{c}}}{BdEfMbMdMfJhMhHnI`}{{Ml{}{{Mj{c}}}}}{BdEfMbMdJhMhHnI`}{}{}}0{{{b{{Kd{c}}}}}{{n{{b{h}}}}}Ad}{{{b{Fb}}}{{n{{b{h}}}}}}{{{b{{Mn{c}}}}}{{Mn{c}}}Ad}{{{b{{N`{c}}}}}{{N`{c}}}Ad}{{{b{{K`{c}}}}}{{K`{c}}}{BdAd}}{{{b{{Kf{c}}}}}{{Kf{c}}}{BdAd}}{{{b{{Kd{c}}}}}{{Kd{c}}}{BdAd}}{{{b{{Nb{c}}}}}{{Nb{c}}}{BdAd}}{{{b{{Kj{c}}}}}{{Kj{c}}}{BdAd}}{{{b{{Kl{c}}}}}{{Kl{c}}}{BdAd}}{{{b{{Kn{c}}}}}{{Kn{c}}}{BdAd}}{{{b{{Nd{c}}}}}{{Nd{c}}}{BdAd}}{{{b{{Nf{c}}}}}{{Nf{c}}}{BdAd}}{{{b{Nh}}}Nh}{{{b{{L`{c}}}}}{{L`{c}}}Bd}{{{b{{Lb{c}}}}}{{Lb{c}}}Bd}{{{b{{Ld{c}}}}}{{Ld{c}}}Bd}{{{b{{Lf{ce}}}}}{{Lf{ce}}}BdBd}{{{b{{Lh{ce}}}}}{{Lh{ce}}}BdBd}{{{b{Fb}}}Fb}{{b{b{Afc}}}f{}}00000000000000000{bf}00000000000000000{{{b{{Mn{c}}}}{b{{Mn{c}}}}}NjAd}{{{b{{N`{c}}}}{b{{N`{c}}}}}NjAd}{{{b{{Kl{c}}}}}{{b{Nl}}}Ad}{{b{b{c}}}Nj{}}0{{{Nn{c}}g}{{Cn{ce}}}{}{hO`}{{Of{e}{{Ob{Od}}}}}}{{{b{{Kj{c}}}}}{{b{{Oh{c}}}}}Ad}{{}Oj}{{{b{Oj}}c}{{Cn{{Ol{eFbc}}On}}}Jf{HnI`A@`}}{Ch{{b{c}}}{}}0000000000000000000{Ch{{b{Afc}}}{}}0000000000000000000{{{b{{Kd{c}}}}}{{b{Cj}}}Ad}{{{b{Fb}}}{{b{Cj}}}}{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}0000{c{{Cn{{Kf{e}}}}}D`Ad}111{c{{Cn{{Nb{e}}}}}D`Ad}{c{{Cn{{Kj{e}}}}}D`Ad}33{c{{Cn{{Kl{e}}}}}D`Ad}{c{{Cn{{Kn{e}}}}}D`Ad}55{c{{Cn{{Nd{e}}}}}D`Ad}{c{{Cn{{Nf{e}}}}}D`Ad}7777777{c{{Cn{Fb}}}D`}8{Chf}0000000000000000000{{{b{{M`{}{{Lj{c}}{Ll{e}}{Ln{g}}}}}}{b{i}}}{{Hj{Ml}}}{BdEfMbMdMfJhMhHnI`}{{Ml{}{{Mj{c}}}}}{BdEfMbMdJhMhHnI`}{}}0{{{b{{Nb{c}}}}}{{`{{Ml{}{{Mj{{Ej{{A@b{c}}{A@d{c}}}}}}}}}}}Ad}{{{b{{Mn{c}}}}{b{{Mn{c}}}}}DbAd}{{{b{{N`{c}}}}{b{{N`{c}}}}}DbAd}{{{b{{Kf{c}}}}{b{{Kf{c}}}}}Db{MbAd}}{{{b{{Nb{c}}}}{b{{Nb{c}}}}}Db{MbAd}}{{{b{{Kj{c}}}}{b{{Kj{c}}}}}Db{MbAd}}{{{b{{Kl{c}}}}{b{{Kl{c}}}}}Db{MbAd}}{{{b{{Kn{c}}}}{b{{Kn{c}}}}}Db{MbAd}}{{{b{{Nd{c}}}}{b{{Nd{c}}}}}Db{MbAd}}{{{b{{Nf{c}}}}{b{{Nf{c}}}}}Db{MbAd}}{{b{b{c}}}Db{}}00000000000000000000000000000000000`{{{L`{c}}}{{Cn{eFb}}}{{B`{An}}}{}}{{{Lb{c}}}{{Cn{eFb}}}{{B`{An}}}{}}{{{Ld{c}}}{{Cn{eFb}}}{{B`{An}}}{}}{{{Lf{ce}}}{{Cn{gFb}}}{{B`{Cd}}}{{B`{Cd}}}{}}{{{Lh{ce}}}{{Cn{gFb}}}{{B`{An}}}{{B`{Bb}}}{}}`{{{b{{Mn{c}}}}{b{AfEb}}}EhAd}0{{{b{{N`{c}}}}{b{AfEb}}}EhAd}0{{{b{{K`{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{Kf{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{Kd{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{Kd{c}}}}{b{AfEb}}}EhAd}{{{b{{Nb{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{Kj{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{Kl{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{Kn{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{Nd{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{Nf{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{Nh}}{b{AfEb}}}Eh}{{{b{{L`{c}}}}{b{AfEb}}}EhEf}{{{b{{Lb{c}}}}{b{AfEb}}}EhEf}{{{b{{Ld{c}}}}{b{AfEb}}}EhEf}{{{b{{Lf{ce}}}}{b{AfEb}}}EhEfEf}{{{b{{Lh{ce}}}}{b{AfEb}}}EhEfEf}{{{b{Fb}}{b{AfEb}}}Eh}0{cc{}}0{Ch{{Mn{c}}}Ad}{{{A@f{c}}}{{Mn{c}}}Ad}2{Ch{{N`{c}}}Ad}{{{Kh{c}}}{{N`{c}}}Ad}44{{{Kf{c}}}{{K`{c}}}Ad}555{{{Nb{c}}}{{Kj{c}}}Ad}6666{{{Nb{c}}}{{Nd{c}}}Ad}7777777{A@hFb}{{{Ej{AnBb}}}Fb}9{b{{A@j{{Kf{c}}}}}Ad}{b{{A@j{{Nb{c}}}}}Ad}{b{{A@j{{Kj{c}}}}}Ad}{b{{A@j{{Kl{c}}}}}Ad}{{bb}{{Kf{c}}}Ad}{{bb}{{Nb{c}}}Ad}{{bb}{{Kj{c}}}Ad}{{bb}{{Kl{c}}}Ad}{{{b{{Ij{}{{A@l{c}}{A@n{g}}{AA`{i}}{AAb{k}}}}}}m}{{Hl{{Hj{Hh}}}}}{{AAd{}{{Mj{{Nn{{Kf{e}}}}}}}}AAfHn}Ad{{AAd{}{{Mj{{Nn{{Nb{e}}}}}}}}AAfHn}{{AAd{}{{Mj{{Nn{{Kj{e}}}}}}}}AAfHn}{{AAd{}{{Mj{{Nn{{Kl{e}}}}}}}}AAfHn}{{B`{{N`{e}}}}HnI`}}{{{b{{Ij{}{{A@l{c}}{A@n{g}}{AA`{i}}{AAb{k}}}}}}m}{{Hl{{Hj{Hh}}}}}{{AAd{}{{Mj{{Nn{{Kf{e}}}}}}}}AAfHn}Ad{{AAd{}{{Mj{{Nn{{Nb{e}}}}}}}}AAfHn}{{AAd{}{{Mj{{Nn{{Kj{e}}}}}}}}AAfHn}{{AAd{}{{Mj{{Nn{{Kl{e}}}}}}}}AAfHn}{{AAh{Ch}}Hn}}{{{b{c}}{b{e}}}Cd{GdGf}Gh}0{{{b{{Ij{}{{A@l{c}}{A@n{g}}{AA`{i}}{AAb{k}}}}}}m}{{Hl{{Hj{Hh}}}}}{{AAd{}{{Mj{{Nn{{Kf{e}}}}}}}}AAfHn}Ad{{AAd{}{{Mj{{Nn{{Nb{e}}}}}}}}AAfHn}{{AAd{}{{Mj{{Nn{{Kj{e}}}}}}}}AAfHn}{{AAd{}{{Mj{{Nn{{Kl{e}}}}}}}}AAfHn}{{B`{{Mn{e}}}}HnI`}}232{{{b{{Ij{}{{A@l{c}}{A@n{g}}{AA`{i}}{AAb{k}}}}}}{AAj{e}}}{{Hl{{Hj{Hh}}}}}{{AAd{}{{Mj{{Nn{{Kf{e}}}}}}}}AAfHn}Ad{{AAd{}{{Mj{{Nn{{Nb{e}}}}}}}}AAfHn}{{AAd{}{{Mj{{Nn{{Kj{e}}}}}}}}AAfHn}{{AAd{}{{Mj{{Nn{{Kl{e}}}}}}}}AAfHn}}43{{{b{{Mn{c}}}}{b{Afe}}}fAdGj}{{{b{{N`{c}}}}{b{Afe}}}fAdGj}{{{b{{Kf{c}}}}}{{A@f{c}}}Ad}{{{b{{Nb{c}}}}}{{Kh{c}}}Ad}{{{b{{Kj{c}}}}}AAlAd}{{{b{{Kn{c}}}}}{{AAj{c}}}Ad}{{{b{{Nd{c}}}}}{{Kh{c}}}Ad}{{{b{{Kf{c}}}}}{{b{{AAn{c}}}}}Ad}{{{b{{Nb{c}}}}}{{b{{AAn{c}}}}}Ad}{{{b{{Nd{c}}}}}{{b{{AAn{c}}}}}Ad}{{{b{{K`{c}}}}}CdAd}{{{b{{Kf{c}}}}}CdAd}{{{b{{Nb{c}}}}}CdAd}{{{b{{Kj{c}}}}}CdAd}{{{b{{Kl{c}}}}}CdAd}{{{b{{Nd{c}}}}}CdAd}`{{{b{{Kn{c}}}}}CdAd}`{{}Ch}0000000000000000000{cFbGl}{{}c{}}0000000000000000000{{Nhc}Fb{}}{{{L`{c}}e}Fb{{B`{An}}}{}}{{{Lb{c}}e}Fb{{B`{An}}}{}}{{{Ld{c}}e}Fb{{B`{An}}}{}}{{{Lf{ce}}g}Fb{{B`{Cd}}}{{B`{Cd}}}{}}{{{Lh{ce}}g}Fb{{B`{An}}}{{B`{Bb}}}{}}{{{Nn{c}}}eHn{}}{{{b{{M`{}{{Lj{c}}{Ll{e}}{Ln{g}}}}}}{b{i}}}Db{BdEfMbMdMfJhMhHnI`}{{Ml{}{{Mj{c}}}}}{BdEfMbMdJhMhHnI`}{}}0{{{b{{Nb{c}}}}}DbAd}{{{b{{Nn{c}}}}}Db{}}{{{b{{M`{}{{Lj{c}}{Ll{e}}{Ln{g}}}}}}{b{i}}}e{BdEfMbMdMfJhMhHnI`}{{Ml{}{{Mj{c}}}}}{BdEfMbMdJhMhHnI`}{}}{{}{{Cn{HbHd}}}}0000000000000000000{{{b{{Kf{c}}}}}{{b{{Ab{c}}}}}Ad}``{{{b{{M`{}{{Lj{c}}{Ll{e}}{Ln{g}}}}}}{b{i}}}Ch{BdEfMbMdMfJhMhHnI`}{{Ml{}{{Mj{c}}}}}{BdEfMbMdJhMhHnI`}{}}{{{b{{Nb{c}}}}}ChAd}{{{Nn{c}}g}{{Nn{e}}}{}{}{Hn{If{c}{{Ib{e}}}}}}`{{{b{{Nb{c}}}}}{{b{{AB`{c}}}}}Ad}{{{Kf{c}}{n{{Nb{c}}}}{n{{Kl{c}}}}{n{ABb}}}{{K`{c}}}Ad}{{{Ab{c}}{ABd{c}}}{{Cn{{Kf{c}}{Kd{c}}}}}Ad}{{{AAn{c}}{Oh{c}}}{{Nb{c}}}Ad}{{{AAn{c}}Nl}{{Kl{c}}}Ad}{{{b{{M`{}{{Lj{c}}{Ll{e}}{Ln{g}}}}}}{b{i}}Ch}{{n{c}}}{BdEfMbMdMfJhMhHnI`}{{Ml{}{{Mj{c}}}}}{BdEfMbMdJhMhHnI`}{}}0{{{b{{M`{}{{Lj{c}}{Ll{e}}{Ln{g}}}}}}{b{i}}Ch}{{n{k}}}{BdEfMbMdMfJhMhHnI`}{{Ml{}{{Mj{c}}}}}{BdEfMbMdJhMhHnI`}{}{}}0{{{b{{M`{}{{Lj{c}}{Ll{e}}{Ln{g}}}}}}{b{i}}Ch}{{n{{Ej{kg}}}}}{BdEfMbMdMfJhMhHnI`}{{Ml{}{{Mj{c}}}}}{BdEfMbMdJhMhHnI`}{}{}}0{{{b{{Nb{c}}}}}CdAd}{{{b{{Nd{c}}}}}CdAd}{{{b{{Mn{c}}}}{b{{Mn{c}}}}}{{n{Nj}}}Ad}{{{b{{N`{c}}}}{b{{N`{c}}}}}{{n{Nj}}}Ad}{{{b{{Nb{c}}}}}{{b{{Oh{c}}}}}Ad}{{{b{{Kf{c}}}}}AAlAd}{{{b{{Nb{c}}}}}AAlAd}{{{b{{Kl{c}}}}}AAlAd}{b}0000000000000000000{{{b{{M`{}{{Lj{c}}{Ll{e}}{Ln{g}}}}}}{b{i}}{b{c}}}{{n{g}}}{BdEfMbMdMfJhMhHnI`}{{Ml{}{{Mj{c}}}}}{BdEfMbMdJhMhHnI`}{}}0{{{b{{Kn{c}}}}}{{b{{ABf{c}}}}}Ad}{{{b{{Kf{c}}}}}{{b{{ABd{c}}}}}Ad}`{{{Nn{c}}}cHn}```{{{b{{Kf{c}}}}e}CnAdJj}{{{b{{Nb{c}}}}e}CnAdJj}{{{b{{Kj{c}}}}e}CnAdJj}{{{b{{Kl{c}}}}e}CnAdJj}{{{b{{Kn{c}}}}e}CnAdJj}{{{b{{Nd{c}}}}e}CnAdJj}{{{b{{Nf{c}}}}e}CnAdJj}{{{b{Fb}}c}CnJj}{{{b{{Nb{c}}}}}CdAd}{{{b{{Kj{c}}}}}CdAd}{{{b{{Nd{c}}}}}CdAd}{{{b{{Kd{c}}}}}{{n{{b{h}}}}}Ad}{{{b{Fb}}}{{n{{b{h}}}}}}{{{b{Fb}}}Bb}`{{{b{{Ij{}{{A@l{c}}{A@n{g}}{AA`{i}}{AAb{k}}}}}}Ch}{{Hl{{Hj{Hh}}}}}{{AAd{}{{Mj{{Nn{{Kf{e}}}}}}}}AAfHn}Ad{{AAd{}{{Mj{{Nn{{Nb{e}}}}}}}}AAfHn}{{AAd{}{{Mj{{Nn{{Kj{e}}}}}}}}AAfHn}{{AAd{}{{Mj{{Nn{{Kl{e}}}}}}}}AAfHn}}0000000{{{b{ABh}}}Cd}{bc{}}00000000000000000{bAn}000{{{b{{M`{}{{Lj{c}}{Ll{e}}{Ln{g}}}}}}{b{i}}{b{c}}}{{n{k}}}{BdEfMbMdMfJhMhHnI`}{{Ml{}{{Mj{c}}}}}{BdEfMbMdJhMhHnI`}{}{}}0{{{b{{Nb{c}}}}{b{{A@b{c}}}}}{{n{{A@d{c}}}}}Ad}{{{b{{Kn{c}}}}}{{b{{A@d{c}}}}}Ad}{{{b{{M`{}{{Lj{c}}{Ll{e}}{Ln{g}}}}}}{b{i}}{Bj{k}}}{{n{k}}}{BdEfMbMdMfJhMhHnI`}{{Ml{}{{Mj{c}}}}}{BdEfMbMdJhMhHnI`}{}{}}0{{{b{{Nb{c}}}}{Bj{{A@d{c}}}}}{{n{{A@b{c}}}}}Ad}{{{b{{M`{}{{Lj{c}}{Ll{e}}{Ln{g}}}}}}{b{i}}{Bj{k}}}{{n{{Ej{kg}}}}}{BdEfMbMdMfJhMhHnI`}{{Ml{}{{Mj{c}}}}}{BdEfMbMdJhMhHnI`}{}{}}0{{{b{{M`{}{{Lj{c}}{Ll{e}}{Ln{g}}}}}}{b{i}}{b{c}}}{{n{{Ej{kg}}}}}{BdEfMbMdMfJhMhHnI`}{{Ml{}{{Mj{c}}}}}{BdEfMbMdJhMhHnI`}{}{}}{c{{Cn{e}}}{}{}}0000000000000000000{{}{{Cn{c}}}{}}0000000000000000000{{{Nn{c}}}{{Cn{c{Nn{c}}}}}{}}{bJl}0000000000000000000``{{}c{}}0000000000000000000{{{Nn{c}}i}{{Cn{ce}}}{}{hO`}{{Of{e}{{Ob{Od}}}}}{{If{}{{Ib{g}}}}}}{{{Nn{c}}ABj}{{n{c}}}Hn}```````````````````{{bd}f}0{{{b{{ABl{eg}}}}{K`{c}}}{{Kb{f}}}Ad{{Jn{c}}HnI`}{HnI`}}{{{b{Af{ABl{ce}}}}}{{b{Afe}}}{}{}}{{{b{{ABl{ce}}}}}{{b{e}}}{}{}}`{{{b{{ABl{ce}}}}}{{Hl{{Hj{Hh}}}}}{J`HnI`}{HnI`}}{{{b{{ABl{eg}}}}}{{Hl{{Hj{Hh}}}}}Ad{{In{c}}HnI`}{HnI`}}{{{b{ABn}}}{{Hl{{Hj{Hh}}}}}}{b{{b{c}}}{}}0{{{b{Af}}}{{b{Afc}}}{}}0{{{b{{ABl{ce}}}}}{{ABl{ce}}}BdBd}{{{b{ABn}}}ABn}{{b{b{Afc}}}f{}}0{bf}0{AC`{{`{{Hh{}{{Ib{{Kb{f}}}}}}Hn}}}}{{{b{c}}}{{Hl{{Hj{Hh}}}}}{}}0{{{b{{ABl{eg}}}}i}{{Hl{{Hj{Hh}}}}}Ad{{In{c}}HnI`}{HnI`}{{AAh{Ch}}Hn}}{Ch{{Hl{{Hj{Hh}}}}}}0{{}ABn}{Ch{{b{c}}}{}}0{Ch{{b{Afc}}}{}}0{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}0{Chf}0`{{{b{{ABl{ce}}}}{b{AfEb}}}EhEfEf}{{{b{ABn}}{b{AfEb}}}Eh}{cc{}}0`{{{b{{ABl{eg}}}}i}{{Hl{{Hj{Hh}}}}}Ad{{Ij{c}}HnI`}{HnI`}{{B`{{N`{c}}}}HnI`}}{{{b{{ABl{eg}}}}{ACb{c}}}{{Hl{{Hj{Hh}}}}}Ad{{ACd{c}}I`}{HnI`}}{{{b{{ABl{eg}}}}i}{{Hl{{Hj{Hh}}}}}Ad{{Ij{c}}HnI`}{HnI`}{{AAh{Ch}}Hn}}{{{b{{ABl{eg}}}}{ACf{c}}}{{Hl{{Hj{Hh}}}}}Ad{{ACd{c}}I`}{HnI`}}{{{b{{ABl{eg}}}}}{{Hl{{Hj{Hh}}}}}Ad{{ACd{c}}I`}{HnI`}}{{{b{{ABl{eg}}}}iCd}{{Hl{{Hj{Hh}}}}}Ad{{In{c}}HnI`}{HnI`}{{B`{{ACh{c}}}}HnI`}}{{{b{{ABl{ce}}}}}{{Hl{{Hj{Hh}}}}}{ACjI`}{HnI`}}{{{b{{ABl{eg}}}}i}{{Hl{{Hj{Hh}}}}}Ad{{Ij{c}}HnI`}{HnI`}{{B`{{Mn{c}}}}HnI`}}5{{{b{{ABl{gi}}}}{ACl{ce}}}{{Hl{{Hj{Hh}}}}}Ad{{ACn{c}}}{{AD`{ce}}I`}{HnI`}}86{{{b{{ABl{eg}}}}ADb}{{Hl{{Hj{Hh}}}}}Ad{{ACd{c}}I`}{HnI`}}{{{b{{ABl{eg}}}}{AAj{c}}}{{Hl{{Hj{Hh}}}}}Ad{{Ij{c}}HnI`}{HnI`}}{{{b{{ABl{eg}}}}{ADd{c}}}{{Hl{{Hj{Hh}}}}}Ad{{ACd{c}}I`}{HnI`}}{{{b{{ABl{eg}}}}{ADf{c}}}{{Hl{{Hj{Hh}}}}}Ad{{ACd{c}}I`}{HnI`}}<:{{{b{{ABl{ce}}}}{b{{ADj{ADh}}}}}{{Hl{{Hj{Hh}}}}}{ADl{Il{ADh}}}{BdADnHnI`}}{{{b{ABn}}{b{{ADj{ADh}}}}}{{Hl{{Hj{Hh}}}}}}{{}Ch}0{{{b{{ABl{ce}}}}}{{b{c}}}{}{}}{{{b{Af{ABl{ce}}}}}{{b{Afc}}}{}{}}{{{b{Af{ABl{gi}}}}AE`{AEb{Ch}}Cd}{{Hl{{Hj{Hh}}}}}Ad{{ACn{c}}}{{AEd{ce}}HnI`}{HnI`}}{{}c{}}0{{}{{Cn{HbHd}}}}0{{{b{{ABl{ce}}}}}{{b{AEf}}}AEh{}}{{{b{ABn}}}{{b{AEf}}}}{{ce}{{ABl{ce}}}{}{}}`{{{b{{ABl{eg}}}}i}{{Hl{{Hj{Hh}}}}}Ad{{In{c}}HnI`}{HnI`}{{AAh{Ch}}Hn}}`{b}0{b{{Hj{AEj}}}}0{{{b{{Jb{}{{AEl{c}}{AEn{e}}}}}}}{{`{{Hh{}{{Ib{{Kb{e}}}}}}Hn}}}AC`AC`}{{{b{{ABl{ce}}}}}{{Kb{g}}}{JbHn}{HnI`}{}}{{{b{c}}}{{Hl{{Hj{Hh}}}}}{}}0{AC`{{`{HhHn}}}}{{{b{Af{ABl{gi}}}}Ch}{{Hl{{Hj{Hh}}}}}Ad{{ACn{c}}}{{AEd{ce}}HnI`}{HnI`}}```{{{b{{ABl{eg}}}}}{{Hl{{Hj{Hh}}}}}Ad{{In{c}}HnI`}{HnI`}}{bc{}}0{c{{Cn{e}}}{}{}}0{{}{{Cn{c}}}{}}0{bJl}0{{{b{Il}}{b{{ADj{c}}}}}{{Hl{{Hj{Hh}}}}}Ad}{{b{b{{ADj{c}}}}}{{Hl{{Hj{Hh}}}}}{}}{{{b{{ABl{eg}}}}i}{{Hl{{Hj{Hh}}}}}Ad{{In{c}}HnI`}{HnI`}{{B`{{N`{c}}}}HnI`}}{{}c{}}0{{{b{{Jb{}{{AEl{c}}{AEn{e}}}}}}}{{`{{Hh{}{{Ib{{Kb{c}}}}}}Hn}}}AC`AC`}={{}f}0````{{bd}f}0{{{b{{AF`{ceg}}}}{K`{c}}}{{Kb{f}}}AdJb{{AFb{c}}}}{{{b{{AF`{ceg}}}}}{{b{e}}}Ad{}{}}{{{b{{AF`{ceg}}}}}{{Hl{{Hj{Hh}}}}}AdJb{HnI`}}{{{b{{AF`{ceg}}}}}{{Hl{{Hj{Hh}}}}}Ad{JbAEhHnI`}{HnI`}}{b{{b{c}}}{}}00{{{b{Af}}}{{b{Afc}}}{}}00{{{AFd{ceg}}}{{Kb{{AF`{ceg}}}}}Ad{AFfJbAEh}{{AFb{c}}}}{{cg}{{AFd{ecg}}}{JbAFfAEh}Ad{{AFb{e}}}}{{{b{{AF`{ceg}}}}}{{AF`{ceg}}}Ad{}{}}{{{b{{AFh{ceg}}}}}{{AFh{ceg}}}Ad{}{}}{{b{b{Afc}}}f{}}0{bf}0{{AFje}{{Cn{{AFl{ce}}AFn}}}Ad{{AFb{c}}}}{{{b{{AF`{ceg}}}}i}{{Hl{{Hj{Hh}}}}}AdJb{HnI`}{{AAh{Ch}}Hn}}{{{b{AG`}}e}{{Kb{{AF`{c{AGb{c}}e}}}}}Ad{{AFb{c}}}}{{{b{AfAGd}}e}{{Kb{{AF`{c{AGb{c}}e}}}}}Ad{{AFb{c}}}}{Ch{{b{c}}}{}}00{Ch{{b{Afc}}}{}}00{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}00{{{AFd{ceg}}}{{AFd{ceg}}}{}{}{}}0{Chf}00{{{b{{AF`{ceg}}}}{b{AfEb}}}EhAdEfEf}{{{b{{AFh{ceg}}}}{b{AfEb}}}EhAdEfEf}{cc{}}00{{{b{{AF`{ceg}}}}i}{{Hl{{Hj{Hh}}}}}AdJb{{AFb{c}}}{{B`{{N`{c}}}}HnI`}}{{{b{{AF`{ceg}}}}{ACb{c}}}{{Hl{{Hj{Hh}}}}}AdJb{HnI`}}{{{b{{AF`{ceg}}}}i}{{Hl{{Hj{Hh}}}}}AdJb{{AFb{c}}}{{AAh{Ch}}Hn}}{{{b{{AF`{ceg}}}}{ACf{c}}}{{Hl{{Hj{Hh}}}}}AdJb{HnI`}}{{{b{{AF`{ceg}}}}}{{Hl{{Hj{Hh}}}}}AdJb{HnI`}}{{{b{{AF`{ceg}}}}iCd}{{Hl{{Hj{Hh}}}}}AdJb{HnI`}{{B`{{ACh{c}}}}HnI`}}1{{{b{{AF`{ceg}}}}i}{{Hl{{Hj{Hh}}}}}AdJb{{AFb{c}}}{{B`{{Mn{c}}}}HnI`}}4{{{b{{AF`{ceg}}}}{ACl{ci}}}{{Hl{{Hj{Hh}}}}}AdJb{HnI`}{{ACn{c}}}}75{{{b{{AF`{ceg}}}}ADb}{{Hl{{Hj{Hh}}}}}AdJb{HnI`}}{{{b{{AF`{ceg}}}}{AAj{c}}}{{Hl{{Hj{Hh}}}}}AdJb{{AFb{c}}}}{{{b{{AF`{ceg}}}}{ADd{c}}}{{Hl{{Hj{Hh}}}}}AdJb{HnI`}}{{{b{{AF`{ceg}}}}{ADf{c}}}{{Hl{{Hj{Hh}}}}}AdJb{HnI`}};9{{}Ch}00{{}c{}}00{{}{{Cn{HbHd}}}}00{{{b{{AF`{ceg}}}}}{{b{AEf}}}AdAEh{}}{{ce}{{AFd{gce}}}{}{}{}}{{{b{AG`}}e}{{Kb{{AF`{c{AGb{c}}e}}}}}Ad{{AFb{c}}}}{{{b{AfAGd}}e}{{Kb{{AF`{c{AGb{c}}e}}}}}Ad{{AFb{c}}}}{{{b{{AF`{ceg}}}}i}{{Hl{{Hj{Hh}}}}}AdJb{HnI`}{{AAh{Ch}}Hn}}{b}00{b{{Hj{AEj}}}}{{{b{{AF`{ceg}}}}}{{Kb{i}}}Ad{JbHnI`}{HnI`}{}}{{{b{{AF`{c{AGb{c}}e}}}}}{{Kb{f}}}Ad{{AFb{c}}}}{{{b{{AF`{ceg}}}}}{{Hl{{Hj{Hh}}}}}AdJb{HnI`}}{bc{}}0{c{{Cn{e}}}{}{}}00{{}{{Cn{c}}}{}}00{bJl}00{{b{b{{ADj{c}}}}}{{Hl{{Hj{Hh}}}}}{}}{{{b{{AF`{ceg}}}}i}{{Hl{{Hj{Hh}}}}}AdJb{HnI`}{{B`{{N`{c}}}}HnI`}}{{}c{}}00{{{AFd{ceg}}ABj}{{AFd{ceg}}}{}{}{}}0{{{AFd{ceg}}Ch}{{AFd{ceg}}}{}{}{}}0111000{{{AFd{ceg}}AGf}{{AFd{ceg}}}{}{}{}}02<``{{{b{c}}}{{Hl{{Hj{Hh}}}}}{}}{Ch{{Hl{{Hj{Hh}}}}}}{{{b{AG`}}e}{{Kb{{AGh{ce}}}}}Ad{{AFb{c}}}}{{{b{AfAGd}}e}{{Kb{{AGh{ce}}}}}Ad{{AFb{c}}}}{{{b{{AGh{ADhc}}}}{b{{ADj{ADh}}}}}{{Hl{{Hj{Hh}}}}}{{AFb{ADh}}ADn}}214{{{b{{AGh{ce}}}}}{{Kb{f}}}Ad{{AFb{c}}}}{{}f}00000000``````6{{AFje}{{Cn{{AFl{ce}}AFn}}}Ad{{AFb{c}}}}6{{{b{{AGj{ADhc}}}}{b{{ADj{ADh}}}}}{{Hl{{Hj{Hh}}}}}{{AFb{ADh}}ADn}}`8``2````````````{{{b{AfAGl}}}{{`{{Hh{}{{Ib{{Kb{Ch}}}}}}Hn}}}}{{{b{AfAGn}}}{{Hl{{Hj{Hh}}}}}}{{{b{AfAGn}}c}{{Hl{{Hj{Hh}}}}}{{AAh{Ch}}Hn}}``{{{b{AfAH`}}{N`{c}}}{{Hl{{Hj{Hh}}}}}Ad}{{{b{AfAHb}}{ACb{c}}}{{Hl{{Hj{Hh}}}}}Ad}{{{b{AfAH`}}c}{{Hl{{Hj{Hh}}}}}{{AAh{Ch}}Hn}}{{{b{AfAHb}}{ACf{c}}}{{Hl{{Hj{Hh}}}}}Ad}{{{b{AfAHb}}}{{Hl{{Hj{Hh}}}}}}4{{{b{AfAGn}}eCd}{{Hl{{Hj{Hh}}}}}Ad{{B`{{ACh{c}}}}HnI`}}{{{b{AfAHd}}}{{Hl{{Hj{Hh}}}}}}{{{b{AfAH`}}{Mn{c}}}{{Hl{{Hj{Hh}}}}}Ad}5{{{b{AfAHf}}{ACl{ce}}}{{Hl{{Hj{Hh}}}}}Ad{{ACn{c}}}}86{{{b{AfAHb}}ADb}{{Hl{{Hj{Hh}}}}}}{{{b{AfAH`}}{AAj{c}}}{{Hl{{Hj{Hh}}}}}Ad}{{{b{AfAHb}}{ADd{c}}}{{Hl{{Hj{Hh}}}}}Ad}{{{b{AfAHb}}{ADf{c}}}{{Hl{{Hj{Hh}}}}}Ad}<:{{{b{AfAHh}}{Nb{c}}}{{`{Hn{Hh{}{{Ib{{Kb{f}}}}}}}}}Ad}{{{b{AfAHh}}{Kf{c}}}{{`{Hn{Hh{}{{Ib{{Kb{f}}}}}}}}}Ad}{{{b{AfAHh}}{Kl{c}}{n{ABb}}}{{`{Hn{Hh{}{{Ib{{Kb{f}}}}}}}}}Ad}`{{{b{AfAGn}}c}{{Hl{{Hj{Hh}}}}}{{AAh{Ch}}Hn}}``{{{b{AfAGn}}}{{Hl{{Hj{Hh}}}}}}{{{b{AfAHj}}{b{{Nb{c}}}}}{{`{{Hh{}{{Ib{{Kb{f}}}}}}Hn}}}Ad}{{{b{AfAGn}}e}{{Hl{{Hj{Hh}}}}}Ad{{B`{{N`{c}}}}HnI`}}```````````````{{bd}f}0{{{b{Af{AHl{c}}}}}{{Kb{Ch}}}{AGlHnI`}}{{{b{Af{AHl{e}}}}}{{Hl{{Hj{Hh}}}}}Ad{{AGn{c}}HnI`}}{b{{b{c}}}{}}00{{{b{Af}}}{{b{Afc}}}{}}00{{{b{AHn}}}AHn}{{{b{{AI`{c}}}}}{{AI`{c}}}Bd}{{b{b{Afc}}}f{}}0{bf}0{{{AHl{c}}}{{Kb{f}}}AC`}{{{b{Af{AHl{e}}}}g}{{Hl{{Hj{Hh}}}}}Ad{{AGn{c}}HnI`}{{AAh{Ch}}Hn}}{Ch{{b{c}}}{}}00{Ch{{b{Afc}}}{}}00{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}00{Chf}00{{{b{AHn}}{b{AHn}}}Db}{{b{b{c}}}Db{}}000{{{b{{AI`{c}}}}AHn}f{}}0000000000{{{b{AHn}}{b{AfEb}}}Eh}{{{b{{AI`{c}}}}{b{AfEb}}}EhEf}{{{b{{AHl{c}}}}{b{AfEb}}}EhEf}{cc{}}0{Fjc{}}{c{{AI`{c}}}{}}2{Flc{}}0{ceFn{}}{ceG`{}}2{{{b{Af{AHl{e}}}}{N`{c}}}{{Hl{{Hj{Hh}}}}}Ad{{AH`{c}}}}{{{b{Af{AHl{e}}}}g}{{Hl{{Hj{Hh}}}}}Ad{{AH`{c}}}{{AAh{Ch}}Hn}}{{{b{{AI`{c}}}}}{{Hl{{Hj{Hh}}}}}{AFfI`}}2{{{b{Af{AHl{e}}}}gCd}{{Hl{{Hj{Hh}}}}}Ad{{AGn{c}}HnI`}{{B`{{ACh{c}}}}HnI`}}{{{b{Af{AHl{e}}}}{Mn{c}}}{{Hl{{Hj{Hh}}}}}Ad{{AH`{c}}}}343{{{b{{AI`{c}}}}}{{n{AIb}}}AId}{{{b{Af{AHl{e}}}}{AAj{c}}}{{Hl{{Hj{Hh}}}}}Ad{{AH`{c}}}}65{{}Ch}00{{{b{Af{AHl{e}}}}{Nb{c}}}{{Kb{f}}}Ad{{AHh{c}}HnI`}}{{{b{Af{AHl{e}}}}{Kf{c}}}{{Kb{f}}}Ad{{AHh{c}}HnI`}}{{{b{Af{AHl{e}}}}{Kl{c}}{n{ABb}}}{{Kb{f}}}Ad{{AHh{c}}HnI`}}{{}c{}}00{{}{{Cn{HbHd}}}}00{{{b{Af{AHl{c}}}}}{{Hl{{Hj{Hh}}}}}{AIfHnI`}}{{{b{{AI`{c}}}}}{{b{AEf}}}AEh}{{{b{{AI`{c}}}}}f{}}00000{{{b{Af{AHl{e}}}}g}{{Hl{{Hj{Hh}}}}}Ad{{AGn{c}}HnI`}{{AAh{Ch}}Hn}}{b}00{{{b{{AI`{c}}}}{b{Afe}}}{{Hl{{Hj{Hh}}}}}{AFfI`}{}}{{{b{{AI`{c}}}}}{{Kb{e}}}Jb{}}{{{AHl{c}}}{{`{HhHn}}}AC`}{{{b{Af{AI`{c}}}}AIb}fAId}{{{b{Af{AHl{e}}}}}{{Hl{{Hj{Hh}}}}}Ad{{AGn{c}}HnI`}}{bc{}}0{c{{Cn{e}}}{}{}}00{{}{{Cn{c}}}{}}00{bJl}00{{{b{Af{AHl{e}}}}{b{{Nb{c}}}}}{{Kb{f}}}Ad{{AHj{c}}HnI`}}{{{b{Af{AHl{e}}}}g}{{Hl{{Hj{Hh}}}}}Ad{{AGn{c}}HnI`}{{B`{{N`{c}}}}HnI`}}{{}c{}}00:````{{{b{Af{AIh{c}}}}}{{Kb{Ch}}}{AIjHn}}{{{b{Af{AIh{e}}}}}{{Hl{{Hj{Hh}}}}}Ad{AIj{AJ`{}{{AIl{{AIn{c}}}}}}Hn}}{b{{b{c}}}{}}00{{{b{Af}}}{{b{Afc}}}{}}00{{{AIh{{AJb{{AIn{c}}}}}}}{{Kb{f}}}Ad}{{{AIh{{AJd{{AIn{c}}}}}}}{{Kb{f}}}Ad}{{{b{Af{AIh{e}}}}g}{{Hl{{Hj{Hh}}}}}Ad{AIj{AJ`{}{{AIl{{AIn{c}}}}}}Hn}{{AAh{Ch}}Hn}}{{{b{AG`}}}{{Cn{{AGb{c}}AJf}}}Ad}{{{b{AfAGd}}}{{Cn{{AGb{c}}AJf}}}Ad}{Ch{{b{c}}}{}}00{Ch{{b{Afc}}}{}}00{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}00{Chf}00{{{b{Af{AIh{c}}}}}fAIj}{{{b{{AIn{c}}}}{b{AfEb}}}EhAd}{{{b{{AGb{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{AIh{c}}}}{b{AfEb}}}Eh{EfAIj}}{cc{}}00{{{b{Af{AIh{e}}}}{N`{c}}}{{Hl{{Hj{Hh}}}}}Ad{AIj{AJ`{}{{AIl{{AIn{c}}}}}}HnI`}}{{{b{Af{AIh{e}}}}g}{{Hl{{Hj{Hh}}}}}Ad{AIj{AJ`{}{{AIl{{AIn{c}}}}}}HnI`}{{AAh{Ch}}Hn}}1{{{b{Af{AIh{e}}}}gCd}{{Hl{{Hj{Hh}}}}}Ad{AIj{AJ`{}{{AIl{{AIn{c}}}}}}Hn}{{B`{{ACh{c}}}}HnI`}}{{{b{Af{AIh{e}}}}{Mn{c}}}{{Hl{{Hj{Hh}}}}}Ad{AIj{AJ`{}{{AIl{{AIn{c}}}}}}HnI`}}232{{{b{Af{AIh{e}}}}{AAj{c}}}{{Hl{{Hj{Hh}}}}}Ad{AIj{AJ`{}{{AIl{{AIn{c}}}}}}HnI`}}43{{}Ch}00{{{b{Af{AIh{{AJb{{AIn{c}}}}}}}}{Nb{c}}}{{Kb{f}}}Ad}{{{b{Af{AIh{{AJb{{AIn{c}}}}}}}}{Kf{c}}}{{Kb{f}}}Ad}{{{b{Af{AIh{{AJb{{AIn{c}}}}}}}}{Kl{c}}{n{ABb}}}{{Kb{f}}}Ad}{{}c{}}00{{}{{Cn{HbHd}}}}00{{{b{{AGb{c}}}}}{{b{AEf}}}Ad}{{{b{AG`}}}{{Cn{{AGb{c}}AJf}}}Ad}{{{b{AfAGd}}}{{Cn{{AGb{c}}AJf}}}Ad}{{{b{Af{AIh{e}}}}g}{{Hl{{Hj{Hh}}}}}Ad{AIj{AJ`{}{{AIl{{AIn{c}}}}}}Hn}{{AAh{Ch}}Hn}}{b}00{{{b{{AGb{c}}}}}{{Kb{e}}}Ad{}}{{{b{AfAIj}}}f}{{{AIh{{AJd{{AIn{c}}}}}}}{{`{HhHn}}}Ad}{{{AIh{{AJb{{AIn{c}}}}}}}{{`{HhHn}}}Ad}{{{b{{AGb{c}}}}}{{Cn{fAJf}}}Ad}{{{b{Af{AIh{e}}}}}{{Hl{{Hj{Hh}}}}}Ad{AIj{AJ`{}{{AIl{{AIn{c}}}}}}Hn}}{c{{Cn{e}}}{}{}}00{{}{{Cn{c}}}{}}00{bJl}00{{{b{Af{AIh{c}}}}{b{{Nb{e}}}}}{{Kb{f}}}{AIjHn}Ad}{{{b{Af{AIh{e}}}}g}{{Hl{{Hj{Hh}}}}}Ad{AIj{AJ`{}{{AIl{{AIn{c}}}}}}Hn}{{B`{{N`{c}}}}HnI`}}{{}c{}}00;``{{bd}f}{{{b{AfAJh}}}{{Kb{Ch}}}}{{{b{AfAJh}}}{{Hl{{Hj{Hh}}}}}}{b{{b{c}}}{}}0{{{b{Af}}}{{b{Afc}}}{}}0{{{b{AJj}}}AJj}{{b{b{Afc}}}f{}}{bf}{AJh{{Kb{f}}}}{{{b{AfAJh}}c}{{Hl{{Hj{Hh}}}}}{{AAh{Ch}}Hn}}{{}AJj}{Ch{{b{c}}}{}}0{Ch{{b{Afc}}}{}}0{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}0{Chf}0{{{b{AJj}}{b{AfEb}}}Eh}{cc{}}0{{{b{AfAJh}}{N`{c}}}{{Hl{{Hj{Hh}}}}}Ad}80{{{b{AfAJh}}eCd}{{Hl{{Hj{Hh}}}}}Ad{{B`{{ACh{c}}}}HnI`}}{{{b{AfAJh}}{Mn{c}}}{{Hl{{Hj{Hh}}}}}Ad}:2:{{{b{AfAJh}}{AAj{c}}}{{Hl{{Hj{Hh}}}}}Ad}3;{{}Ch}0{{{b{AfAJh}}{Nb{c}}}{{Kb{f}}}Ad}{{{b{AfAJh}}{Kf{c}}}{{Kb{f}}}Ad}{{{b{AfAJh}}{Kl{c}}{n{ABb}}}{{Kb{f}}}Ad}{{}c{}}0{{}{{Cn{HbHd}}}}0{{{b{AJj}}}{{b{AEf}}}}{{{b{AfAJh}}c}{{Hl{{Hj{Hh}}}}}{{AAh{Ch}}Hn}}{b}0{{{b{AJj}}}{{Kb{c}}}{}}{AJh{{`{HhHn}}}}{{{b{AfAJh}}}{{Hl{{Hj{Hh}}}}}}`{bc{}}{c{{Cn{e}}}{}{}}0{{}{{Cn{c}}}{}}0{bJl}0{{{b{AfAJh}}{b{{Nb{c}}}}}{{Kb{f}}}Ad}{{{b{AfAJh}}e}{{Hl{{Hj{Hh}}}}}Ad{{B`{{N`{c}}}}HnI`}}==8`````````{{bd}f}{{{b{AJl}}{K`{ADh}}}{{Kb{f}}}}{{{b{Af{AJn{c}}}}}{{Hl{{Hj{Hh}}}}}{{AGn{ADh}}Hn}}{{{b{AJl}}}{{Hl{{Hj{Hh}}}}}}0{b{{b{c}}}{}}00{{{b{Af}}}{{b{Afc}}}{}}00{{{b{AJl}}}AJl}{{b{b{Afc}}}f{}}{bf}{{{AJn{c}}}{{Kb{f}}}AC`}{{{b{c}}}{{Hl{{Hj{Hh}}}}}{}}{{{b{Af{AJn{c}}}}e}{{Hl{{Hj{Hh}}}}}{{AGn{ADh}}Hn}{{AAh{Ch}}Hn}}{{{b{AJl}}c}{{Hl{{Hj{Hh}}}}}{{AAh{Ch}}Hn}}{Ch{{Hl{{Hj{Hh}}}}}}{Ch{{b{c}}}{}}00{Ch{{b{Afc}}}{}}00{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}00{Chf}00{{{b{AJl}}{b{AfEb}}}Eh}{cc{}}00{{{b{AJl}}c}{{Hl{{Hj{Hh}}}}}{{B`{{N`{ADh}}}}HnI`}}8{{{b{Af{AJn{c}}}}eCd}{{Hl{{Hj{Hh}}}}}{{AGn{ADh}}Hn}{{B`{{ACh{ADh}}}}HnI`}}{{{b{AJl}}cCd}{{Hl{{Hj{Hh}}}}}{{B`{{ACh{ADh}}}}HnI`}}{{{b{AJl}}c}{{Hl{{Hj{Hh}}}}}{{B`{{Mn{ADh}}}}HnI`}};3;{{{b{AJl}}{AAj{ADh}}}{{Hl{{Hj{Hh}}}}}}4<{{{b{AJl}}{b{{ADj{ADh}}}}}{{Hl{{Hj{Hh}}}}}}{{}Ch}00{{{b{Af{AJn{c}}}}{Nb{ADh}}}{{Kb{f}}}{{AHh{ADh}}HnI`}}{{{b{Af{AJn{c}}}}{Kf{ADh}}}{{Kb{f}}}{{AHh{ADh}}HnI`}}{{{b{Af{AJn{c}}}}{Kl{ADh}}{n{ABb}}}{{Kb{f}}}{{AHh{ADh}}HnI`}}{{}c{}}00{{}{{Cn{HbHd}}}}00{{{b{AJl}}}{{b{AEf}}}}{{{b{Af{AJn{c}}}}e}{{Hl{{Hj{Hh}}}}}{{AGn{ADh}}Hn}{{AAh{Ch}}Hn}}{{{b{AJl}}c}{{Hl{{Hj{Hh}}}}}{{AAh{Ch}}Hn}}{b}00{b{{Hj{AEj}}}}{{{b{AJl}}}{{Kb{c}}}{}}{{{b{c}}}{{Hl{{Hj{Hh}}}}}{}}{{{AJn{c}}}{{`{HhHn}}}AC`}{{{b{Af{AK`{AJl}}}}}{{Hl{{Hj{Hh}}}}}}{{{b{Af{AJn{c}}}}}{{Hl{{Hj{Hh}}}}}{{AGn{ADh}}Hn}}{{{b{AJl}}}{{Hl{{Hj{Hh}}}}}}{bc{}}{c{{Cn{e}}}{}{}}00{{}{{Cn{c}}}{}}00{bJl}00{{b{b{{ADj{c}}}}}{{Hl{{Hj{Hh}}}}}{}}{{{b{Af{AJn{c}}}}e}{{Hl{{Hj{Hh}}}}}{{AGn{ADh}}Hn}{{B`{{N`{ADh}}}}HnI`}}{{{b{AJl}}c}{{Hl{{Hj{Hh}}}}}{{B`{{N`{ADh}}}}HnI`}}{{}c{}}00=``````{{bd}f}{{{b{AIb}}}Cd}{b{{b{c}}}{}}{{{b{Af}}}{{b{Afc}}}{}}{{{b{AIb}}}AIb}{{b{b{Afc}}}f{}}{bf}{{}AIb}{Ch{{b{c}}}{}}{Ch{{b{Afc}}}{}}{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}{Chf}{{{b{AIb}}{b{AfEb}}}Eh}{cc{}}{{{b{{AFf{}{{AKb{c}}}}}}}{{Hl{{Hj{Hh}}}}}{ADnHn}}{{{b{AId}}}{{n{AIb}}}}{{}Ch}{{{b{AIb}}}ABj}{{}c{}}{{}{{Cn{HbHd}}}}{{{b{AfAIf}}}{{Hl{{Hj{Hh}}}}}}{{{b{AIb}}}AKd}4>{b}{{{b{{AFf{}{{AKb{c}}}}}}{b{Afc}}}{{Hl{{Hj{Hh}}}}}{ADnHn}}{{{b{AIb}}}{{n{Cd}}}}{{{b{AfAId}}AIb}f}8{bc{}}{c{{Cn{e}}}{}{}}{{}{{Cn{c}}}{}}{bJl}{{{b{AIb}}}{{Kb{f}}}}<{{AIbCd}AIb}{{AIbABj}AIb}{{AIbAKd}AIb}121````````````````````````````````{{bd}f}000{{{b{Af{AKf{c}}}}}{{Kb{Ch}}}AKh}{{AKjAnAKlCd}AKn}{{{b{AKn}}}{{n{{b{AKl}}}}}}{AFjAFj}{{{b{AFn}}}{{b{h}}}}0{{{b{AFn}}}{{b{l}}}}{{{b{Af}}}{{`{{Hh{}{{Ib{{Kb{f}}}}}}Hn}}}}{{{b{Af}}}{{Kb{f}}}}0{{AL`ALb}ALb}{{{b{AfALd}}c}{{ALf{An}}}{{ALj{ALh}}{ALl{ALh}}}}{{{b{Af{AKf{c}}}}}{{Hl{{Hj{Hh}}}}}AKh}{b{{b{c}}}{}}000000000{{{b{Af}}}{{b{Afc}}}{}}000000000{{{b{AfALd}}c{b{Cj}}}{{ALf{An}}}{{AAh{Ch}}}}{{AFje}{{Cn{{AFl{ce}}AFn}}}Ad{{AFb{c}}}}{{{b{AFn}}}ALn}{{{b{AKn}}}Cd}{{{b{Cj}}}{{Hl{{Hj{Hh}}}}}}{{}{{Hl{{Hj{Hh}}}}}}{{{b{AKn}}}AKn}{{{b{AM`}}}AM`}{{{b{AMb}}}AMb}{{{b{AFj}}}AFj}{{b{b{Afc}}}f{}}000{bf}000{{{b{AKn}}{b{AKn}}}Nj}{{{AKf{c}}}{{Kb{f}}}AKh}{{b{b{c}}}Nj{}}{{AFje}{{Cn{{AGj{ce}}AFn}}}Ad{{AFb{c}}}}{AFj{{Cn{AMdAFn}}}}{{AFjABj}AFj}{{AFnc}AFn{GlHnI`}}{{{b{Af{AKf{c}}}}e}{{Hl{{Hj{Hh}}}}}AKh{{AAh{Ch}}Hn}}?{{AFj{b{Cj}}}AFj}{{{b{Cj}}}{{Hl{{Hj{Hh}}}}}}{{}ALd}{{}AM`}{{}AMb}{{}AFj}{{}AMf}{{}{{AEb{AKn}}}}{{{b{AFn}}}b}{Ch{{b{c}}}{}}000000{{{b{{AKf{c}}}}}{{b{e}}}{}{}}111{Ch{{b{Afc}}}{}}{{{b{AfAFn}}}{{b{Af}}}}11111{{{b{Af{AKf{c}}}}}{{b{Afe}}}{}{}}2222{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}000000000{{}{{b{Cj}}}}00{AFn{{Cn{cAFn}}}{GlEfHnI`}}{{{b{AfAFn}}}{{n{{b{Afc}}}}}{GlEfHnI`}}{{{b{AFn}}}{{n{{b{c}}}}}{GlEfHnI`}}{Chf}{{{b{AfAFn}}}f}111111111{{{b{Cj}}}{{Hl{{Hj{Hh}}}}}}{{{b{AKn}}{b{AKn}}}Db}{{b{b{c}}}Db{}}000{{{AMj{}{{AMh{c}}}}e}{{Hl{{Hj{Hh}}}}}AMl{{AMn{c}}}}0{{{AMj{}{{AMh{c}}}}e}{{Hl{{Hj{AAd}}}}}AMl{{AMn{c}}}}0{{{b{Af{AKf{AM`}}}}c}{{Kb{Cd}}}{{AMn{ALh}}}}{{{b{Af{AKf{AM`}}}}{b{Cj}}c}{{Kb{Cd}}}{AL`Bd}}{{{b{Af{AKf{AM`}}}}c}{{Kb{f}}}{{AMn{ALh}}}}{{{b{Af{AKf{AM`}}}}{b{Cj}}c}{{Kb{f}}}{AL`Bd}}44554555{{{b{AFn}}{b{AfEb}}}{{Cn{fEd}}}}0{{{b{AKn}}{b{AfEb}}}{{Cn{fEd}}}}0{{{b{AN`}}{b{AfEb}}}{{Cn{fEd}}}}{{{b{ALd}}{b{AfEb}}}Eh}{{{b{AM`}}{b{AfEb}}}Eh}{{{b{AMb}}{b{AfEb}}}Eh}{{{b{{AKf{c}}}}{b{AfEb}}}EhEf}{{{b{AFj}}{b{AfEb}}}Eh}{{{b{AMd}}{b{AfEb}}}Eh}{{{b{AMf}}{b{AfEb}}}Eh}{b{{ANb{AN`}}}}{Fjc{}}{cAFn{hHnI`}}{cc{}}0000000{ANdAFj}11{{{b{Cj}}}{{Cn{AFjc}}}{}}{{{b{Af{AKf{c}}}}{N`{e}}}{{Hl{{Hj{Hh}}}}}AKhAd}{{{b{Af{AKf{c}}}}{ACb{e}}}{{Hl{{Hj{Hh}}}}}AKhAd}{{{b{Af{AKf{c}}}}e}{{Hl{{Hj{Hh}}}}}AKh{{AAh{Ch}}Hn}}{{{b{Af{AKf{c}}}}{ACf{e}}}{{Hl{{Hj{Hh}}}}}AKhAd}{{{b{AMd}}}{{Hl{{Hj{Hh}}}}}}{{{b{Af{AKf{c}}}}}{{Hl{{Hj{Hh}}}}}AKh}{b{{n{{b{Cj}}}}}}6{{{b{Af{AKf{c}}}}gCd}{{Hl{{Hj{Hh}}}}}AKhAd{{B`{{ACh{e}}}}HnI`}}2{{{b{Af{AKf{c}}}}{Mn{e}}}{{Hl{{Hj{Hh}}}}}AKhAd}6{{{b{Af{AKf{c}}}}{ACl{eg}}}{{Hl{{Hj{Hh}}}}}AKhAd{{ACn{e}}}}97{{{b{AMd}}}{{n{AIb}}}}{{{b{Af{AKf{c}}}}ADb}{{Hl{{Hj{Hh}}}}}AKh}{{{b{Af{AKf{c}}}}{AAj{e}}}{{Hl{{Hj{Hh}}}}}AKhAd}{{{b{Af{AKf{c}}}}{ADd{e}}}{{Hl{{Hj{Hh}}}}}AKhAd}{{{b{Af{AKf{c}}}}{ADf{e}}}{{Hl{{Hj{Hh}}}}}AKhAd}><{{{b{AfALd}}{N`{c}}}{{ALf{An}}}Ad}{{AFjc}AFj{{B`{An}}}}{{AFjABj}AFj}``{{}Ch}000000000{{{b{Af{AKf{AM`}}}}{Nb{c}}}{{Kb{f}}}Ad}{{{b{Af{AKf{AM`}}}}{Kf{c}}}{{Kb{f}}}Ad}{{{b{Af{AKf{AM`}}}}AE`{AEb{Ch}}Cd}{{Hl{{Hj{Hh}}}}}}{{{b{Af{AKf{AM`}}}}{Kl{c}}{n{ABb}}}{{Kb{f}}}Ad}{{}c{}}000000000{{{b{AFn}}}Db}{{}{{Cn{HbHd}}}}000000000{{{b{Af{AKf{c}}}}g}{{ALf{{AAn{e}}}}}{}Ad{{B`{{N`{e}}}}Hn}}{{{b{Af{AKf{c}}}}}{{Hl{{Hj{Hh}}}}}AKh}{{AFjANf}AFj}{{{b{AMd}}}{{b{AEf}}}}{{AFjc}AFj{{ANh{}{{Mj{AKn}}}}}}2{cAFn{GlEfHnI`}}{{{b{AKn}}}{{b{Cj}}}}{cAFn{hHnI`}}{AFjAFj}{b{{n{{b{Cj}}}}}}{{{b{AKn}}{b{AKn}}}{{n{Nj}}}}{{AFj{b{Cj}}}AFj}{{{b{Af{AKf{c}}}}e}{{Hl{{Hj{Hh}}}}}AKh{{AAh{Ch}}Hn}}{b}000000000{{AFjAKd}AFj}{{{b{AKn}}}{{b{ANj}}}}{{{AMj{}{{AMh{c}}}}{b{Cj}}}{{Hl{{Hj{Hh}}}}}AMl}0{{{AMj{}{{AMh{c}}}}{b{Cj}}{b{ANl}}}{{Hl{{Hj{Hh}}}}}AMl}{{{b{AMd}}{b{AfAMf}}}{{Hl{{Hj{Hh}}}}}}{{AFjAIb}{{Cn{AFjAFn}}}}{{{b{Cj}}}ALb}{{ALd{b{Cj}}}ALb}{{{b{Cj}}}{{ANn{c}}}AO`}{{ALd{b{Cj}}}{{ANn{c}}}AO`}{{{b{AMd}}}{{Kb{{AKf{AMb}}}}}}{AFjAFj}{b{{n{{b{Cj}}}}}}{{{AKf{c}}}{{`{HhHn}}}AKh}{{{b{AFn}}}{{b{h}}}}{{AFjc}AFj{{B`{An}}}}{{{b{AfAKn}}}f}{{{b{Af{AKf{AM`}}}}Ch}{{Hl{{Hj{Hh}}}}}}{{{b{AfAMd}}AIb}f}{{AFjABj}AFj}{{{b{Af}}}{{Hl{{Hj{Hh}}}}}}{{{b{AKn}}}{{n{{b{Cj}}}}}}`{{{b{Af{AKf{c}}}}}{{Hl{{Hj{Hh}}}}}AKh}{{{b{AOb}}}{{Hl{{Hj{Hh}}}}}}`<{bc{}}000{bAn}0{c{{Cn{e}}}{}{}}000000000{{}{{Cn{c}}}{}}000000000{bJl}000000000{{{b{Cj}}{b{Cj}}}{{Cn{AKnAOd}}}}{{{b{Af{AKf{AM`}}}}{b{{Nb{c}}}}}{{Kb{f}}}Ad}{{{b{Af{AKf{AM`}}}}{b{Cj}}{AOf{{b{Cj}}}}ce}{{Kb{f}}}{{ANh{}{{Mj{{b{Cj}}}}}}}ANh}{{AFj{b{Cj}}}AFj}{{{b{AKn}}}ANf}{{{b{Af{AKf{c}}}}g}{{Hl{{Hj{Hh}}}}}AKhAd{{B`{{N`{e}}}}HnI`}}{{}c{}}000000000{{{b{AMd}}}{{Kb{{AKf{AM`}}}}}}``{b{{b{c}}}{}}0{{{b{Af}}}{{b{Afc}}}{}}0{{{b{AOh}}}AFj}{Ch{{b{c}}}{}}0{Ch{{b{Afc}}}{}}0{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}0{Chf}{{{b{AfAOh}}}f}1{{{b{AOh}}{b{AfEb}}}Eh}{cc{}}0{{{b{AOh}}}An}{{}Ch}{{}AOh}1>>{{}{{Cn{HbHd}}}}01{b}0{{{b{AOh}}}AKd}88{c{{Cn{e}}}{}{}}0{{}{{Cn{c}}}{}}0{bJl}0{{}c{}}0`````````````````````````````````````````````````````````````````````````````````````````````````````{{bd}f}000000000000000{{AOjAOj}c{}}{b{{b{h}}}}00000000000000000000000``````````{b{{b{c}}}{}}0000000000000000000000000000000000{{{b{Af}}}{{b{Afc}}}{}}0000000000000000000000000000000000{AOlAOj}{{{b{AOn}}}AOn}{{{b{B@`}}}B@`}{{{b{B@b}}}B@b}{{{b{AOj}}}AOj}{{{b{{ACb{c}}}}}{{ACb{c}}}{BdAd}}{{{b{{ADd{c}}}}}{{ADd{c}}}{BdAd}}{{{b{{B@d{c}}}}}{{B@d{c}}}{BdAd}}{{{b{{B@f{c}}}}}{{B@f{c}}}{BdAd}}{{{b{B@h}}}B@h}{{{b{B@j}}}B@j}{{{b{B@l}}}B@l}{{{b{B@n}}}B@n}{{{b{BA`}}}BA`}{{{b{BAb}}}BAb}{{{b{BAd}}}BAd}{{{b{El}}}El}{{b{b{Afc}}}f{}}000000000000000{bf}000000000000000{{{b{B@b}}{b{B@b}}}Nj}{{b{b{c}}}Nj{}}````{{}{{ADf{c}}}Ad}{c{{Cn{{Ol{eElc}}On}}}Jf{HnI`A@`}}{Ch{{b{c}}}{}}0000000000000000000000000000000000{Ch{{b{Afc}}}{}}0000000000000000000000000000000000{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}{c{{Cn{AOn}}}D`}{c{{Cn{B@`}}}D`}22{c{{Cn{B@b}}}D`}3{c{{Cn{AOj}}}D`}4444{c{{Cn{B@h}}}D`}5{c{{Cn{{BAf{e}}}}}D`Ad}6{c{{Cn{{BAh{e}}}}}D`Ad}777{c{{Cn{BAj}}}D`}{c{{Cn{{BAl{e}}}}}D`Ad}99{c{{Cn{{BAn{e}}}}}D`Ad}:{c{{Cn{BB`}}}D`};;{c{{Cn{BBb}}}D`}<<{c{{Cn{BBd}}}D`}{c{{Cn{{BBf{e}}}}}D`Ad}>>{c{{Cn{{BBh{e}}}}}D`Ad}?{c{{Cn{B@j}}}D`}{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}{c{{Cn{B@l}}}D`}1{c{{Cn{B@n}}}D`}{c{{Cn{BA`}}}D`}33{c{{Cn{BAb}}}D`}{c{{Cn{BAd}}}D`}5{c{{Cn{El}}}D`}6{c{{Cn{{BBj{e}}}}}D`Ad}7{c{{Cn{{BBl{e}}}}}D`Ad}88{c{{Cn{{BBn{e}}}}}D`Ad}9{c{{Cn{{BC`{e}}}}}D`Ad}{c{{Cn{{BCb{e}}}}}D`Ad};{c{{Cn{{BCd{e}}}}}D`Ad}<{Chf}0000000000000000000000000000000000{{{b{B@b}}{b{B@b}}}Db}{{{b{AOj}}{b{AOj}}}Db}{{{b{{ACb{c}}}}{b{{ACb{c}}}}}Db{MbAd}}{{{b{{ADd{c}}}}{b{{ADd{c}}}}}Db{MbAd}}{{{b{{B@d{c}}}}{b{{B@d{c}}}}}Db{MbAd}}{{{b{{B@f{c}}}}{b{{B@f{c}}}}}Db{MbAd}}{{{b{B@h}}{b{B@h}}}Db}{{{b{{BAf{c}}}}{b{{BAf{c}}}}}Db{MbAd}}{{{b{{BAh{c}}}}{b{{BAh{c}}}}}Db{MbAd}}{{{b{Fh}}{b{Fh}}}Db}{{{b{BAj}}{b{BAj}}}Db}{{{b{{BAl{c}}}}{b{{BAl{c}}}}}Db{MbAd}}{{{b{{BAn{c}}}}{b{{BAn{c}}}}}Db{MbAd}}{{{b{{ACf{c}}}}{b{{ACf{c}}}}}Db{MbAd}}{{b{b{c}}}Db{}}0000000000000000000000000000000000000000000000000000000{AOlAOj}0``{{{b{{BCn{}{{BCf{c}}{BCh{e}}{BCj{g}}{BCl{i}}}}}}}e{BdEfJhMhHnI`MbMd}{BdEfJhMhHnI`MbMd}{BdEfJhMhHnI`MbMd}{BdEfJhMhHnI`MbMd}}{{{b{{BCn{}{{BCf{c}}{BCh{e}}{BCj{g}}{BCl{i}}}}}}}c{BdEfJhMhHnI`MbMd}{BdEfJhMhHnI`MbMd}{BdEfJhMhHnI`MbMd}{BdEfJhMhHnI`MbMd}}```{{{b{AOn}}{b{AfEb}}}Eh}0{{{b{B@`}}{b{AfEb}}}Eh}0{{{b{B@b}}{b{AfEb}}}Eh}0{{{b{AOj}}{b{AfEb}}}Eh}0{{{b{{ACb{c}}}}{b{AfEb}}}EhAd}{{{b{{ACb{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{ADd{c}}}}{b{AfEb}}}EhAd}{{{b{{ADd{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{B@d{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{B@f{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{B@h}}{b{AfEb}}}Eh}{{{b{{BAf{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{BAh{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{Fh}}{b{AfEb}}}Eh}0{{{b{BAj}}{b{AfEb}}}Eh}{{{b{{BAl{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{BAn{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{ACf{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{BB`}}{b{AfEb}}}Eh}{{{b{{ADf{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{BBb}}{b{AfEb}}}Eh}{{{b{BBd}}{b{AfEb}}}Eh}{{{b{{BBf{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{BBh{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{B@j}}{b{AfEb}}}Eh}0{{{b{B@l}}{b{AfEb}}}Eh}0{{{b{B@n}}{b{AfEb}}}Eh}0{{{b{BA`}}{b{AfEb}}}Eh}0{{{b{BAb}}{b{AfEb}}}Eh}0{{{b{BAd}}{b{AfEb}}}Eh}0{{{b{El}}{b{AfEb}}}Eh}0{{{b{{BBj{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{BBl{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{BBn{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{BC`{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{BCb{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{BCd{c}}}}{b{AfEb}}}Eh{EfAd}}{cc{}}00{AOlAOj}11111111{BD`Fh}{BDbFh}33333333333{FfB@j}4{A`B@j}{FfB@l}6{A`B@l}{FfB@n}{A`B@n}{FhB@n}:{FfBA`};{A`BA`}<{B@lBAb}{BA`BAb}{A`BAb}{FfBAb}{B@jBAb}{FfBAd}{cc{}}{A`BAd}1{{{BAf{c}}}{{BBj{c}}}Ad}2{{{AEb{{BAh{c}}}}}{{BBl{c}}}Ad}33{{{AEb{{BAn{c}}}}}{{BC`{c}}}Ad}4{{{BBf{c}}}{{BCb{c}}}Ad}55{{{BBh{c}}}{{BCd{c}}}Ad}{b{{A@j{{BAf{c}}}}}Ad}{b{{A@j{{BAh{c}}}}}Ad}`{{{b{ACd}}{ACb{c}}}{{Hl{{Hj{Hh}}}}}Ad}{{{b{ACd}}{ACf{c}}}{{Hl{{Hj{Hh}}}}}Ad}{{{b{ACd}}}{{Hl{{Hj{Hh}}}}}}{{{b{ACd}}ADb}{{Hl{{Hj{Hh}}}}}}{{{b{ACd}}{ADd{c}}}{{Hl{{Hj{Hh}}}}}Ad}{{{b{ACd}}{ADf{c}}}{{Hl{{Hj{Hh}}}}}Ad}`````````{{}Ch}0000000000000000000000000000000000{{}c{}}0000000000000000000000000000000000{{}{{BDd{An}}}}{{{b{B@b}}}Db}00```{{}{{Cn{HbHd}}}}0000000000000000000000000000000000{{{b{{BDf{}{{BCl{c}}}}}}}c{BdEfJhMhHnI`MbMd}}{{{b{{BCn{}{{BCf{c}}{BCh{e}}{BCj{g}}{BCl{i}}}}}}}{{AEb{i}}}{BdEfJhMhHnI`MbMd}{BdEfJhMhHnI`MbMd}{BdEfJhMhHnI`MbMd}{BdEfJhMhHnI`MbMd}}{{B@bAOl}AOj}````````{{{b{B@b}}{b{B@b}}}{{n{Nj}}}}{b}0000000000000000000000000000000000{{{b{{BCn{}{{BCf{c}}{BCh{e}}{BCj{g}}{BCl{i}}}}}}}g{BdEfJhMhHnI`MbMd}{BdEfJhMhHnI`MbMd}{BdEfJhMhHnI`MbMd}{BdEfJhMhHnI`MbMd}}```{{{b{{BCn{}{{BCf{c}}{BCh{e}}{BCj{g}}{BCl{i}}}}}}}c{BdEfJhMhHnI`MbMd}{BdEfJhMhHnI`MbMd}{BdEfJhMhHnI`MbMd}{BdEfJhMhHnI`MbMd}}````{{{b{AOn}}c}CnJj}{{{b{B@`}}c}CnJj}{{{b{B@b}}c}CnJj}{{{b{AOj}}c}CnJj}{{{b{B@h}}c}CnJj}{{{b{{BAf{c}}}}e}CnAdJj}{{{b{{BAh{c}}}}e}CnAdJj}{{{b{BAj}}c}CnJj}{{{b{{BAl{c}}}}e}CnAdJj}{{{b{{BAn{c}}}}e}CnAdJj}{{{b{BB`}}c}CnJj}{{{b{BBb}}c}CnJj}{{{b{BBd}}c}CnJj}{{{b{{BBf{c}}}}e}CnAdJj}{{{b{{BBh{c}}}}e}CnAdJj}{{{b{B@j}}c}CnJj}{{{b{B@l}}c}CnJj}{{{b{B@n}}c}CnJj}{{{b{BA`}}c}CnJj}{{{b{BAb}}c}CnJj}{{{b{BAd}}c}CnJj}{{{b{El}}c}CnJj}{{{b{{BBj{c}}}}e}CnAdJj}{{{b{{BBl{c}}}}e}CnAdJj}{{{b{{BBn{c}}}}e}CnAdJj}{{{b{{BC`{c}}}}e}CnAdJj}{{{b{{BCb{c}}}}e}CnAdJj}{{{b{{BCd{c}}}}e}CnAdJj}{{{b{B@b}}}Ch}```{{{b{Fh}}}{{n{{b{h}}}}}}{{{b{B@j}}}{{n{{b{h}}}}}}{{{b{B@l}}}{{n{{b{h}}}}}}{{{b{B@n}}}{{n{{b{h}}}}}}{{{b{BA`}}}{{n{{b{h}}}}}}{{{b{BAb}}}{{n{{b{h}}}}}}{{{b{BAd}}}{{n{{b{h}}}}}}{{{b{El}}}{{n{{b{h}}}}}}{{{b{B@j}}}Bb}{{{b{B@l}}}Bb}{{{b{B@n}}}Bb}{{{b{BA`}}}Bb}{{{b{BAb}}}Bb}{{{b{BAd}}}Bb}{{{b{El}}}Bb}{{AOjAOj}c{}}```````{bc{}}000000000000000{bAn}0000000000000````{c{{Cn{e}}}{}{}}0{{{b{Cj}}}{{Cn{B@bc}}}{}}1111111{{{Nb{c}}}{{Cn{{BAf{c}}e}}}Ad{}}2{{{Nb{c}}}{{Cn{{BAh{c}}e}}}Ad{}}3333{{{Ej{{b{{Nb{c}}}}Ch}}}{{Cn{{BAn{c}}e}}}Ad{}}444444444444444444444{{}{{Cn{c}}}{}}0000000000000000000000000000000000{bJl}0000000000000000000000000000000000{AOlAOj}`{{}c{}}0000000000000000000000000000000000`````{{bd}f}{b{{b{c}}}{}}{{{b{Af}}}{{b{Afc}}}{}}{{{b{{BDh{ce}}}}}{{BDh{ce}}}{}{}}{{b{b{Afc}}}f{}}{bf}{Ch{{b{c}}}{}}{Ch{{b{Afc}}}{}}{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}{Chf}{{{b{{BDh{ce}}}}{b{AfEb}}}Eh{}{}}{cc{}}{{}Ch}={{}{{Cn{HbHd}}}}{{{Dl{BDj}}BDl}{{BDh{ce}}}{}{}}{b}``{{BDnc}f{}}{{BE`c}{{`{{Hh{}{{Ib{f}}}}Hn}}}{}}{{{b{{BDh{eg}}}}eik}f{}{{BEb{c}}}BE`{{BEd{ce}}}{{ANh{}{{Mj{g}}}}Hn}}{bc{}}{c{{Cn{e}}}{}{}}{{}{{Cn{c}}}{}}{bJl}{{}c{}}`````{{bd}f}000{{{b{{BEf{c}}}}}f{}}{b{{b{c}}}{}}000{{{b{Af}}}{{b{Afc}}}{}}000{{{b{{BEh{c}}}}}{{BEh{c}}}Ad}{{{b{{BEj{c}}}}}{{BEj{c}}}{BdJf}}{{{b{{BEf{c}}}}}{{BEf{c}}}{}}{{{b{BEl}}}BEl}{{b{b{Afc}}}f{}}000{bf}000{{}{{BEh{c}}}Ad}{{}BEl}{Ch{{b{c}}}{}}000{Ch{{b{Afc}}}{}}000{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}000{Chf}000>{{{b{BEd}}e}{{Hl{{Hj{Hh}}}}}{}{{BEb{c}}}}{{{b{{BEh{c}}}}BEn}{{Hl{{Hj{Hh}}}}}Ad}{{{b{{BEh{c}}}}BF`}{{Hl{{Hj{Hh}}}}}Ad}{{{b{{BEh{c}}}}BFb}{{Hl{{Hj{Hh}}}}}Ad}{{{b{{BEj{c}}}}BFb}{{Hl{{Hj{Hh}}}}}Jf}{{{b{{BEj{c}}}}BEn}{{Hl{{Hj{Hh}}}}}Jf}{{{b{{BEj{c}}}}BF`}{{Hl{{Hj{Hh}}}}}Jf}{{{b{{BEf{g}}}}e}{{Hl{{Hj{Hh}}}}}Ad{{BEb{c}}}{{BEd{ce}}I`}}{{{b{BEl}}e}{{Hl{{Hj{Hh}}}}}{}{Hn{BEb{c}}}}{{{b{{BEh{c}}}}{b{AfEb}}}EhAd}{{{b{{BEj{c}}}}{b{AfEb}}}Eh{EfJf}}{{{b{{BEf{c}}}}{b{AfEb}}}EhEf}{{{b{BEl}}{b{AfEb}}}Eh}{cc{}}000{{}Ch}000{{}c{}}000{{}{{Cn{HbHd}}}}000{{BFdc}{{BEj{c}}}Jf}{c{{BEf{c}}}{}}{b}000{bc{}}000{c{{Cn{e}}}{}{}}000{{}{{Cn{c}}}{}}000{bJl}000{{{b{{BEf{c}}}}}f{}}09999{{{BEh{c}}e}{{BEh{c}}}Ad{{BEd{cBEn}}Ef}}{{{BEh{c}}e}{{BEh{c}}}Ad{{BEd{cBFb}}Ef}}{{{BEh{c}}e}{{BEh{c}}}Ad{{AFb{c}}Ef}}{{{BEh{c}}e}{{BEh{c}}}Ad{{BEd{cBF`}}Ef}}`````{{bd}f}00{b{{b{c}}}{}}00{{{b{Af}}}{{b{Afc}}}{}}00{{{b{BEn}}}BEn}{{{b{BF`}}}BF`}{{{b{BFb}}}BFb}{{b{b{Afc}}}f{}}00{bf}00{Ch{{b{c}}}{}}00{Ch{{b{Afc}}}{}}00{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}00{Chf}00{{{b{BEn}}{b{BEn}}}Db}{{{b{BF`}}{b{BF`}}}Db}{{{b{BFb}}{b{BFb}}}Db}{{b{b{c}}}Db{}}00000000000{{{b{BEn}}{b{AfEb}}}Eh}{{{b{BF`}}{b{AfEb}}}Eh}{{{b{BFb}}{b{AfEb}}}Eh}{cc{}}0{ChBFb}1{{{b{c}}{b{e}}}Cd{GdGf}Gh}00{{{b{BEn}}{b{Afc}}}fGj}{{{b{BF`}}{b{Afc}}}fGj}{{{b{BFb}}{b{Afc}}}fGj}{{}Ch}00{{}c{}}00{{}{{Cn{HbHd}}}}00{b}00{bc{}}00{c{{Cn{e}}}{}{}}00{{}{{Cn{c}}}{}}00{bJl}00666`````````````````{{bd}f}0`{b{{b{h}}}}00{{{b{En}}}{{n{{b{l}}}}}}{b{{b{c}}}{}}00{{{b{Af}}}{{b{Afc}}}{}}00{{{b{En}}}{{n{{b{h}}}}}}{{{b{{ACl{ce}}}}}{{ACl{ce}}}Ad{{ACn{c}}}}{{{b{En}}}En}{{b{b{Afc}}}f{}}0{bf}0{{{b{{ACl{ce}}}}{b{{ACl{ce}}}}}NjAd{{ACn{c}}}}{{b{b{c}}}Nj{}}{{}BFf}{{{b{BFf}}}{{Cn{{Ol{cEne}}On}}}{HnI`A@`}Jf}{Ch{{b{c}}}{}}00{Ch{{b{Afc}}}{}}00{{{b{En}}}{{b{Cj}}}}{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}00{c{{Cn{En}}}D`}{Chf}00{{{b{{ACl{ce}}}}{b{{ACl{ce}}}}}DbAd{{ACn{c}}}}{{b{b{c}}}Db{}}000`{{{b{{ACl{ce}}}}{b{AfEb}}}EhAd{{ACn{c}}}}0{{{b{En}}{b{AfEb}}}Eh}0{cc{}}0{A`En}1{{{Ej{AnBb}}}En}{A@hEn}{{{b{c}}{b{e}}}Cd{GdGf}Gh}{{{b{ACj}}}{{Hl{{Hj{Hh}}}}}}{{{b{AD`}}{ACl{ce}}}{{Hl{{Hj{Hh}}}}}Ad{{ACn{c}}}}{{{b{{ACl{ce}}}}{b{Afg}}}fAd{{ACn{c}}}Gj}{{}{{b{Cj}}}}{{}Ch}00{{{b{AfAEd}}AE`{AEb{Ch}}Cd}{{Hl{{Hj{Hh}}}}}}{{{b{Af{ACn{}{{BFh{c}}{BFj{e}}{BFl{g}}{BFn{i}}{BG`{k}}}}}}c{b{{AE`{ecg}}}}}{{Kb{f}}}{BGbHnI`JhBGdBGfMhGlBGhBGj}{BGlHnI`JhMhBGhBGj}{BGnHn}{{BH`{g}}Hn{BHb{{b{ADb}}}}GlEf{B`{ADb}}}{{BHd{ecg}}}}{{}c{}}00{{}{{Cn{HbHd}}}}00{{{b{{ACl{ce}}}}{b{{ACl{ce}}}}}{{n{Nj}}}Ad{{ACn{c}}}}{b}00{{{b{En}}c}CnJj}{{{b{AfAEd}}Ch}{{Hl{{Hj{Hh}}}}}}{{{b{En}}}{{n{{b{h}}}}}}:{{{b{En}}}Bb}{bc{}}0{bAn}0<{c{{Cn{e}}}{}{}}00{{}{{Cn{c}}}{}}00{bJl}00<<<````````````````{{bd}f}0000000{{{b{BHf}}Ch}f}{{{b{BHh}}AGf}f}{b{{b{h}}}}00{{{b{BHj}}}{{n{{b{l}}}}}}{b{{b{c}}}{}}00000000{{{b{Af}}}{{b{Afc}}}{}}00000000{{{b{BHj}}}{{n{{b{h}}}}}}{{{b{AEf}}}AEf}{{{b{BHf}}}BHf}{{{b{BHl}}}BHl}{{{b{BHh}}}BHh}{{{b{BHn}}}BHn}{{{b{BI`}}}BI`}{{{b{BIb}}}BIb}{{{b{BId}}}BId}{{b{b{Afc}}}f{}}0000000{bf}0000000{{{b{AEf}}An{AEb{An}}}{{Hj{BIf}}}}{{{b{BHn}}{AEb{An}}}{{Hj{BIh}}}}{{{b{BI`}}{AEb{An}}}{{Hj{BIj}}}}{{{b{BIb}}{AEb{An}}}{{Hj{BIl}}}}{{{b{BId}}{AEb{An}}}f}{{{b{AEf}}An{n{An}}}{{Hj{BIh}}}}{{{b{AEf}}An{n{An}}}{{Hj{BIj}}}}{{{b{AEf}}An{n{An}}}{{Hj{BIl}}}}{{{b{AEf}}An}f}{{}AEf}{Ch{{b{c}}}{}}00000000{Ch{{b{Afc}}}{}}00000000{{{b{BHj}}}{{b{Cj}}}}{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}00000000{Chf}00000000{{{b{AEf}}}{{Cn{Anc}}}{}}{{{b{BHj}}{b{AfEb}}}Eh}0{{{b{AEf}}{b{AfEb}}}Eh}{{{b{BHf}}{b{AfEb}}}Eh}{{{b{BHl}}{b{AfEb}}}Eh}{{{b{BHh}}{b{AfEb}}}Eh}{{{b{BHn}}{b{AfEb}}}Eh}{{{b{BI`}}{b{AfEb}}}Eh}{{{b{BIb}}{b{AfEb}}}Eh}{{{b{BId}}{b{AfEb}}}Eh}{BInBHj}{cc{}}00000000{{{b{AEf}}An{AEb{An}}}{{Hj{BJ`}}}}{{{b{AEf}}{b{Cj}}}{{Cn{BI`BHj}}}}{{{b{BHf}}}Ch}{{{b{BHl}}}Ch}{{{b{BHn}}{b{{ANl{c}}}}}BHf{{BJb{Cj}}}}{{{b{BI`}}{b{{ANl{c}}}}}BHl{{BJb{Cj}}}}{{{b{BIb}}{b{{ANl{c}}}}}BHh{{BJb{Cj}}}}{{{b{AEf}}{b{Cj}}}{{Cn{BHfBHj}}}}{{{b{AEf}}{b{Cj}}}{{Cn{BHnBHj}}}}{{{b{AEf}}{b{Cj}}}{{Cn{BHlBHj}}}}{{{b{AEf}}{b{Cj}}}{{Cn{BHhBHj}}}}{{{b{AEf}}{b{Cj}}}{{Cn{BIbBHj}}}}{{{b{AEf}}c}{{Cn{AEfBHj}}}ANh}{{{b{AEf}}An{AEb{An}}}{{Hj{BJd}}}}{{}Ch}00000000{{}c{}}00000000{{}{{Cn{HbHd}}}}00000000{{{b{BHh}}}AGf}{b}00000000{{{b{BHh}}}Ch}{{{b{BHl}}Ch}f}{{{b{BHj}}}{{n{{b{h}}}}}}{{{b{AEf}}An}{{Hj{AEj}}}}5{{{b{AEf}}An{AEb{An}}}{{Hj{BJf}}}}{bc{}}0000000{bAn}{c{{Cn{e}}}{}{}}00000000{{}{{Cn{c}}}{}}00000000{bJl}00000000{{{b{BHl}}BJh}f}>>>>>>>>>`````````````````````````{{bd}f}00000000`{b{{b{h}}}}00{{{b{F`}}}{{n{{b{l}}}}}}`{{{b{In}}}{{Hl{{Hj{Hh}}}}}}{b{{b{c}}}{}}000000000{{{b{Af}}}{{b{Afc}}}{}}000000000{{{BJj{ce}}}F`{{B`{An}}}{{B`{Bb}}}}{{{b{F`}}}{{n{{b{h}}}}}}{{{b{{ACh{c}}}}}{{ACh{c}}}Ad}{{{b{BJl}}}BJl}{{{b{{BJn{c}}}}}{{BJn{c}}}Bd}{{{b{BK`}}}BK`}{{{b{BKb}}}BKb}{{{b{{BKd{c}}}}}{{BKd{c}}}Bd}{{{b{{BKf{ce}}}}}{{BKf{ce}}}BdBd}{{{b{{BJj{ce}}}}}{{BJj{ce}}}BdBd}{{{b{F`}}}F`}{{b{b{Afc}}}f{}}00000000{bf}00000000{{{b{BJl}}{b{BJl}}}Nj}{{b{b{c}}}Nj{}}{{{b{In}}}{{Hl{{Hj{Hh}}}}}}0{{{b{In}}c}{{Hl{{Hj{Hh}}}}}{{AAh{Ch}}Hn}}{{}{{BJn{c}}}{}}{{}BKh}{{{b{BKh}}c}{{Cn{{Ol{eF`c}}On}}}Jf{HnI`A@`}}{Ch{{b{c}}}{}}000000000{Ch{{b{Afc}}}{}}000000000{{{b{F`}}}{{b{Cj}}}}{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}{c{{Cn{BJl}}}D`}1{c{{Cn{{BJn{e}}}}}D`BKj}2222222{c{{Cn{F`}}}D`}3{Chf}000000000`{{{b{BJl}}{b{BJl}}}Db}{{{b{{BJn{c}}}}{b{{BJn{c}}}}}DbMb}{{b{b{c}}}Db{}}0000000`{{{BJj{ce}}}{{Cn{gF`}}}{{B`{An}}}{{B`{Bb}}}{}}{{{b{{ACh{c}}}}{b{AfEb}}}EhAd}{{{b{BJl}}{b{AfEb}}}Eh}{{{b{{BJn{c}}}}{b{AfEb}}}EhEf}{{{b{BK`}}{b{AfEb}}}Eh}{{{b{BKb}}{b{AfEb}}}Eh}{{{b{{BKd{c}}}}{b{AfEb}}}EhEf}{{{b{{BKf{ce}}}}{b{AfEb}}}EhEfEf}{{{b{{BJj{ce}}}}{b{AfEb}}}EhEfEf}{{{b{F`}}{b{AfEb}}}Eh}0{cc{}}{{{Kh{c}}}{{ACh{c}}}Ad}1{{{b{{BJn{c}}}}}{{n{Cd}}}BKl}22222222{{{Ej{AnBb}}}F`}{A`F`}{A@hF`}{{}BJl}{{{b{c}}{b{e}}}Cd{GdGf}Gh}{{{b{In}}eCd}{{Hl{{Hj{Hh}}}}}Ad{{B`{{ACh{c}}}}HnI`}}{{{b{BJl}}{b{Afc}}}fGj}{{}Ch}000000000{cF`Gl}{{}c{}}000000000{{BK`c}F`{}}{{BKbc}F`{}}{{{BKd{c}}e}F`{{B`{An}}}{}}{{{BKf{ce}}g}F`{{B`{An}}}{{B`{Cd}}}{}}{{{BJj{ce}}g}F`{{B`{An}}}{{B`{Bb}}}{}}{{{b{BJl}}}Db}{{}{{Cn{HbHd}}}}000000000``````{{{b{BJl}}{b{BJl}}}{{n{Nj}}}}{{{b{In}}}{{Hl{{Hj{Hh}}}}}}0{{{b{In}}c}{{Hl{{Hj{Hh}}}}}{{AAh{Ch}}Hn}}{b}000000000``{{{b{BJl}}c}CnJj}{{{b{{BJn{c}}}}e}CnJhJj}{{{b{F`}}c}CnJj}{{{b{F`}}}{{n{{b{h}}}}}}`{{{b{F`}}}Bb}`7{bc{}}00000000{bAn}{c{{Cn{e}}}{}{}}000000000{{}{{Cn{c}}}{}}000000000{bJl}000000000{{{b{In}}e}{{Hl{{Hj{Hh}}}}}Ad{{B`{{N`{c}}}}HnI`}}{{}c{}}000000000`````````````````{{bd}f}`{b{{b{h}}}}00{{{b{Fd}}}{{n{{b{l}}}}}}{{{b{J`}}}{{Hl{{Hj{Hh}}}}}}{b{{b{c}}}{}}0{{{b{Af}}}{{b{Afc}}}{}}0{{{b{Fd}}}{{n{{b{h}}}}}}{{{b{Fd}}}Fd}{{b{b{Afc}}}f{}}{bf}{{{b{J`}}}{{ALf{AEf}}}}0{{}BKn}{{{b{BKn}}c}{{Cn{{Ol{eFdc}}On}}}Jf{HnI`A@`}}{Ch{{b{c}}}{}}0{Ch{{b{Afc}}}{}}0{{{b{Fd}}}{{b{Cj}}}}{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}{c{{Cn{Fd}}}D`}1{Chf}0??`{{{b{Fd}}{b{AfEb}}}Eh}0{cc{}}{A@hFd}{AnFd}2{{}Ch}0{{}c{}}0{{}{{Cn{HbHd}}}}0{{{b{AEh}}}{{b{AEf}}}}{b}0{{{b{BL`}}}{{Hj{AEj}}}}{{{b{Fd}}c}CnJj}{{{b{Fd}}}{{n{{b{h}}}}}}{{{b{Fd}}}Bb}{{{b{J`}}}{{Hl{{Hj{Hh}}}}}}0{bc{}}{bAn}{c{{Cn{e}}}{}{}}0{{}{{Cn{c}}}{}}0{bJl}0==````{{bd}f}{b{{b{c}}}{}}0{{{b{Af}}}{{b{Afc}}}{}}0{{{b{BLb}}}BLb}{{b{b{Afc}}}f{}}{bf}{Ch{{b{c}}}{}}0{Ch{{b{Afc}}}{}}0{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}0{Chf}0{{{b{Af{BLd{c}}}}}fHn}{{{b{BLb}}{b{AfEb}}}Eh}{{{b{{BLd{c}}}}{b{AfEb}}}EhHn}{cc{}}0{{}Ch}0{{}c{}}0{{{BLd{c}}}{{Cn{cBLf}}}Hn}{{}{{Cn{HbHd}}}}0{b}0{{ce}BLbGl{HhHn}}{{cg}{{BLd{e}}}GlHn{{Hh{}{{Ib{e}}}}Hn}}{bc{}}{c{{Cn{e}}}{}{}}0{{}{{Cn{c}}}{}}0{bJl}099``{{}f}{ABjf}```````{b{{b{c}}}{}}{{{b{Af}}}{{b{Afc}}}{}}{{{b{c}}}{{Hl{{Hj{Hh}}}}}{}}{Ch{{Hl{{Hj{Hh}}}}}}{{{b{{AK`{c}}}}}cBLh}{{{b{{AK`{c}}}}Ch}cBLh}{Ch{{b{c}}}{}}{Ch{{b{Afc}}}{}}{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}{{{b{Af{AK`{c}}}}}fBLh}{Chf}{cc{}}{{{b{{AK`{c}}}}}{{b{{Ih{ADhBLjBLl}}}}}BLh}{{{b{{BLh{}{{BLn{c}}}}}}{b{{ADj{ADh}}}}}{{Hl{{Hj{Hh}}}}}{HnI`}}{{}{{AK`{c}}}{BLhBL`}}{{}Ch}{c{{AK`{e}}}{{If{{b{Af{BMb{BM`}}}}}}}{BLhBL`}}{{}c{}}{{}{{Cn{HbHd}}}}{{{b{{AK`{c}}}}}ChBLh}{b}{{{b{{AK`{c}}}}Ch}{{BMd{ADh}}}BLh}{{{b{c}}}{{Hl{{Hj{Hh}}}}}{}}{{{b{Af{AK`{{BLh{}{{BLn{c}}}}}}}}}{{Hl{{Hj{Hh}}}}}{HnI`}}{{{AK`{c}}}fBLh}{{{b{Af{AK`{c}}}}eg}fBLhGl{HhHn}}{{{b{Af{AK`{c}}}}}fBLh}{{{b{{AK`{c}}}}}bBLh}{{{b{{AK`{c}}}}BMf}fBLh}{c{{Cn{e}}}{}{}}{{}{{Cn{c}}}{}}{bJl}>`````````````{{bd}f}00``{b{{b{c}}}{}}00{{{b{Af}}}{{b{Afc}}}{}}00`{{{b{ADh}}}ADh}{{{b{BLl}}}BLl}{{{b{BLj}}}BLj}{{b{b{Afc}}}f{}}00{bf}00{{{b{ADh}}{b{ADh}}}Nj}{{{b{BLj}}{b{BLj}}}Nj}{{b{b{c}}}Nj{}}0`{{}ADh}{{}BLj}`{Ch{{b{c}}}{}}00{Ch{{b{Afc}}}{}}00{c{{Cn{ADh}}}D`}{{b{b{Afc}}}{{Cn{{Cl{eg}}}}}{}{}{}}00{c{{Cn{BLj}}}D`}{Chf}00{{{b{ADh}}{b{ADh}}}Db}{{{b{BLj}}{b{BLj}}}Db}{{b{b{c}}}Db{}}0000000{{{b{BMh}}}c{}}0{{{b{ADh}}{b{AfEb}}}Eh}{{{b{BLl}}{b{AfEb}}}Eh}{{{b{BLj}}{b{AfEb}}}Eh}{cc{}}00{{{b{c}}{b{e}}}Cd{GdGf}Gh}0{{{b{ADh}}{b{Afc}}}fGj}{{{b{BLj}}{b{Afc}}}fGj}{{}{{b{Cj}}}}{{{b{BMh}}}Cd}{{}Ch}00{{{b{AfBMj}}c{b{{AE`{ecg}}}}}{{Kb{f}}}{}{}{}}{{}c{}}00{{{b{BMl}}{b{c}}}e{}{}}`{{}{{Cn{HbHd}}}}00{{{b{BMl}}{b{c}}}Ch{}}`{{{AEb{BMn}}}BMf}{{{b{BMf}}}c{}}{{{b{BMh}}}{{AEb{c}}}{}}{{{b{ADh}}{b{ADh}}}{{n{Nj}}}}{{{b{BLj}}{b{BLj}}}{{n{Nj}}}}`{b}00`{{{b{BMh}}}c{}}`0{{{b{ADh}}c}CnJj}{{{b{BLj}}c}CnJj}`{{}{{b{Cj}}}}{{{b{BMh}}}Cd}`{bc{}}00{{{b{BMl}}{b{c}}{b{e}}}{{n{{Ej{gi}}}}}{}{}{}{}}`{{}Ch}{c{{Cn{e}}}{}{}}00{{}{{Cn{c}}}{}}00{bJl}00```{{}c{}}00`{{{b{BKl}}}Cd}","D":"EHn","p":[[1,"reference"],[5,"Private",4426],[1,"unit"],[10,"Error",4427],[6,"Error",0,4428],[5,"Backtrace",4429],[6,"Option",4430],[6,"QueryError",0],[5,"Leaf",0,4431],[10,"NodeType",4432],[0,"mut"],[5,"NotFoundSnafu",0],[5,"MissingSnafu",0],[5,"ErrorSnafu",0],[5,"String",4433],[10,"Into",4434],[5,"StatusCode",4435],[10,"Clone",4436],[5,"ApiState",0],[5,"UpgradeLock",4437],[5,"Commitment",4438],[10,"Versions",4432],[10,"Resolvable",0,4439],[10,"Committable",4438],[10,"RngCore",4440],[1,"u64"],[5,"Options",0],[1,"usize"],[1,"str"],[5,"With",4441],[6,"Result",4442],[10,"Deserializer",4443],[1,"bool"],[5,"UpgradeProposalData",4444],[5,"UpgradeThreshold",4445],[5,"SimpleCertificate",4445],[5,"RwLock",4446],[5,"Arc",4447],[5,"Error",4448],[6,"BlockError",4431],[5,"Formatter",4449],[5,"Error",4449],[10,"Debug",4449],[8,"Result",4449],[1,"tuple"],[6,"Error",2175],[6,"Error",3462],[6,"Error",3823],[6,"Error",311],[6,"Error",4131],[6,"Error",4450],[6,"TimestampConversionError",2175,4451],[1,"never"],[5,"OwnedFd",4452],[10,"IntoFilelike",4453],[10,"IntoSocketlike",4453],[5,"QuorumProposal",4431],[10,"Hash",4454],[10,"Sized",4455],[10,"BuildHasher",4454],[10,"Hasher",4454],[10,"Display",4449],[5,"QuorumData",4444],[5,"SuccessThreshold",4445],[5,"Layout",4456],[5,"LayoutError",4456],[5,"DynGuard",4457],[10,"Future",4458],[5,"Box",4459],[5,"Pin",4460],[10,"Send",4455],[10,"Sync",4455],[17,"Output"],[8,"BoxFuture",4461],[10,"FnOnce",4462],[5,"SystemContextHandle",4463],[10,"AvailabilityDataSource",311,4464],[10,"UpdateDataSource",1018,4465],[10,"NodeDataSource",3823,4466],[10,"StatusDataSource",4131,4467],[10,"VersionedDataSource",1018,4465],[10,"NodeImplementation",4432],[10,"StaticVersionType",4468],[10,"Serialize",4469],[10,"Serializer",4469],[5,"TypeId",4470],[10,"UpdateAvailabilityData",311,4464],[5,"BlockInfo",311,4464],[8,"Result",4471],[5,"InconsistentLeafError",311,4472],[5,"LeafQueryData",311,4472],[8,"BlockHash",311,4472],[5,"PayloadQueryData",311,4472],[5,"VidCommonQueryData",311,4472],[5,"TransactionQueryData",311,4472],[5,"FetchLeafSnafu",311],[5,"FetchBlockSnafu",311],[5,"FetchTransactionSnafu",311],[5,"InvalidTransactionIndexSnafu",311],[5,"CustomSnafu",311],[17,"TransactionIndex"],[17,"Iter"],[17,"InclusionProof"],[10,"QueryablePayload",311,4472],[10,"PartialEq",4473],[10,"Eq",4473],[10,"Ord",4473],[10,"DeserializeOwned",4443],[17,"Item"],[10,"Iterator",4474],[6,"LeafId",311,4464],[6,"BlockId",311,4464],[5,"BlockQueryData",311,4472],[5,"BlockSummaryQueryData",311,4472],[5,"TransactionSummaryQueryData",311,4472],[5,"RequestSnafu",311],[6,"Ordering",4473],[8,"VidCommon",0,4475],[6,"Fetch",311,4476],[10,"ErrorCompat",4477],[17,"Source"],[5,"NoneError",4477],[10,"IntoError",4477],[8,"Payload",0],[5,"Options",311],[5,"Api",4478],[6,"ApiError",4478],[10,"ReadState",4479],[8,"TransactionIndex",311,4472],[8,"Transaction",0],[8,"LeafHash",311,4472],[6,"RequestError",4480],[8,"Result",4450],[17,"LeafRange"],[17,"BlockRange"],[17,"PayloadRange"],[17,"VidCommonRange"],[10,"Stream",4481],[10,"Unpin",4455],[10,"RangeBounds",4482],[8,"TransactionHash",311,4472],[8,"VidCommitment",0,4475],[8,"Header",0],[8,"Metadata",0],[8,"VidShare",0,4475],[8,"QuorumCertificate",4445],[8,"TransactionInclusionProof",311,4472],[10,"QueryableHeader",311,4472],[5,"Duration",4483],[5,"ExtensibleDataSource",1018,4484],[5,"MetricsDataSource",1018,4485],[10,"Transaction",1018,4465],[6,"BlockIdentifier",2175,4451],[10,"ExplorerDataSource",2175,4486],[5,"GetBlockSummariesRequest",2175,4451],[6,"WindowStart",3823,4466],[10,"MerklizedStateHeightPersistence",3462,4487],[6,"Snapshot",3462,4487],[10,"MerklizedState",3462,4487],[10,"MerklizedStateDataSource",3462,4487],[5,"TaggedBase64",4488],[6,"TransactionIdentifier",2175,4451],[5,"GetTransactionSummariesRequest",2175,4451],[5,"MockTypes",4290],[5,"Event",4489],[10,"TestableDataSource",4250],[10,"Default",4490],[5,"MerkleProof",4491],[5,"Vec",4492],[10,"UpdateStateData",3462,4487],[5,"PrometheusMetrics",3579],[10,"HasMetrics",4131,4467],[10,"Metrics",4493],[17,"Transaction"],[17,"ReadOnly"],[5,"FetchingDataSource",1135],[10,"AvailabilityProvider",1135],[5,"Builder",1135],[10,"PruneStorage",1717],[5,"Pruner",1135],[5,"Config",1763],[8,"Builder",1271],[5,"Error",1763,4471],[5,"Path",4494],[5,"FileSystemStorage",1465],[5,"AtomicStoreLoader",4495],[1,"f64"],[8,"FileSystemDataSource",1251],[8,"SqlDataSource",1271],[10,"AggregatesStorage",1286],[10,"NodeStorage",1286],[10,"AvailabilityStorage",1286],[10,"ExplorerStorage",1286],[10,"MerklizedStateHeightStorage",1286],[10,"MerklizedStateStorage",1286],[10,"UpdateAvailabilityStorage",1286],[10,"UpdateAggregatesStorage",1286],[5,"Transaction",1332],[6,"FailableAction",1332],[5,"FailStorage",1332],[5,"PrunerCfg",1717],[10,"PrunerConfig",1717],[10,"PrunedHeightStorage",1717],[5,"Transaction",1465],[10,"Revert",1465],[17,"Target"],[5,"FileSystemStorageInner",1465],[10,"Deref",4496],[5,"RwLockWriteGuard",4446],[5,"RwLockReadGuard",4446],[6,"PersistenceError",4497],[5,"Transaction",1552],[5,"NoStorage",1552],[6,"DataSource",1618],[6,"Transaction",1618],[5,"MockNetwork",4250],[17,"Pruner"],[1,"u16"],[5,"Transaction",1763,4498],[10,"TransactionMode",1763,4498],[1,"i32"],[5,"OffsetDateTime",4499],[5,"Migration",1763,4500],[10,"Params",1763,4498],[8,"Query",1763,4498],[5,"QueryBuilder",1763,4501],[8,"QueryResult",0],[8,"Db",1763,4502],[10,"Encode",4503],[10,"Type",4504],[5,"Chain",4471],[5,"Write",1763,4498],[5,"Read",1763,4498],[5,"SqlStorage",1763],[5,"Pruner",1763],[17,"Database"],[10,"Executor",1763,4505],[10,"Database",1763,4506],[10,"Execute",4505],[5,"Sqlite",1763,4507],[5,"FmtValue",4508],[5,"PgConnectOptions",4509],[1,"u32"],[10,"IntoIterator",4510],[6,"Type",4500],[1,"slice"],[8,"QueryAs",1763,4498],[10,"FromRow",4511],[5,"TestArgs",4512],[5,"Error",4513],[1,"array"],[5,"TmpDb",2134],[5,"MonetaryValue",2175,4514],[1,"i128"],[5,"CurrencyMismatchError",2175,4515],[5,"InvalidCurrencyCodeError",2175,4515],[6,"CurrencyCode",2175,4515],[5,"BlockRange",2175,4451],[5,"TransactionRange",2175,4451],[5,"Timestamp",2175,4451],[6,"GetBlockDetailError",2175,4451],[6,"GetBlockSummariesError",2175,4451],[6,"GetTransactionDetailError",2175,4451],[6,"GetTransactionSummariesError",2175,4451],[6,"GetExplorerSummaryError",2175,4451],[6,"GetSearchResultsError",2175,4451],[5,"BlockDetail",2175,4451],[5,"BlockSummary",2175,4451],[5,"FeeAttribution",2175,4451],[5,"TransactionDetail",2175,4451],[5,"TransactionSummary",2175,4451],[6,"TransactionSummaryFilter",2175,4451],[5,"GenesisOverview",2175,4451],[5,"ExplorerHistograms",2175,4451],[5,"ExplorerSummary",2175,4451],[5,"SearchResult",2175,4451],[5,"BlockDetailResponse",2175],[5,"BlockSummaryResponse",2175],[5,"TransactionDetailResponse",2175],[5,"TransactionSummariesResponse",2175],[5,"ExplorerSummaryResponse",2175],[5,"SearchResultResponse",2175],[17,"BalanceAmount"],[17,"WalletAddress"],[17,"ProposerId"],[17,"NamespaceId"],[10,"ExplorerHeader",2175,4516],[5,"TryFromIntError",4517],[5,"ComponentRange",4518],[6,"Resettable",4519],[10,"ExplorerTransaction",2175,4516],[5,"Fetcher",3230],[5,"Semaphore",4520],[8,"ExponentialBackoff",4521],[10,"LocalCallback",3230],[10,"Callback",3230],[10,"Request",3372],[10,"Provider",3262],[5,"TestProvider",3262,4522],[5,"AnyProvider",3262,4523],[5,"QueryServiceProvider",3262,4524],[5,"NoFetching",3262],[5,"PayloadRequest",3372],[5,"VidCommonRequest",3372],[5,"LeafRequest",3372],[5,"Url",4525],[5,"Options",3462],[17,"Key"],[17,"Entry"],[17,"T"],[17,"Commit"],[17,"Digest"],[10,"Index",4526],[10,"ToTraversalPath",4526],[10,"FromStr",4527],[10,"CanonicalSerialize",4528],[10,"CanonicalDeserialize",4528],[10,"Element",4526],[10,"NodeValue",4526],[10,"MerkleCommitment",4526],[10,"TryFrom",4434],[10,"DigestAlgorithm",4526],[5,"Counter",3579],[5,"Histogram",3579],[6,"MetricsError",3579],[5,"Gauge",3579],[5,"CounterFamily",3579],[5,"GaugeFamily",3579],[5,"HistogramFamily",3579],[5,"TextFamily",3579],[10,"CounterFamily",4493],[10,"Counter",4493],[10,"Gauge",4493],[10,"Histogram",4493],[6,"Error",4529],[10,"GaugeFamily",4493],[10,"AsRef",4434],[10,"HistogramFamily",4493],[10,"TextFamily",4493],[1,"i64"],[5,"CustomSnafu",3823],[5,"SyncStatus",3823,4530],[5,"TimeWindowQueryData",3823,4530],[5,"RequestSnafu",3823],[5,"QuerySnafu",3823],[5,"QueryVidSnafu",3823],[5,"QueryWindowSnafu",3823],[5,"Options",3823],[10,"Deserialize",4443],[10,"HeightIndexed",4424],[5,"Options",4131],[10,"UpdateStatusData",4131,4467],[5,"BackgroundTask",4203],[5,"Task",4203],[5,"JoinError",4531],[10,"DataSourceLifeCycle",4250],[5,"MockNodeImpl",4290],[5,"MockVersions",4290],[17,"Storage"],[8,"BLSPubKey",4532],[5,"HotShotConfig",4533],[8,"SignatureKey",0],[8,"MockTransaction",4290],[8,"MockHeader",4290],[8,"MockMerkleTree",4290],[8,"MockPayload",4290],[1,"u8"],[15,"Custom",303],[15,"Availability",303],[15,"Node",303],[15,"Status",303],[15,"MerklizedState",303],[15,"Explorer",303],[15,"Error",310],[15,"InvalidTransactionIndex",1010],[15,"Custom",1010],[15,"FetchLeaf",1010],[15,"FetchBlock",1010],[15,"FetchTransaction",1010],[15,"Request",1010],[6,"Storage",1618],[15,"NoStorage",1716],[5,"TestMerkleTreeMigration",2134],[15,"Custom",3575],[15,"Request",3575],[15,"Query",3575],[15,"NoSuchMetric",3819],[15,"NoSuchSubgroup",3819],[15,"Prometheus",3819],[15,"QueryVid",4122],[15,"QueryWindow",4122],[15,"Custom",4122],[15,"Request",4122],[15,"Query",4122],[15,"Internal",4201],[15,"Request",4201],[8,"MockQuorumProposal",4290],[8,"MockStorage",4290],[8,"MockAuctionResults",4290]],"r":[[4,4428],[9,4431],[22,4439],[26,4475],[27,4475],[28,4475],[311,4464],[312,4472],[313,4464],[314,4464],[315,4472],[317,4472],[321,4476],[331,4472],[335,4472],[336,4464],[337,4472],[343,4472],[346,4472],[347,4472],[351,4472],[352,4472],[353,4472],[354,4472],[356,4472],[357,4472],[358,4464],[359,4472],[1018,1135],[1019,4484],[1020,1135],[1021,1251],[1022,4485],[1024,1271],[1025,4465],[1027,4465],[1028,4465],[1252,1465],[1272,1763],[1273,4471],[1274,4500],[1276,4498],[1281,0],[1284,2134],[1289,1332],[1290,1465],[1293,1552],[1295,1763],[1768,4506],[1770,4502],[1771,4471],[1772,4505],[1773,4498],[1774,4500],[1776,4498],[1778,4498],[1779,4498],[1780,4501],[1782,4498],[1785,4507],[1787,4498],[1789,4498],[1794,4498],[1992,4534],[1993,0],[2060,4498],[2062,4498],[2175,4451],[2178,4451],[2180,4451],[2181,4451],[2183,4451],[2184,4451],[2189,4515],[2190,4515],[2195,4486],[2196,4516],[2197,4451],[2198,4451],[2200,4516],[2201,4451],[2205,4451],[2207,4451],[2210,4451],[2212,4451],[2214,4451],[2216,4451],[2218,4451],[2220,4451],[2222,4451],[2228,4515],[2235,4514],[2239,4451],[2248,4451],[2253,4451],[2254,4451],[2257,4451],[2259,4451],[2260,4451],[2262,4451],[2264,4451],[2265,4451],[2273,4451],[3233,3262],[3234,3372],[3262,4523],[3265,4524],[3266,4522],[3470,4487],[3471,4487],[3472,4487],[3476,4487],[3478,4487],[3823,4472],[3824,4464],[3830,4466],[3840,4530],[3842,4530],[3843,4466],[4132,4467],[4136,4467],[4137,4467]],"b":[[92,"impl-Leaf%3CTYPES%3E"],[93,"impl-Committable-for-Leaf%3CTYPES%3E"],[150,"impl-Display-for-Leaf%3CTYPES%3E"],[151,"impl-Debug-for-Leaf%3CTYPES%3E"],[152,"impl-Debug-for-Error"],[153,"impl-Display-for-Error"],[157,"impl-Debug-for-QueryError"],[158,"impl-Display-for-QueryError"],[161,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[162,"impl-From%3CError%3E-for-Error"],[163,"impl-From%3CError%3E-for-Error"],[164,"impl-From%3CError%3E-for-Error"],[165,"impl-From%3CError%3E-for-Error"],[166,"impl-From%3CError%3E-for-Error"],[171,"impl-From%3CError%3E-for-QueryError"],[173,"impl-From%3CTimestampConversionError%3E-for-QueryError"],[177,"impl-From%3CD%3E-for-ApiState%3CD%3E"],[178,"impl-From%3CArc%3CD%3E%3E-for-ApiState%3CD%3E"],[652,"impl-Display-for-LeafId%3CTypes%3E"],[653,"impl-Debug-for-LeafId%3CTypes%3E"],[654,"impl-Debug-for-BlockId%3CTypes%3E"],[655,"impl-Display-for-BlockId%3CTypes%3E"],[658,"impl-Debug-for-InconsistentLeafError%3CTypes%3E"],[659,"impl-Display-for-InconsistentLeafError%3CTypes%3E"],[672,"impl-Display-for-Error"],[673,"impl-Debug-for-Error"],[676,"impl-From%3Cusize%3E-for-LeafId%3CTypes%3E"],[677,"impl-From%3CCommitment%3CLeaf%3CTypes%3E%3E%3E-for-LeafId%3CTypes%3E"],[679,"impl-From%3Cusize%3E-for-BlockId%3CTypes%3E"],[680,"impl-From%3CCommitment%3C%3CTypes+as+NodeType%3E::BlockHeader%3E%3E-for-BlockId%3CTypes%3E"],[700,"impl-From%3CRequestError%3E-for-Error"],[701,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[1035,"impl-StatusDataSource-for-ExtensibleDataSource%3CD,+U%3E"],[1036,"impl-NodeDataSource%3CTypes%3E-for-ExtensibleDataSource%3CD,+U%3E"],[1143,"impl-NodeDataSource%3CTypes%3E-for-FetchingDataSource%3CTypes,+S,+P%3E"],[1144,"impl-StatusDataSource-for-FetchingDataSource%3CTypes,+S,+P%3E"],[1254,"impl-DataSourceLifeCycle-for-FetchingDataSource%3CMockTypes,+FileSystemStorage%3CMockTypes%3E,+P%3E"],[1255,"impl-FetchingDataSource%3CTypes,+FileSystemStorage%3CTypes%3E,+P%3E"],[1277,"impl-DataSourceLifeCycle-for-FetchingDataSource%3CMockTypes,+SqlStorage,+P%3E"],[1278,"impl-FetchingDataSource%3CTypes,+SqlStorage,+P%3E"],[1477,"impl-Transaction-for-Transaction%3CRwLockWriteGuard%3C\'a,+FileSystemStorageInner%3CTypes%3E%3E%3E"],[1478,"impl-Transaction-for-Transaction%3CRwLockReadGuard%3C\'a,+FileSystemStorageInner%3CTypes%3E%3E%3E"],[1533,"impl-Transaction-for-Transaction%3CRwLockReadGuard%3C\'a,+FileSystemStorageInner%3CTypes%3E%3E%3E"],[1534,"impl-Transaction-for-Transaction%3CRwLockWriteGuard%3C\'a,+FileSystemStorageInner%3CTypes%3E%3E%3E"],[1630,"impl-NodeDataSource%3CMockTypes%3E-for-DataSource"],[1631,"impl-StatusDataSource-for-DataSource"],[1803,"impl-AsRef%3Cdyn+Error%3E-for-Error"],[1804,"impl-AsRef%3Cdyn+Error+%2B+Send+%2B+Sync%3E-for-Error"],[1940,"impl-Display-for-Error"],[1941,"impl-Debug-for-Error"],[1942,"impl-Display-for-Migration"],[1943,"impl-Debug-for-Migration"],[2701,"impl-Debug-for-CurrencyMismatchError"],[2702,"impl-Display-for-CurrencyMismatchError"],[2703,"impl-Debug-for-InvalidCurrencyCodeError"],[2704,"impl-Display-for-InvalidCurrencyCodeError"],[2705,"impl-Display-for-CurrencyCode"],[2706,"impl-Debug-for-CurrencyCode"],[2707,"impl-Debug-for-MonetaryValue"],[2708,"impl-Display-for-MonetaryValue"],[2709,"impl-Display-for-BlockIdentifier%3CTypes%3E"],[2710,"impl-Debug-for-BlockIdentifier%3CTypes%3E"],[2711,"impl-Display-for-TransactionIdentifier%3CTypes%3E"],[2712,"impl-Debug-for-TransactionIdentifier%3CTypes%3E"],[2718,"impl-Display-for-TimestampConversionError"],[2719,"impl-Debug-for-TimestampConversionError"],[2730,"impl-Display-for-GetBlockDetailError"],[2731,"impl-Debug-for-GetBlockDetailError"],[2732,"impl-Display-for-GetBlockSummariesError"],[2733,"impl-Debug-for-GetBlockSummariesError"],[2734,"impl-Debug-for-GetTransactionDetailError"],[2735,"impl-Display-for-GetTransactionDetailError"],[2736,"impl-Debug-for-GetTransactionSummariesError"],[2737,"impl-Display-for-GetTransactionSummariesError"],[2738,"impl-Display-for-GetExplorerSummaryError"],[2739,"impl-Debug-for-GetExplorerSummaryError"],[2740,"impl-Display-for-GetSearchResultsError"],[2741,"impl-Debug-for-GetSearchResultsError"],[2742,"impl-Debug-for-Error"],[2743,"impl-Display-for-Error"],[2762,"impl-From%3CTryFromIntError%3E-for-TimestampConversionError"],[2763,"impl-From%3CComponentRange%3E-for-TimestampConversionError"],[2775,"impl-From%3CError%3E-for-GetBlockDetailError"],[2777,"impl-From%3CQueryError%3E-for-GetBlockDetailError"],[2778,"impl-From%3CError%3E-for-GetBlockSummariesError"],[2780,"impl-From%3CQueryError%3E-for-GetBlockSummariesError"],[2781,"impl-From%3CError%3E-for-GetTransactionDetailError"],[2782,"impl-From%3CQueryError%3E-for-GetTransactionDetailError"],[2783,"impl-From%3CTimestampConversionError%3E-for-GetTransactionDetailError"],[2785,"impl-From%3CError%3E-for-GetTransactionSummariesError"],[2787,"impl-From%3CQueryError%3E-for-GetTransactionSummariesError"],[2789,"impl-From%3CGetBlockSummariesError%3E-for-GetExplorerSummaryError"],[2790,"impl-From%3CGetTransactionSummariesError%3E-for-GetExplorerSummaryError"],[2791,"impl-From%3CQueryError%3E-for-GetExplorerSummaryError"],[2792,"impl-From%3CError%3E-for-GetExplorerSummaryError"],[2793,"impl-From%3CGetBlockDetailError%3E-for-GetExplorerSummaryError"],[2794,"impl-From%3CError%3E-for-GetSearchResultsError"],[2796,"impl-From%3CQueryError%3E-for-GetSearchResultsError"],[3312,"impl-Provider%3CTypes,+PayloadRequest%3E-for-AnyProvider%3CTypes%3E"],[3313,"impl-Provider%3CTypes,+VidCommonRequest%3E-for-AnyProvider%3CTypes%3E"],[3314,"impl-Provider%3CTypes,+LeafRequest%3E-for-AnyProvider%3CTypes%3E"],[3315,"impl-Provider%3CTypes,+LeafRequest%3E-for-QueryServiceProvider%3CVer%3E"],[3316,"impl-Provider%3CTypes,+PayloadRequest%3E-for-QueryServiceProvider%3CVer%3E"],[3317,"impl-Provider%3CTypes,+VidCommonRequest%3E-for-QueryServiceProvider%3CVer%3E"],[3523,"impl-Debug-for-Snapshot%3CTypes,+T,+ARITY%3E"],[3524,"impl-Display-for-Snapshot%3CTypes,+T,+ARITY%3E"],[3525,"impl-Display-for-Error"],[3526,"impl-Debug-for-Error"],[3529,"impl-From%3CQueryError%3E-for-Error"],[3531,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[3532,"impl-From%3CRequestError%3E-for-Error"],[3696,"impl-Debug-for-MetricsError"],[3697,"impl-Display-for-MetricsError"],[3716,"impl-Metrics-for-PrometheusMetrics"],[3717,"impl-PrometheusMetrics"],[3982,"impl-Display-for-Error"],[3983,"impl-Debug-for-Error"],[3996,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[3997,"impl-From%3CQueryError%3E-for-Error"],[3998,"impl-From%3CRequestError%3E-for-Error"],[4170,"impl-Display-for-Error"],[4171,"impl-Debug-for-Error"],[4173,"impl-From%3CRequestError%3E-for-Error"],[4174,"impl-From%3CString%3E-for-Error"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAIMOJAECAAEABQAAAAgAAQALAAEADwAAABMAAwAYAAEAHgAMACwAAgAyAA8ARQAXAF4AAABgAAEAYwAsAJcACQCiAAUArAAAAK4AAACxAAYAuQAAALsAAQC/AA0A1QACANkACQDkAAEA5wAAAOoACQD1AAQA+wACAP8AGgAbAQgAKAEPADoBAAA8AQMAQQEAAEMBAABFAQAARwEAAEkBAQBMAQEAUAELAF0BAQBgAQMAZQEXAH4BCwCMAScAuwE8APkBXABYAi0AjQIVAKUCAQCoAgEArAIAALACAAC1AgAAvQIBAMACDwDRAgYA2QIKAOUCFQAPAwYAGAMAABsDFgAzAwAANQMCADkDAQBBAxsAYAMBAGMDMACWAwAAmgMAAJ4DJwDHAykA8wMIAP0DAQAABAEABgQEAAwEGwApBAEALQQWAEYEAABJBAQATwQAAFEEAwBWBAUAXgQIAGgEAwBtBAIAcwQMAIIEBQCJBAAAjAQIAJcEBACfBBQAtwQDAL4EBQDFBBAA4wQAAOUEAgDqBAAA7QQAAO8ECgD9BAEAAAUBAAMFBAAKBQIADgUEABQFBAAaBQAAHQUHACYFAAApBQgANAUAADgFPAB3BQEAegUXAJUFJAC7BQ0AywUPAN4FEADyBQMA+AUHAAEGDwASBhYAKwYPAD0GHABbBiAAfwYRAJQGJwC9BgoAyQYCAM4GAQDSBgIA1gYAANgGCwDqBgAA8gYCAAQHBQAMBwEADwcDABQHFAAtBxAAQgcBAEUHBQBMByQAdAcQAJUHDgCsBwAArwcMAL0HCADLBw0A5AcJAO8HAADxBwAA+AcBAPsHCgANCAAADwgAABEIAAATCAEAFwgCABsIBQAiCCMARwgBAEsIHABqCAMAcAgQAIIIAACGCAEAiwgCAJEIAgCbCAIAnwgAAKEIAQCkCAAApggAAKgIAACqCAAArAgAAK4IAACwCAQAtggFAL8IAQDCCAYAywgCANAIAQDVCAEA2wgHAOQIEAD2CGcAXwk2AJcJTADlCQMA6gmaAIcKAQCLCgMAkAoAAJMKAQCWCigAywoBANgKAADaCgEA3QoDAOIKAADkCgAA5goFAO0KAADvCgAA8QoAAPQKAAD2CgAA+QoDAAMLKwBSCyoAfwsrAKwLAgCwCwMAtgsAALkLFgDRCxEA5AuVAHsMIwCiDAwAsAwAALIMAgC3DAEAugwEAMQMAwDJDCUA8QwLAAENAwAJDRkAJQ0DADINLwBkDQAAZg0IAHINHACRDQMAlg0AAJgNKgDEDQMAyg0AAMwNBQDTDQMA2w0JAOYNBADsDQ8AAg4DAAgOcwCFDgAAhw4EAJIOCQClDk0A9A4FAPsOAAD9DgAA/w4AAAEPAQAEDyQAKg9aAIcPCQCSDwAAnQ8RALkPLADnD2IASxABAE4QAQBREAEAVRAWAG4QEgCDEAEAiBADAI4QEQChEAsArhAEALQQBAC6EAkAxRANANUQBQDcEC0ADREJABoRAAAcEQMAIREEACcRAgArEQAALRECADERAQA0EQMAOREJAEYRAgBKEQAA"}]]')); +var searchIndex = new Map(JSON.parse('[["hotshot_query_service",{"t":"FPPPGPFPIFPIPFPPFPFIGIKIPIIIINNNNNNNNNNNNNCONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQNNNNNNNNQQQQQNNNNNNNNNNNNNNNNNNNNNNNCOCCONNNNNNNNNNONHNNNNNCNNOCCNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNCNNNNNNNNNNNOOOOOOOOKIGFFRFPFGGPFPFPFPPRFPFRIGFRPPFPFRFRPKKPPFIIIIRFFKFRFRNNNNNNNNNNNNNNNNNNNNOMNNNNNNNNONNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNMMMMMMMMMMMNNNNNNNONNNNNNNNNNNOOONONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNOOMNNONNNNNNNNNNNNNONNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNONOOONNNNNNNNNNNONNNONNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOEFEEFREKRKKNNNNNCNNNNNNNNNNNNNMNNNNNNNNNNNNNNCNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNCNNNNMNNNMNCCCNNNNNNNNNMNNNNMNHHKFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNIENNNNNNNNNHHHHHHHHHIEFFIENNNNQNCEHKKKEEKKEKEKKMMMCCMMMMMMMMMMMMMMMMMMMMMMMMMMCMCCMMMPFGPPPPPPPPPPPPPPPFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFKFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNGPPPPPPGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOKKRFKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNRRRFRKRIFKKFTKFIIFRFRFFRFRKRTRRFNNNNNNNNNNNMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQQNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNHNHNNNNNNNNNNNNNDNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNIRPFFGIPFFFPPPGFGPPPKKFFFKFPPPFPGPPGPFPGPGPGPGPFPPPPPFPPPPPPFRRPIRPPPPPPPFFPPPFGPPFFGIPFFFGPPPPPPPIRPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOMMOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOMMMMMMOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMOOOMOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKFKEENNNNNNNNNNNNNNNNNCCMMNNNNNNFFKFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFKRFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPRPRRGPRKKKFPPGRKNNONNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNMMNMNNNMMNNNNNNNNNNNMNMNNNNNMNNNNNNNNNNNNOOOOFFFFFFGPPPFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOEEPFGPPKFPFPFPFPFFPFGNNNNNNNNNONNNNOMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOONNNMNNNNNNNNNNOONNNNONOMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNOOOOOOOOOOGKPFPKKNONNNNMNNNNNNNNNNNHNNNNNNNNNNNNONNNNNNNNNNNNMNNMNNNNNNNNNNNNNNNOOFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCHHKIFISRKNNMMNNNNNNNNNMNNNNNNNNMNNNNNNNNNNIIIIIIFIIIIFFNNNOONNNNNNONNNNNNNNNNNNNONNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNOHNNNNONNNONONNNONNONNNNONNNNNNNNNNOOONNNKM","n":["ApiState","Availability","Custom","Err","Error","","ErrorSnafu","Explorer","Header","Leaf","MerklizedState","Metadata","Missing","MissingSnafu","Node","NotFound","NotFoundSnafu","Ok","Options","Payload","QueryError","QueryResult","Resolvable","SignatureKey","Status","Transaction","VidCommitment","VidCommon","VidShare","__clone_box","","","","","","","as_error","","as_error_source","","","","availability","","backtrace","","block_header","block_header_mut","block_payload","borrow","","","","","","","","borrow_mut","","","","","","","","build","","","catch_all","cause","","clone","","","","","","","clone_into","","","","","","","clone_to_uninit","","","","","","","commit","","commitment","","create_random_transaction","data_source","default","deref","","","","","","","","","deref_mut","","","","","","","","description","","deserialize","","","","","","","","","","","drop","","","","","","","","eq","equivalent","","","","explorer","extends_upgrade","fail","","","fetching","fill_block_payload","fill_block_payload_unchecked","fmt","","","","","","","","","","from","","","","","","","","","","","","","","","","","","","from_fd","from_filelike","from_into_filelike","from_into_socketlike","from_quorum_proposal","from_socketlike","genesis","get_hash","hash","height","include_migrations","init","","","","","","","","instantiate_availability_tests","instantiate_data_source_tests","instantiate_node_tests","instantiate_persistence_tests","instantiate_status_tests","internal","into","","","","","","","","into_error","","","justify_qc","layout_raw","","","","","","","","load","","merklized_state","message","metrics","node","","parent_commitment","payload_commitment","pointer_metadata","","","","","","","","port","read","run_standalone_service","serialize","","","source","","status","","","","task","testing","to_owned","","","","","","","to_string","","","try_from","","","","","","","","try_into","","","","","","","","try_resolve","","type_id","","","","","","","","types","unfill_block_payload","upgrade_certificate","view_number","vzip","","","","","","","","message","source","","","","","status","message","AvailabilityDataSource","BlockHash","BlockId","BlockInfo","BlockQueryData","BlockRange","BlockSummaryQueryData","Custom","CustomSnafu","Error","Fetch","FetchBlock","FetchBlockSnafu","FetchLeaf","FetchLeafSnafu","FetchTransaction","FetchTransactionSnafu","Hash","","InclusionProof","InconsistentLeafError","InvalidTransactionIndex","InvalidTransactionIndexSnafu","Iter","LeafHash","LeafId","LeafQueryData","LeafRange","Number","","Options","PayloadHash","PayloadMetadata","PayloadMetadataRange","PayloadQueryData","PayloadRange","Pending","QueryableHeader","QueryablePayload","Ready","Request","RequestSnafu","Timestamp","TransactionHash","TransactionInclusionProof","TransactionIndex","","TransactionQueryData","TransactionSummaryQueryData","UpdateAvailabilityData","VidCommonMetadata","VidCommonMetadataRange","VidCommonQueryData","VidCommonRange","__clone_box","","","","","","","","","","","","","","","","","","","","api_path","append","as_error","","as_error_source","","","","backtrace","","block","block_hash","","","","","","block_height","borrow","","","","","","","","","","","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","","","","","","","","","","","build","","","","","by_hash","","cause","","clone","","","","","","","","","","","","","","","","","","","","clone_into","","","","","","","","","","","","","","","","","","","","clone_to_uninit","","","","","","","","","","","","","","","","","","","","cmp","","common","compare","","context","data","default","define_api","deref","","","","","","","","","","","","","","","","","","","","","","deref_mut","","","","","","","","","","","","","","","","","","","","","","description","","deserialize","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","drop","","","","","","","","","","","","","","","","","","","","","","enumerate","","","eq","","","","","","","","","","","equivalent","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","extensions","fail","","","","","fetch_timeout","fmt","","","","","","","","","","","","","","","","","","","","","","","","from","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","from_row","","","","","","genesis","","","","get_block","get_block_range","get_hash","","get_leaf","get_leaf_range","get_payload","get_payload_metadata","get_payload_metadata_range","get_payload_range","get_transaction","get_vid_common","get_vid_common_metadata","get_vid_common_metadata_range","get_vid_common_range","hash","","","","","","","","header","","","height","","","","","","","","","","","index","","init","","","","","","","","","","","","","","","","","","","","","","internal","into","","","","","","","","","","","","","","","","","","","","","","into_error","","","","","","into_future","is_empty","","","is_pending","iter","layout_raw","","","","","","","","","","","","","","","","","","","","","","leaf","","","len","","map","message","metadata","new","","","","nth","","nth_transaction","","nth_transaction_with_proof","","num_transactions","","","partial_cmp","","payload","payload_hash","","","","pointer_metadata","","","","","","","","","","","","","","","","","","","","","","proof","","","qc","qc_leaf","resolve","resource","","","serialize","","","","","","","","size","","","","source","","status","","subscribe_blocks","","subscribe_leaves","","subscribe_payload_metadata","","subscribe_payloads","","subscribe_vid_common","","subscribe_vid_common_metadata","","timestamp","to_owned","","","","","","","","","","","","","","","","","","","","to_string","","","","transaction","","","","transaction_by_hash","","","transaction_by_hash_with_proof","","transaction_with_proof","try_from","","","","","","","","","","","","","","","","","","","","","","try_into","","","","","","","","","","","","","","","","","","","","","","try_resolve","type_id","","","","","","","","","","","","","","","","","","","","","","vid_common","vid_share","vzip","","","","","","","","","","","","","","","","","","","","","","with_context","with_timeout","height","index","message","resource","","","source","status","AvailabilityProvider","ExtensibleDataSource","FetchingDataSource","FileSystemDataSource","MetricsDataSource","ReadOnly","SqlDataSource","Transaction","","UpdateDataSource","VersionedDataSource","__clone_box","","append","as_mut","as_ref","availability_tests","block_height","","","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","commit","connect","","count_transactions_in_range","create","","default","deref","","deref_mut","","deserialize","","drop","","fetching","fmt","","from","","fs","get_block","get_block_detail","get_block_range","get_block_summaries","get_explorer_summary","get_header_window","get_last_state_height","get_leaf","get_leaf_range","get_path","get_payload","get_payload_metadata","get_payload_metadata_range","get_payload_range","get_search_results","get_transaction","get_transaction_detail","get_transaction_summaries","get_vid_common","get_vid_common_metadata","get_vid_common_metadata_range","get_vid_common_range","handle_event","","init","","inner","inner_mut","insert_merkle_nodes","into","","layout_raw","","metrics","","new","node_tests","payload_size_in_range","persistence_tests","pointer_metadata","","populate_metrics","","read","","reset","","revert","set_last_state_height","sql","status_tests","storage","sync_status","to_owned","","try_from","","try_into","","type_id","","update","","vid_share","vzip","","write","","test_range","test_update","AvailabilityProvider","Builder","FetchingDataSource","Pruner","__clone_box","","append","as_ref","block_height","","borrow","","","borrow_mut","","","build","builder","clone","","clone_into","","clone_to_uninit","","connect","count_transactions_in_range","create","create_with_store","deref","","","deref_mut","","","deserialize","","","disable_aggregator","disable_proactive_fetching","drop","","","fmt","","from","","","get_block","get_block_detail","get_block_range","get_block_summaries","get_explorer_summary","get_header_window","get_last_state_height","get_leaf","get_leaf_range","get_path","get_payload","get_payload_metadata","get_payload_metadata_range","get_payload_range","get_search_results","get_transaction","get_transaction_detail","get_transaction_summaries","get_vid_common","get_vid_common_metadata","get_vid_common_metadata_range","get_vid_common_range","init","","","into","","","layout_raw","","","metrics","new","open","open_with_store","payload_size_in_range","pointer_metadata","","","populate_metrics","read","skip_version","sync_status","to_owned","","try_from","","","try_into","","","type_id","","","update","vid_share","vzip","","","with_active_fetch_delay","with_aggregator_chunk_size","with_chunk_fetch_delay","with_major_scan_interval","with_major_scan_offset","with_max_retry_interval","with_min_retry_interval","with_minor_scan_interval","with_proactive_range_chunk_size","with_range_chunk_size","with_rate_limit","with_retry_multiplier","with_retry_randomization_factor","with_retry_timeout","write","FileSystemDataSource","Transaction","connect","create","","create_with_store","handle_event","open","open_with_store","reset","skip_version","test_counters","test_sync_status","test_timestamp_window","test_vid_monotonicity","test_vid_recovery","test_vid_shares","test_drop_tx","test_reset","test_revert","Builder","Config","Error","Migration","SqlDataSource","Transaction","connect","","create","handle_event","include_migrations","reset","testing","TmpDb","test_metrics","AggregatesStorage","AvailabilityStorage","ExplorerStorage","FailStorage","FileSystemStorage","MerklizedStateHeightStorage","MerklizedStateStorage","NoStorage","NodeStorage","SqlStorage","UpdateAggregatesStorage","UpdateAvailabilityStorage","aggregates_height","block_height","count_transactions_in_range","fail_storage","fs","get_block","get_block_detail","get_block_range","get_block_summaries","get_explorer_summary","get_header","get_header_window","get_last_state_height","get_leaf","get_leaf_range","get_path","get_payload","get_payload_metadata","get_payload_metadata_range","get_payload_range","get_search_results","get_transaction","get_transaction_detail","get_transaction_summaries","get_vid_common","get_vid_common_metadata","get_vid_common_metadata_range","get_vid_common_range","insert_block","insert_leaf","insert_vid","no_storage","payload_size_in_range","pruning","sql","sync_status","update_aggregates","vid_share","Any","FailStorage","FailableAction","GetBlock","GetBlockRange","GetHeader","GetHeaderRange","GetLeaf","GetLeafRange","GetPayload","GetPayloadMetadata","GetPayloadMetadataRange","GetPayloadRange","GetTransaction","GetVidCommon","GetVidCommonMetadata","GetVidCommonMetadataRange","GetVidCommonRange","Transaction","__clone_box","","aggregates_height","block_height","borrow","","","borrow_mut","","","clone","","clone_into","","clone_to_uninit","","commit","count_transactions_in_range","deref","","","deref_mut","","","deserialize","","","drop","","","eq","equivalent","","","","fail","fail_begins_read_only","fail_begins_writable","fail_commits","fail_one_begin_read_only","fail_one_begin_writable","fail_one_commit","fail_one_read","fail_one_write","fail_reads","fail_writes","fmt","","","from","","","","","from_fd","from_filelike","from_into_filelike","from_into_socketlike","from_socketlike","get_block","get_block_range","get_disk_usage","get_header","get_header_window","get_leaf","get_leaf_range","get_payload","get_payload_metadata","get_payload_metadata_range","get_payload_range","get_pruning_config","get_transaction","get_vid_common","get_vid_common_metadata","get_vid_common_metadata_range","get_vid_common_range","init","","","insert_block","insert_leaf","insert_vid","into","","","layout_raw","","","load_pruned_height","metrics","pass","pass_begins_read_only","pass_begins_writable","pass_commits","pass_reads","pass_writes","payload_size_in_range","pointer_metadata","","","prune","read","revert","set_pruning_config","sync_status","to_owned","","try_from","","","try_into","","","type_id","","","update_aggregates","vid_share","vzip","","","write","FileSystemStorage","FileSystemStorageInner","Revert","Transaction","aggregates_height","block_height","borrow","","","borrow_mut","","","commit","","count_transactions_in_range","create","create_with_store","deref","","","deref_mut","","","deserialize","","","drop","","","","fmt","","","from","","","get_block","get_block_range","get_header","get_header_window","get_leaf","get_leaf_range","get_payload","get_payload_metadata","get_payload_metadata_range","get_payload_range","get_transaction","get_vid_common","get_vid_common_metadata","get_vid_common_metadata_range","get_vid_common_range","init","","","insert_block","insert_leaf","insert_vid","into","","","layout_raw","","","metrics","open","open_with_store","payload_size_in_range","pointer_metadata","","","read","revert","","","skip_version","sync_status","try_from","","","try_into","","","type_id","","","update_aggregates","vid_share","vzip","","","write","NoStorage","Transaction","__clone_box","aggregates_height","block_height","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","commit","count_transactions_in_range","default","deref","","deref_mut","","deserialize","","drop","","fmt","from","","get_block","get_block_range","get_header","get_header_window","get_leaf","get_leaf_range","get_payload","get_payload_metadata","get_payload_metadata_range","get_payload_range","get_transaction","get_vid_common","get_vid_common_metadata","get_vid_common_metadata_range","get_vid_common_range","init","","insert_block","insert_leaf","insert_vid","into","","layout_raw","","metrics","payload_size_in_range","pointer_metadata","","read","revert","sync_status","testing","to_owned","try_from","","try_into","","type_id","","update_aggregates","vid_share","vzip","","write","DataSource","NoStorage","","","Sql","","","Storage","Transaction","__clone_box","append","block_height","","","borrow","","","borrow_mut","","","clone","clone_into","clone_to_uninit","commit","connect","count_transactions_in_range","","create","deref","","","deref_mut","","","deserialize","","","drop","","","fmt","from","","","get_block","get_block_range","get_header_window","","get_leaf","get_leaf_range","get_payload","get_payload_metadata","get_payload_metadata_range","get_payload_range","get_transaction","get_vid_common","get_vid_common_metadata","get_vid_common_metadata_range","get_vid_common_range","handle_event","init","","","insert_block","insert_leaf","insert_vid","into","","","layout_raw","","","metrics","payload_size_in_range","","pointer_metadata","","","populate_metrics","read","reset","revert","setup","sync_status","","to_owned","try_from","","","try_into","","","type_id","","","update","vid_share","","vzip","","","write","fetch_from_port","PruneStorage","PrunedHeightStorage","Pruner","PrunerCfg","PrunerConfig","__clone_box","batch_size","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","deref","deref_mut","deserialize","drop","fmt","from","get_disk_usage","get_pruning_config","init","interval","into","layout_raw","load_pruned_height","max_usage","minimum_retention","new","pointer_metadata","prune","pruning_threshold","set_pruning_config","target_retention","to_owned","try_from","try_into","type_id","validate","vzip","with_batch_size","with_interval","with_max_usage","with_minimum_retention","with_pruning_threshold","with_target_retention","ArgumentBuffer","Arguments","Column","Config","Connection","Database","","Db","Error","Executor","FixedLengthParams","Migration","NAME","Params","Pruner","Query","QueryAs","QueryBuilder","QueryResult","Read","Row","SqlStorage","Sqlite","Statement","Transaction","TransactionManager","TransactionMode","TypeInfo","URL_SCHEMES","Value","ValueRef","Write","__clone_box","","","","aggregates_height","applied","applied_on","archive","as_ref","","backtrace","begin","","","bind","","block_height","borrow","","","","","","","","","","borrow_mut","","","","","","","","","","bounds_to_where_clause","builder","chain","checksum","cleanup_test","cleanup_test_dbs","clone","","","","clone_into","","","","clone_to_uninit","","","","cmp","commit","compare","connect","","connection_timeout","context","count_transactions_in_range","create_database","database","database_exists","default","","","","","default_migrations","deref","","","","","","","","","","","","deref_mut","","","","","","","","","","","","deserialize","","","","","","","","","","display","","","downcast","downcast_mut","downcast_ref","drop","","","","","","","","","","","drop_database","eq","equivalent","","","","execute","","execute_many","","","execute_many_with_retries","execute_one","execute_one_with_retries","fetch","","fetch_all","","fetch_many","fetch_one","","fetch_optional","fmt","","","","","","","","","","","","fmt_value_debug","from","","","","","","","","","","","","","from_str","get_block","get_block_detail","get_block_range","get_block_summaries","get_disk_usage","get_explorer_summary","get_feature_gate","get_header","get_header_window","get_last_state_height","get_leaf","get_leaf_range","get_path","get_payload","get_payload_metadata","get_payload_metadata_range","get_payload_range","get_pruning_config","get_search_results","get_transaction","get_transaction_detail","get_transaction_summaries","get_vid_common","get_vid_common_metadata","get_vid_common_metadata_range","get_vid_common_range","header_where_clause","host","idle_connection_timeout","include_dir","include_migrations","init","","","","","","","","","","insert_block","insert_leaf","insert_merkle_nodes","insert_vid","into","","","","","","","","","","is","layout_raw","","","","","","","","","","load_header","load_pruned_height","max_connections","metrics","migrations","min_connections","msg","name","new","no_migrations","param_type_for_id","partial_cmp","password","payload_size_in_range","pointer_metadata","","","","","","","","","","port","prefix","prepare","","prepare_with","prune","pruner_cfg","query","","query_as","","read","reset_schema","return_type_for_id","revert","root_cause","schema","set_applied","set_last_state_height","set_pruning_config","slow_statement_threshold","snapshot","sql","sqlx","sync_status","test_context","testing","tls","to_owned","","","","to_string","","try_from","","","","","","","","","","try_into","","","","","","","","","","type_id","","","","","","","","","","unapplied","update_aggregates","upsert","user","version","vid_share","vzip","","","","","","","","","","write","TestMerkleTreeMigration","TmpDb","borrow","","borrow_mut","","config","deref","","deref_mut","","deserialize","","drop","","","fmt","from","","host","init","","","into","","layout_raw","","persistent","pointer_metadata","","port","start","stop","try_from","","try_into","","type_id","","vzip","","BalanceAmount","","Block","BlockDetail","BlockDetailResponse","BlockIdentifier","BlockNamespaceId","BlockNotFound","BlockRange","BlockSummary","BlockSummaryResponse","Btc","CryptoEnd","CryptoStart","CurrencyCode","CurrencyMismatchError","Error","Esp","Eth","Eur","ExplorerDataSource","ExplorerHeader","ExplorerHistograms","ExplorerSummary","ExplorerSummaryResponse","ExplorerTransaction","FeeAttribution","FiatCurrencyEnd","FiatCurrencyStart","Gbp","GenesisOverview","GetBlockDetail","GetBlockDetailError","","GetBlockSummaries","GetBlockSummariesError","","GetBlockSummariesRequest","GetExplorerSummary","GetExplorerSummaryError","GetSearchResults","GetSearchResultsError","GetTransactionDetail","GetTransactionDetailError","GetTransactionSummaries","GetTransactionSummariesError","","GetTransactionSummariesRequest","Hash","","Height","HeightAndOffset","IntError","InvalidCurrencyCodeError","InvalidLimit","","InvalidQuery","Jpy","Latest","","MonetaryValue","NamespaceId","","None","ProposerId","","QueryError","","","","","","RollUp","SearchResult","SearchResultResponse","TargetNotFound","","TimeError","Timestamp","TimestampConversionError","TokenEnd","TokenStart","TransactionDetail","TransactionDetailResponse","TransactionIdentifier","TransactionNamespaceId","TransactionNotFound","TransactionRange","TransactionSummariesResponse","TransactionSummary","TransactionSummaryFilter","Unimplemented","","","","","","Usd","WalletAddress","","Xxx","__clone_box","","","","","","","","","","","","","","","","add","as_error","","","","","","","","as_error_source","","","","","","","","","","","","","","","","block_confirmed","block_detail","block_heights","block_reward","block_size","block_summaries","block_time","block_transactions","blocks","","borrow","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","btc","clone","","","","","","","","","","","","","","","","clone_into","","","","","","","","","","","","","","","","clone_to_uninit","","","","","","","","","","","","","","","","cmp","compare","currency","","currency1","currency2","default","define_api","deref","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","deref_mut","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","deserialize","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","drop","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","eq","","","","","","","","","","","","","","equivalent","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","esp","eth","explorer_summary","fee_details","fee_info_account","fee_info_balance","fee_recipient","fees","filter","fmt","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","from","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","from_row","","genesis_overview","get_block_detail","get_block_summaries","get_explorer_summary","get_search_results","get_transaction_detail","get_transaction_summaries","hash","","","","height","","","","histograms","init","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","into","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","into_resettable","is_crypto","is_fiat","is_token","latest_block","latest_blocks","latest_transactions","layout_raw","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","namespace_id","namespace_ids","new","num_blocks","num_transactions","","","","","offset","","partial_cmp","pointer_metadata","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","proposer_id","","","range","reward_balance","rollups","","search_results","sequencing_fees","serialize","","","","","","","","","","","","","","","","","","","","","","","","","","","","significant_digits","size","","","source","","","","","","","","status","","","","","","","sub","target","","","time","","","","to_owned","","","","","","","","","","","","","","","","to_string","","","","","","","","","","","","","","transaction_detail","transaction_summaries","transactions","","try_from","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","try_into","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","type_id","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","usd","value","vzip","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Callback","Fetcher","LocalCallback","Provider","Request","__clone_box","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","drop","fmt","from","init","into","layout_raw","new","pointer_metadata","provider","request","run","","spawn_fetch","to_owned","try_from","try_into","type_id","vzip","AnyProvider","NoFetching","Provider","QueryServiceProvider","TestProvider","__clone_box","","","","block","borrow","","","","borrow_mut","","","","clone","","","","clone_into","","","","clone_to_uninit","","","","default","","deref","","","","deref_mut","","","","deserialize","","","","drop","","","","fail","fetch","","","","","","","","","fmt","","","","from","","","","init","","","","into","","","","layout_raw","","","","new","","pointer_metadata","","","","to_owned","","","","try_from","","","","try_into","","","","type_id","","","","unblock","unfail","vzip","","","","with_block_provider","with_leaf_provider","with_provider","with_vid_common_provider","LeafRequest","PayloadRequest","Request","Response","VidCommonRequest","__clone_box","","","borrow","","","borrow_mut","","","clone","","","clone_into","","","clone_to_uninit","","","deref","","","deref_mut","","","deserialize","","","drop","","","eq","","","equivalent","","","","","","","","","","","","fmt","","","from","","","","get_hash","","","hash","","","init","","","into","","","layout_raw","","","pointer_metadata","","","to_owned","","","try_from","","","try_into","","","type_id","","","vzip","","","Commit","","Custom","Digest","Entry","Error","Index","Key","MerklizedState","MerklizedStateDataSource","MerklizedStateHeightPersistence","Options","Query","Request","Snapshot","T","UpdateStateData","__clone_box","","api_path","as_error","as_error_source","","backtrace","borrow","","","borrow_mut","","","cause","clone","","clone_into","","clone_to_uninit","","cmp","compare","default","define_api","deref","","","deref_mut","","","description","deserialize","","","","drop","","","eq","equivalent","","","","extensions","fmt","","","","from","","","","","","get_hash","get_last_state_height","get_path","hash","header_state_commitment_field","init","","","insert_merkle_nodes","insert_path","into","","","layout_raw","","","partial_cmp","pointer_metadata","","","serialize","set_last_state_height","source","state_type","status","to_owned","","to_string","","tree_height","try_from","","","try_into","","","type_id","","","vzip","","","message","source","","status","Counter","CounterFamily","Gauge","GaugeFamily","Histogram","HistogramFamily","MetricsError","NoSuchMetric","NoSuchSubgroup","Prometheus","PrometheusMetrics","TextFamily","__clone_box","","","","","","","","add","add_point","as_error","as_error_source","","backtrace","borrow","","","","","","","","","borrow_mut","","","","","","","","","cause","clone","","","","","","","","clone_into","","","","","","","","clone_to_uninit","","","","","","","","counter_family","create","","","","create_counter","create_gauge","create_histogram","create_text","default","deref","","","","","","","","","deref_mut","","","","","","","","","description","deserialize","","","","","","","","","drop","","","","","","","","","export","fmt","","","","","","","","","","from","","","","","","","","","","gauge_family","","get","","","","","get_counter","get_counter_family","get_gauge","get_histogram","get_histogram_family","get_subgroup","histogram_family","init","","","","","","","","","into","","","","","","","","","layout_raw","","","","","","","","","mean","pointer_metadata","","","","","","","","","sample_count","set","source","subgroup","sum","text_family","to_owned","","","","","","","","to_string","try_from","","","","","","","","","try_into","","","","","","","","","type_id","","","","","","","","","update","vzip","","","","","","","","","name","namespace","path","source","BlockHash","BlockId","Custom","CustomSnafu","Error","Hash","Height","NodeDataSource","Options","Query","QuerySnafu","QueryVid","QueryVidSnafu","QueryWindow","QueryWindowSnafu","Request","RequestSnafu","SyncStatus","Time","TimeWindowQueryData","WindowStart","__clone_box","","","","","","","","","api_path","as_error","as_error_source","","backtrace","block","block_height","borrow","","","","","","","","","","borrow_mut","","","","","","","","","","build","cause","clone","","","","","","","","","clone_into","","","","","","","","","clone_to_uninit","","","","","","","","","cmp","compare","count_transactions","","count_transactions_in_range","default","","define_api","deref","","","","","","","","","","deref_mut","","","","","","","","","","description","deserialize","","","","","","","","","","","","","drop","","","","","","","","","","end","eq","","equivalent","","","","","","","","extensions","fail","fmt","","","","","","","","","","from","","","","","","","","","","","","","","","fully_synced","get_hash","get_header_window","hash","init","","","","","","","","","","internal","into","","","","","","","","","","into_error","","","","","is_fully_synced","layout_raw","","","","","","","","","","message","missing_blocks","missing_leaves","missing_vid_common","missing_vid_shares","next","partial_cmp","payload_size","","payload_size_in_range","pointer_metadata","","","","","","","","","","prev","pruned_height","serialize","","","source","start","status","","sync_status","to_owned","","","","","","","","","to_string","try_from","","","","","","","","","","try_into","","","","","","","","","","type_id","","","","","","","","","","vid_share","vzip","","","","","","","","","","window","block","end","message","source","","","","start","status","Error","HasMetrics","Internal","Options","Request","StatusDataSource","UpdateStatusData","__clone_box","api_path","as_error","as_error_source","","backtrace","block_height","borrow","","borrow_mut","","cause","clone","clone_into","clone_to_uninit","consensus_metrics","","default","define_api","deref","","deref_mut","","description","deserialize","","","drop","","elapsed_time_since_last_decide","","extensions","fmt","","from","","","","init","","into","","layout_raw","","metrics","pointer_metadata","","populate_metrics","serialize","source","status","success_rate","","to_owned","to_string","try_from","","try_into","","type_id","","vzip","","reason","source","BackgroundTask","Task","__clone_box","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","deref","","deref_mut","","deserialize","","drop","","","fmt","","from","","init","","into","","join","layout_raw","","pointer_metadata","","spawn","","to_owned","try_from","","try_into","","type_id","","vzip","","consensus","mocks","setup_test","sleep","DataSourceLifeCycle","MockDataSource","MockNetwork","MockSqlDataSource","NUM_NODES","Storage","TestableDataSource","borrow","borrow_mut","connect","create","data_source","data_source_index","deref","deref_mut","deserialize","drop","","from","handle","handle_event","init","","init_with_config","into","layout_raw","num_nodes","pointer_metadata","proposer","reset","setup","shut_down","spawn","start","storage","submit_transaction","try_from","try_into","type_id","vzip","MockAuctionResults","MockBase","MockHeader","MockMembership","MockMerkleTree","MockNetwork","MockNodeImpl","MockPayload","MockQuorumProposal","MockStorage","MockTransaction","MockTypes","MockVersions","__clone_box","","","block_header","block_number","borrow","","","borrow_mut","","","builder_commitment","clone","","","clone_into","","","clone_to_uninit","","","cmp","","compare","","decided_upgrade_certificate","default","","delay_config","deref","","","deref_mut","","","deserialize","","","","","drop","","","eq","","equivalent","","","","","","","","fee_info_account","fee_info_balance","fmt","","","from","","","get_hash","","hash","","header_state_commitment_field","height","init","","","insert_path","into","","","iter","justify_qc","layout_raw","","","len","metadata","mock_transaction","namespace_id","namespace_ids","partial_cmp","","payload_commitment","pointer_metadata","","","proposal_certificate","proposer_id","random","reward_balance","serialize","","should_return_err","state_type","timestamp","","to_owned","","","transaction_with_proof","transactions","tree_height","try_from","","","try_into","","","type_id","","","upgrade_certificate","urls","view_number","vzip","","","HeightIndexed","height"],"q":[[0,"hotshot_query_service"],[303,"hotshot_query_service::Error"],[310,"hotshot_query_service::QueryError"],[311,"hotshot_query_service::availability"],[1088,"hotshot_query_service::availability::Error"],[1096,"hotshot_query_service::data_source"],[1215,"hotshot_query_service::data_source::availability_tests"],[1217,"hotshot_query_service::data_source::fetching"],[1338,"hotshot_query_service::data_source::fs"],[1349,"hotshot_query_service::data_source::node_tests"],[1355,"hotshot_query_service::data_source::persistence_tests"],[1358,"hotshot_query_service::data_source::sql"],[1371,"hotshot_query_service::data_source::sql::testing"],[1372,"hotshot_query_service::data_source::status_tests"],[1373,"hotshot_query_service::data_source::storage"],[1423,"hotshot_query_service::data_source::storage::fail_storage"],[1564,"hotshot_query_service::data_source::storage::fs"],[1655,"hotshot_query_service::data_source::storage::no_storage"],[1725,"hotshot_query_service::data_source::storage::no_storage::testing"],[1827,"hotshot_query_service::data_source::storage::no_storage::testing::Storage"],[1828,"hotshot_query_service::data_source::storage::pruning"],[1874,"hotshot_query_service::data_source::storage::sql"],[2249,"hotshot_query_service::data_source::storage::sql::testing"],[2290,"hotshot_query_service::explorer"],[3345,"hotshot_query_service::fetching"],[3377,"hotshot_query_service::fetching::provider"],[3487,"hotshot_query_service::fetching::request"],[3577,"hotshot_query_service::merklized_state"],[3690,"hotshot_query_service::merklized_state::Error"],[3694,"hotshot_query_service::metrics"],[3934,"hotshot_query_service::metrics::MetricsError"],[3938,"hotshot_query_service::node"],[4237,"hotshot_query_service::node::Error"],[4246,"hotshot_query_service::status"],[4316,"hotshot_query_service::status::Error"],[4318,"hotshot_query_service::task"],[4361,"hotshot_query_service::testing"],[4365,"hotshot_query_service::testing::consensus"],[4405,"hotshot_query_service::testing::mocks"],[4539,"hotshot_query_service::types"],[4541,"dyn_clone::sealed"],[4542,"core::error"],[4543,"hotshot_query_service::error"],[4544,"std::backtrace"],[4545,"core::option"],[4546,"hotshot_types::data"],[4547,"hotshot_types::traits::node_implementation"],[4548,"alloc::string"],[4549,"core::convert"],[4550,"tide_disco::status"],[4551,"core::clone"],[4552,"hotshot_types::message"],[4553,"committable"],[4554,"hotshot_query_service::resolvable"],[4555,"rand_core"],[4556,"core::result"],[4557,"serde::de"],[4558,"rkyv::with"],[4559,"hotshot_types::simple_vote"],[4560,"hotshot_types::simple_certificate"],[4561,"async_lock::rwlock"],[4562,"alloc::sync"],[4563,"utils::anytrace"],[4564,"core::fmt"],[4565,"hotshot_query_service::explorer::query_data"],[4566,"sqlx_core::error"],[4567,"std::os::fd::owned"],[4568,"io_lifetimes::portability"],[4569,"core::hash"],[4570,"core::marker"],[4571,"core::alloc::layout"],[4572,"arc_swap::access"],[4573,"core::future::future"],[4574,"alloc::boxed"],[4575,"core::pin"],[4576,"futures_core::future"],[4577,"core::ops::function"],[4578,"hotshot::types::handle"],[4579,"hotshot_query_service::availability::data_source"],[4580,"hotshot_query_service::data_source::update"],[4581,"hotshot_query_service::node::data_source"],[4582,"hotshot_query_service::status::data_source"],[4583,"vbs::version"],[4584,"serde::ser"],[4585,"core::any"],[4586,"anyhow"],[4587,"hotshot_query_service::availability::query_data"],[4588,"core::cmp"],[4589,"core::iter::traits::iterator"],[4590,"hotshot_types::vid"],[4591,"hotshot_query_service::availability::fetch"],[4592,"snafu"],[4593,"tide_disco::api"],[4594,"tide_disco::method"],[4595,"tide_disco::request"],[4596,"futures_core::stream"],[4597,"core::ops::range"],[4598,"core::time"],[4599,"hotshot_query_service::data_source::extension"],[4600,"hotshot_query_service::data_source::metrics"],[4601,"hotshot_query_service::explorer::data_source"],[4602,"hotshot_query_service::merklized_state::data_source"],[4603,"tagged_base64"],[4604,"hotshot_types::event"],[4605,"core::default"],[4606,"jf_merkle_tree::internal"],[4607,"alloc::vec"],[4608,"hotshot_types::traits::metrics"],[4609,"std::path"],[4610,"atomic_store::atomic_store"],[4611,"core::ops::deref"],[4612,"atomic_store::error"],[4613,"hotshot_query_service::data_source::storage::sql::transaction"],[4614,"time::offset_date_time"],[4615,"refinery_core::runner"],[4616,"hotshot_query_service::data_source::storage::sql::queries"],[4617,"hotshot_query_service::data_source::storage::sql::db"],[4618,"sqlx_core::encode"],[4619,"sqlx_core::types"],[4620,"sqlx_core::executor"],[4621,"sqlx_core::database"],[4622,"sqlx_sqlite::database"],[4623,"sqlx_core::type_checking"],[4624,"sqlx_postgres::options"],[4625,"core::iter::traits::collect"],[4626,"sqlx_core::from_row"],[4627,"sqlx_core::testing"],[4628,"refinery_core::error"],[4629,"hotshot_query_service::explorer::monetary_value"],[4630,"hotshot_query_service::explorer::currency"],[4631,"hotshot_query_service::explorer::traits"],[4632,"core::num::error"],[4633,"time::error::component_range"],[4634,"clap_builder::builder::resettable"],[4635,"async_lock::semaphore"],[4636,"backoff"],[4637,"hotshot_query_service::fetching::provider::testing"],[4638,"hotshot_query_service::fetching::provider::any"],[4639,"hotshot_query_service::fetching::provider::query_service"],[4640,"url"],[4641,"jf_merkle_tree"],[4642,"core::str::traits"],[4643,"ark_serialize"],[4644,"prometheus::errors"],[4645,"hotshot_query_service::node::query_data"],[4646,"tokio::runtime::task::error"],[4647,"hotshot_types::signature_key"],[4648,"hotshot_types"],[4649,"include_dir_macros"]],"i":"`j0AM``A``2``2`0`20`1``````2````Ab3AhAjAl4Bf757755`Cf86555584326015843260143288658432615843261584326155Bn66`16954371226954371297669954377126954371266666`6543`66669954377269999999543777122222222626666`69543712`````96954371254366954371222`3``1666954371212`69797`971``695437269769543712695437120669543712`66669543712BNhBNjBNlBNnBO`BOb5BOd`````Ij`El```0`0`0`MnN`M``3`0```421`1`4`4Ob``04`````1````5`532K`KfKdNbKjKlKnNdNfNhNjNlL`LbLdLfLhElOnJnKd3003303K`KfKjKlKnNhNj2Ob:MnN`98:Nb876NdNf76NlL`LbLdLfLhElNhNj?>=<;:9>=<;:M`06:MnN`:98Nb876NdNf76NlL`LbLdLfLhEl;:K`KfKd=NhNj>=<;:98MnN`987Nb765NdNf65NlL`LbLdLfLhEl;:?;:ObKjOn`20>=K`KfKd?4KlKnNdNfNhNjNlL`LbLdLfLhElObOnMnN`K`KfKdNbKjKlKnNdNfNhNjNlL`LbLdLfLhEl?0ObOnMnN`K`Kf0KdNb0Kj0Kl0Kn0Nd0Nf0NhNjNlL`LbLdLfLhEl0ObOnMnN`K`KfKdNbKjKlKnNdNfNhNjNlL`LbLdLfLhElM`0?MnN`KfNbKjKlKnNdNfNhNj::::9999888877776666555544443333222211110000OnL`LbLdLfLh5Mn0N`0K`KfKd0NbKjKlKnNdNfNhNjNlL`LbLdLfLhEl0ObOnMn00N`00K`0KfKdNbKj0KlKnNd0NfNh0Nj0NlL`LbLdLfLhEl00Kf?>=980?>=Ij0MnN`22222222222103NbKjKnNdNh841K`954Kl32Nj30>5>ObOn;:4=Kd:9487Nf74NlL`LbLdLfLhEl0:9MnN`?Kf;NbKjKlKnNd?NhNjNlL`LbLdLfLhEl654321ObM`0?101OnMnN`K`KfKdNbKjKlKnNdNfNhNjNlL`LbLdLfLhElKfK`KdM`NbOb71451Kl3333332NdNhMnN`6:64Nj6On32;<:8Kj7Kn7Nf74NlL`LbLdLfLhElM`09KfKdOb9872Nb>Kl>Nd>72Kj1Nh699:Ij00000000000AC`MnN`K`<;968Kn8Nf7NjNlL`LbLdLfLhEl<;Kd1M`0Nb<110111ObOnMnN`K`Kf86KjKlKnNdNfNhNjNlL`LbLdLfLhElObOnMnN`K`KfKdNbKjKlKnNdNfNhNjNlL`LbLdLfLhElOb0OnMnN`K`KfKdNbKjKlKnNdNfNhNjNlL`LbLdLfLhElK`0ObOnMnN`4KfKdNbKjKlKnNdNfNhNjNlL`LbLdLfLhElOb0BOf0BOhBOjBOlBOnC@`4`````Jb``0``ACdACf111`1101010101010ACh21221121212121`2121`222222222222222222222221212222121212`2`2121322102```221212121Il333243``````AFhAG`1111AFl21021022121212222021021021000212102122222222222222222222220210210212022202122222102102102122021000000000000002``AH`00000000```````````````AHb000`0```````````````AHdAHf0``AHhAHj10012AHl22AHn333323223333AI`00`5``5AIb6AIh``000000000000000`0AIjAIf02102102121210021021021021022222111111111112102111011111001000000001000002100002102100111111102101101021210210210002101````AJb0AJhAGj210222200102102102102210210222222222222222210222210210200021020AJd3313213213213332131``AKdAKb00101111001010101011010000000000000000100001011001100`101010100011`C@bAKhAKf210``001002102100001010021021021021002100010000000000000210111210210010210000101002102102100102100C@d``AFn``AIl00000000000001AIn1111AJ`22223212222222222222ANf00`0`ANd`````1`````1`1``1`1`1111`ALhAMjAMlAGbAL`441AGf00ALb54ALjALn438ANj18756AMnAN`6;23:97810386;22;:98;:98;:98;7;818672823:980`66;23:97781066;23:9778106;23:978105:966666;23:978102;;;;;<<<<7777<<<<<<<<66;;23:978102666;23:978810877771727777777777177777777388``6;23:9781077776;23:9781066;23:978107781886;682;876;23:978108;<<<18`3`3182768;7182;`72`8;:986;6;23:978106;23:978106;23:97810;778;76;23:978101``C@fB@`1001010101000100100101001000010101010`BDfBBh````BAb```B@j00```000```````000`Fb`BAj1`0`1`1`1`1`0`ACjADl10Ff`BAdBAhBAl854`;BDn;`<:3BAf382<``435``::````0````;40382:`=:B@fB@h>22==99<<00;;11BBdBCbBBlBAn1BCd22BBjBC`?>B@j>ACjADl?>=6BB`FfBBbBBn;BAbBAdBAfBAhBAjBAlFbBCbBCdBCfBChBCjBClB@fB@hB@jB@bACjADlB@lB@nBA`BAnBB`FfBBbBBdBBfACnBBhADnBBjBBlBBnBC`BAbBAdBAfBAhBAjBAlFbBCbBCdBCfBChBCjBClB@bB@fB@hB@j3ACjADlB@lB@nBA`BAbBAdBAfBAhBAjBAlFb>==>ADn`?>=B@b=<;:9BAnBB`FfBBbBBdBBfACnBBh9BBjBBlBBnBC`BAbBAdBAfBAhBAjBAlFbBCbBCdBCfBChBCjBClB@fB@hB@jB@bACjADlB@lB@nBA`BAnBB`FfBBbBBdBBfACnBBhADnBBjBBlBBnBC`BAbBAdBAfBAhBAjBAlFbBCbBCdBCfBChBCjBClB@f0B@h0B@j0B@b0ACjADlB@lB@nBA`0BAn0BB`0FfBBb0BBd0BBf0ACnBBh0ADnBBj0BBl0BBn0BC`0BAb0BAd0BAf0BAh0BAj0BAl0Fb0BCb0BCd0BCf0BCh0BCj0BCl0B@fB@hB@jB@bACjADlB@lB@nBA`BAnBB`FfBBbBBdBBfACnBBhADnBBjBBlBBnBC`BAbBAdBAfBAhBAjBAlFbBCbBCdBCfBChBCjBClB@jB@bACjADlB@lB@nBA`BAnBB`FfBBbBBdBBfACn====<<<<;;;;::::9999888877776666555544443333222211110000<=FfBBb<;ACnBBhADnBBjBBlBBnBC`BAbBAdBAfBAhBAjBAlFbBCbBCdBCfBChBCjBClB@fB@hB@jB@bACjADlB@lB@nBA`BAnBB`FfBBbBBdBBfACnBBhADnBBjBBlBBnBC`BAbBAdBAfBAhBAjBAlFbBCbBCdBCfBChBCjBClB@j000???B@fB@h2B@bACjADlB@lB@nBA`BAnBB`FfBBbBBdBBfACnBBhADnBBjBBlBBnBC`BAbBAdBAfBAhBAjBAlFbBCbBCdBCfBChBCjBClBDnBDfB@bB@lB@nBAnBB`BBdBBf10B@jB@fB@h29ACjADl:9BA`98FfBBb98ACnBBhADnBBjBBlBBnBC`BAbBAdBAfBAhBAjBAlFbBCbBCdBCfBChBCjBClBDfBAnBB`ADn3BBfBBj6BBdB@fB@hB@jB@bBA`:9BBb68BBh8BBlBBnBC`BAbBAdBAfBAhBAjBAlFbBCbBCdBCfBChBCjBClB@jBAnBB`BBdFfBAbBAdBAfBAhBAjBAlFb6543210B@bB@lB@nBBb>=BBbBBdBBf0ACnBBhADnBBjBBlBBnBC`BAbBAdBAfBAhBAjBAlFbBCbBCdBCfBChBCjBClB@fB@hB@jB@bACjADlB@lB@nBA`BAnBB`FfBBbBBdBBfACnBBhADnBBjBBlBBnBC`BAbBAdBAfBAhBAjBAlFbBCbBCdBCfBChBCjBClB@fB@hB@jB@bACjADlB@lB@nBA`BAnBB`FfBBbBBdBBfACnBBhADnBBjBBlBBnBC`BAbBAdBAfBAhBAjBAlFbBCbBCdBCfBChBCjBClB@b0B@fB@hB@j3ACjADlB@lB@nBA`BAnBB`FfBBbBBdBBfACnBBhADnBBjBBlBBnBC`BAbBAdBAfBAhBAjBAlFbBCbBCdBCfBChBCjBCl`````BE`0000000000000000``BEfBEh222222`````BF`BFbBEnBFd1321032103210321032103032103210321032101BEl444333214321432143214321432132432143214321432143212243214444```BEj`BFfBFjBFh2102102102102102102102102102102222111100002102100210210210210210210210210210210210ADdADfF`11`21````00`1`20BFn11113013011313131330`3013011301130133333033113011113ADbADh54523AEl563463466344045464645634634634634C@hC@jC@l2```````BIb00``AEnBHnBIdBI`BIfBIhBIjBIl6488888765432108765432108765432107654321076543210732107777787654321087654321088765432108765432107887654321088765432107765321777777787654321087654321087654321048765432104587477654321088765432108765432108765432105876543210C@n0CA`CAb``En``AD`0``1`1`1`1``0``0BKdBKfBKhBKjBKlBKnBKb8BL`99993In987165432:987165432:2:98765432:98765432:98765432:8800071`987165432:987165432::98877165432::987165432:387888877771298765432::99877165432::::8808987165432::987165432:654328987165432:2888878000987165432:7887::3:2098765432::987165432:987165432:987165432:0987165432:7CAdCAfCAhCAjCAl4332``Ej`0``0BLf1111J`12122222001`1212212212001221222121212AF`23BLh444224434343434CAnCB```BLj0BLl10111101010100101010100101010110101010`````````BM``AKj01100000000010000000011000000000`````````````AE`BMdBMbCBbBN`43243204324324324242CBd530543543554335435355553333115435435353BNb26540654BNd476503`BMn486487654448632448761128768768765CBf6987`BLd","f":"`````````````````````````````{{bd}f}000000{b{{b{h}}}}00000``{{{b{j}}}{{n{{b{l}}}}}}{{{b{A`}}}{{n{{b{l}}}}}}{{{b{{Ab{c}}}}}bAd}{{{b{Af{Ab{c}}}}}{{b{Af}}}Ad}{{{b{{Ab{c}}}}}nAd}{b{{b{c}}}{}}0000000{{{b{Af}}}{{b{Afc}}}{}}0000000{AhA`}{AjA`}{{{Al{c}}}A`{{B`{An}}}}{{BbAn}j}{{{b{j}}}{{n{{b{h}}}}}}{{{b{A`}}}{{n{{b{h}}}}}}{{{b{{Ab{c}}}}}{{Ab{c}}}{BdAd}}{{{b{j}}}j}{{{b{Ah}}}Ah}{{{b{Aj}}}Aj}{{{b{{Al{c}}}}}{{Al{c}}}Bd}{{{b{A`}}}A`}{{{b{{Bf{c}}}}}{{Bf{c}}}Bd}{{b{b{Afc}}}f{}}000000{bf}000000{{{b{{Ab{c}}}}{b{{Bh{ce}}}}}{{Bj{{Ab{c}}}}}AdBl}{{{b{{Ab{c}}}}}{{Bj{{Ab{c}}}}}Ad}{{{b{Bn}}}{{Bj{c}}}C`}{b{{Bj{c}}}{}}{{{b{{Ab{c}}}}{b{AfCb}}Cd}{}Ad}`{{}Cf}{Ch{{b{c}}}{}}0000000{{{b{{Bf{c}}}}}{{b{e}}}{}{}}{Ch{{b{Afc}}}{}}0000000{{{b{j}}}{{b{Cj}}}}{{{b{A`}}}{{b{Cj}}}}{c{{Cl{{Ab{e}}}}}CnAd}{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}0{c{{Cl{j}}}Cn}111{c{{Cl{A`}}}Cn}222{Chf}0000000{{{b{{Ab{c}}}}{b{{Ab{c}}}}}DbAd}{{b{b{c}}}Db{}}000`{{{b{{Ab{c}}}}{b{{Ab{c}}}}{b{{Dl{{Dj{{n{{Dh{c{Dd{c}}Df}}}}}}}}}}}{{Cl{fDn}}}Ad}{Ah{{Cl{cA`}}}{}}{Aj{{Cl{cA`}}}{}}{{{Al{c}}}{{Cl{eA`}}}{{B`{An}}}{}}`{{{b{Af{Ab{c}}}}Ch}{{Cl{fE`}}}Ad}{{{b{Af{Ab{c}}}}}fAd}{{{b{{Ab{c}}}}{b{AfEb}}}{{Cl{fEd}}}Ad}{{{b{{Ab{c}}}}{b{AfEb}}}{{Cl{fEd}}}{EfAd}}{{{b{j}}{b{AfEb}}}Eh}0{{{b{Ah}}{b{AfEb}}}Eh}{{{b{Aj}}{b{AfEb}}}Eh}{{{b{{Al{c}}}}{b{AfEb}}}EhEf}{{{b{A`}}{b{AfEb}}}Eh}0{{{b{{Bf{c}}}}{b{AfEb}}}EhEf}{cc{}}{Ejj}{Elj}{Enj}{F`j}{Fbj}{{{Fd{AnBb}}}j}6666{FfA`}{FhA`}88{Fjc{}}{c{{Bf{c}}}{}}{{{Dl{c}}}{{Bf{c}}}{}};{Flc{}}0{ceFn{}}{ceG`{}}{{{b{{Gb{c}}}}}{{Ab{c}}}Ad}3{{bb}{{Ab{c}}}Ad}{{{b{c}}{b{e}}}Cd{GdGf}Gh}{{{b{{Ab{c}}}}{b{Afe}}}fAdGj}{{{b{{Ab{c}}}}}CdAd}`{{}Ch}0000000`````{cjGl}{{}c{}}0000000{{Ahc}A`{}}{{Ajc}A`{}}{{{Al{c}}e}A`{{B`{An}}}{}}{{{b{{Ab{c}}}}}{{Dh{c{Gn{c}}H`}}}Ad}{{}{{Cl{HbHd}}}}0000000{b}{b{{Hf{c}}}{}}`````{{{b{{Ab{c}}}}}{{Bj{{Ab{c}}}}}Ad}{{{b{{Ab{c}}}}}{}Ad}33333333`{{{b{{Bf{c}}}}i}{{Hl{{Hj{Hh}}}}}{HnI`}{}{}{Hn{If{{b{e}}}{{Ib{{Id{g}}}}}}}}{{Cfe{Ih{cgi}}k}{{Cl{fj}}}Ad{{Ij{c}}{Il{c}}{In{c}}J`JbHnI`}{{Jd{c}}}BlJf}{{{b{{Ab{c}}}}e}Cl{AdJh}Jj}{{{b{j}}c}ClJj}{{{b{A`}}c}ClJj}{{{b{j}}}{{n{{b{h}}}}}}{{{b{A`}}}{{n{{b{h}}}}}}`{{{b{j}}}Bb}{{{b{A`}}}Bb}```{bc{}}000000{bAn}00{c{{Cl{e}}}{}{}}0000000{{}{{Cl{c}}}{}}0000000{Bn{{Cl{cBn}}}C`}{{}{{Cl{cc}}}{}}{bJl}0000000`{{{b{Af{Ab{c}}}}}nAd}{{{b{{Ab{c}}}}}{{n{{Dh{c{Dd{c}}Df}}}}}Ad}{{{b{{Ab{c}}}}}{}Ad}{{}c{}}0000000``````````````````````````````````````````````````````````````{{bd}f}0000000000000000000`{{{b{Jn}}{K`{c}}}{{`{Hn{Hh{}{{Ib{{Kb{f}}}}}}}}}Ad}{b{{b{h}}}}00000{{{b{{Kd{c}}}}}{{n{{b{l}}}}}Ad}{{{b{El}}}{{n{{b{l}}}}}}`{{{b{{Kf{c}}}}}{{Kh{c}}}Ad}{{{b{{Kj{c}}}}}{{Kh{c}}}Ad}{{{b{{Kl{c}}}}}{{Kh{c}}}Ad}{{{b{{Kn{c}}}}}{{Kh{c}}}Ad}``{{{b{{Kn{c}}}}}CdAd}{b{{b{c}}}{}}000000000000000000000{{{b{Af}}}{{b{Afc}}}{}}000000000000000000000{{{L`{c}}}El{{B`{An}}}}{{{Lb{c}}}El{{B`{An}}}}{{{Ld{c}}}El{{B`{An}}}}{{{Lf{ce}}}El{{B`{Cd}}}{{B`{Cd}}}}{{{Lh{ce}}}El{{B`{An}}}{{B`{Bb}}}}{{{b{{M`{}{{Lj{c}}{Ll{e}}{Ln{g}}}}}}{b{i}}{Bj{k}}}{{n{c}}}{BdEfMbMdMfJhMhHnI`}{{Ml{}{{Mj{c}}}}}{BdEfMbMdJhMhHnI`}{}{}}0{{{b{{Kd{c}}}}}{{n{{b{h}}}}}Ad}{{{b{El}}}{{n{{b{h}}}}}}{{{b{{Mn{c}}}}}{{Mn{c}}}Ad}{{{b{{N`{c}}}}}{{N`{c}}}Ad}{{{b{{K`{c}}}}}{{K`{c}}}{BdAd}}{{{b{{Kf{c}}}}}{{Kf{c}}}{BdAd}}{{{b{{Kd{c}}}}}{{Kd{c}}}{BdAd}}{{{b{{Nb{c}}}}}{{Nb{c}}}{BdAd}}{{{b{{Kj{c}}}}}{{Kj{c}}}{BdAd}}{{{b{{Kl{c}}}}}{{Kl{c}}}{BdAd}}{{{b{{Kn{c}}}}}{{Kn{c}}}{BdAd}}{{{b{{Nd{c}}}}}{{Nd{c}}}{BdAd}}{{{b{{Nf{c}}}}}{{Nf{c}}}{BdAd}}{{{b{{Nh{c}}}}}{{Nh{c}}}{AdBd}}{{{b{{Nj{c}}}}}{{Nj{c}}}{AdBd}}{{{b{Nl}}}Nl}{{{b{{L`{c}}}}}{{L`{c}}}Bd}{{{b{{Lb{c}}}}}{{Lb{c}}}Bd}{{{b{{Ld{c}}}}}{{Ld{c}}}Bd}{{{b{{Lf{ce}}}}}{{Lf{ce}}}BdBd}{{{b{{Lh{ce}}}}}{{Lh{ce}}}BdBd}{{{b{El}}}El}{{b{b{Afc}}}f{}}0000000000000000000{bf}0000000000000000000{{{b{{Mn{c}}}}{b{{Mn{c}}}}}NnAd}{{{b{{N`{c}}}}{b{{N`{c}}}}}NnAd}{{{b{{Kl{c}}}}}{{b{O`}}}Ad}{{b{b{c}}}Nn{}}0{{{Ob{c}}g}{{Cl{ce}}}{}{hOd}{{Oj{e}{{Of{Oh}}}}}}{{{b{{Kj{c}}}}}{{b{{Ol{c}}}}}Ad}{{}On}{{{b{On}}c}{{Cl{{A@`{eElc}}A@b}}}Jf{HnI`A@d}}{Ch{{b{c}}}{}}000000000000000000000{Ch{{b{Afc}}}{}}000000000000000000000{{{b{{Kd{c}}}}}{{b{Cj}}}Ad}{{{b{El}}}{{b{Cj}}}}{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}0000{c{{Cl{{Kf{e}}}}}CnAd}11{c{{Cl{{Nb{e}}}}}CnAd}2{c{{Cl{{Kj{e}}}}}CnAd}33{c{{Cl{{Kl{e}}}}}CnAd}4{c{{Cl{{Kn{e}}}}}CnAd}{c{{Cl{{Nd{e}}}}}CnAd}66{c{{Cl{{Nf{e}}}}}CnAd}77777777{c{{Cl{El}}}Cn}8{Chf}000000000000000000000{{{b{{M`{}{{Lj{c}}{Ll{e}}{Ln{g}}}}}}{b{i}}}{{Hj{Ml}}}{BdEfMbMdMfJhMhHnI`}{{Ml{}{{Mj{c}}}}}{BdEfMbMdJhMhHnI`}{}}0{{{b{{Nb{c}}}}}{{`{{Ml{}{{Mj{{Fd{{A@f{c}}{A@h{c}}}}}}}}}}}Ad}{{{b{{Mn{c}}}}{b{{Mn{c}}}}}DbAd}{{{b{{N`{c}}}}{b{{N`{c}}}}}DbAd}{{{b{{Kf{c}}}}{b{{Kf{c}}}}}Db{MbAd}}{{{b{{Nb{c}}}}{b{{Nb{c}}}}}Db{MbAd}}{{{b{{Kj{c}}}}{b{{Kj{c}}}}}Db{MbAd}}{{{b{{Kl{c}}}}{b{{Kl{c}}}}}Db{MbAd}}{{{b{{Kn{c}}}}{b{{Kn{c}}}}}Db{MbAd}}{{{b{{Nd{c}}}}{b{{Nd{c}}}}}Db{MbAd}}{{{b{{Nf{c}}}}{b{{Nf{c}}}}}Db{MbAd}}{{{b{{Nh{c}}}}{b{{Nh{c}}}}}Db{AdMb}}{{{b{{Nj{c}}}}{b{{Nj{c}}}}}Db{AdMb}}{{b{b{c}}}Db{}}0000000000000000000000000000000000000000000`{{{L`{c}}}{{Cl{eEl}}}{{B`{An}}}{}}{{{Lb{c}}}{{Cl{eEl}}}{{B`{An}}}{}}{{{Ld{c}}}{{Cl{eEl}}}{{B`{An}}}{}}{{{Lf{ce}}}{{Cl{gEl}}}{{B`{Cd}}}{{B`{Cd}}}{}}{{{Lh{ce}}}{{Cl{gEl}}}{{B`{An}}}{{B`{Bb}}}{}}`{{{b{{Mn{c}}}}{b{AfEb}}}EhAd}0{{{b{{N`{c}}}}{b{AfEb}}}EhAd}0{{{b{{K`{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{Kf{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{Kd{c}}}}{b{AfEb}}}EhAd}{{{b{{Kd{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{Nb{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{Kj{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{Kl{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{Kn{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{Nd{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{Nf{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{Nh{c}}}}{b{AfEb}}}Eh{AdEf}}{{{b{{Nj{c}}}}{b{AfEb}}}Eh{AdEf}}{{{b{Nl}}{b{AfEb}}}Eh}{{{b{{L`{c}}}}{b{AfEb}}}EhEf}{{{b{{Lb{c}}}}{b{AfEb}}}EhEf}{{{b{{Ld{c}}}}{b{AfEb}}}EhEf}{{{b{{Lf{ce}}}}{b{AfEb}}}EhEfEf}{{{b{{Lh{ce}}}}{b{AfEb}}}EhEfEf}{{{b{El}}{b{AfEb}}}Eh}0{cc{}}0{Ch{{Mn{c}}}Ad}1{{{A@j{c}}}{{Mn{c}}}Ad}2{Ch{{N`{c}}}Ad}{{{Kh{c}}}{{N`{c}}}Ad}4{{{Kf{c}}}{{K`{c}}}Ad}5555{{{Nb{c}}}{{Kj{c}}}Ad}66{{{Nb{c}}}{{Nd{c}}}Ad}777{{{Nb{c}}}{{Nh{c}}}Ad}8{{{Kl{c}}}{{Nj{c}}}Ad}9999999{{{Fd{AnBb}}}El}{A@lEl}{b{{A@n{{Kf{c}}}}}Ad}{b{{A@n{{Nb{c}}}}}Ad}{b{{A@n{{Kj{c}}}}}Ad}{b{{A@n{{Kl{c}}}}}Ad}{b{{A@n{{Nh{c}}}}}Ad}{b{{A@n{{Nj{c}}}}}Ad}{{bb}{{Kf{c}}}Ad}{{bb}{{Nb{c}}}Ad}{{bb}{{Kj{c}}}Ad}{{bb}{{Kl{c}}}Ad}{{{b{{Ij{}{{AA`{c}}{AAb{g}}{AAd{i}}{AAf{k}}{AAh{m}}{AAj{o}}}}}}Aa}{{Hl{{Hj{Hh}}}}}{{AAl{}{{Mj{{Ob{{Kf{e}}}}}}}}AAnHn}Ad{{AAl{}{{Mj{{Ob{{Nb{e}}}}}}}}AAnHn}{{AAl{}{{Mj{{Ob{{Kj{e}}}}}}}}AAnHn}{{AAl{}{{Mj{{Ob{{Nh{e}}}}}}}}AAnHn}{{AAl{}{{Mj{{Ob{{Kl{e}}}}}}}}AAnHn}{{AAl{}{{Mj{{Ob{{Nj{e}}}}}}}}AAnHn}{{B`{{N`{e}}}}HnI`}}{{{b{{Ij{}{{AA`{c}}{AAb{g}}{AAd{i}}{AAf{k}}{AAh{m}}{AAj{o}}}}}}Aa}{{Hl{{Hj{Hh}}}}}{{AAl{}{{Mj{{Ob{{Kf{e}}}}}}}}AAnHn}Ad{{AAl{}{{Mj{{Ob{{Nb{e}}}}}}}}AAnHn}{{AAl{}{{Mj{{Ob{{Kj{e}}}}}}}}AAnHn}{{AAl{}{{Mj{{Ob{{Nh{e}}}}}}}}AAnHn}{{AAl{}{{Mj{{Ob{{Kl{e}}}}}}}}AAnHn}{{AAl{}{{Mj{{Ob{{Nj{e}}}}}}}}AAnHn}{{AB`{Ch}}Hn}}{{{b{c}}{b{e}}}Cd{GdGf}Gh}0{{{b{{Ij{}{{AA`{c}}{AAb{g}}{AAd{i}}{AAf{k}}{AAh{m}}{AAj{o}}}}}}Aa}{{Hl{{Hj{Hh}}}}}{{AAl{}{{Mj{{Ob{{Kf{e}}}}}}}}AAnHn}Ad{{AAl{}{{Mj{{Ob{{Nb{e}}}}}}}}AAnHn}{{AAl{}{{Mj{{Ob{{Kj{e}}}}}}}}AAnHn}{{AAl{}{{Mj{{Ob{{Nh{e}}}}}}}}AAnHn}{{AAl{}{{Mj{{Ob{{Kl{e}}}}}}}}AAnHn}{{AAl{}{{Mj{{Ob{{Nj{e}}}}}}}}AAnHn}{{B`{{Mn{e}}}}HnI`}}23322{{{b{{Ij{}{{AA`{c}}{AAb{g}}{AAd{i}}{AAf{k}}{AAh{m}}{AAj{o}}}}}}{ABb{e}}}{{Hl{{Hj{Hh}}}}}{{AAl{}{{Mj{{Ob{{Kf{e}}}}}}}}AAnHn}Ad{{AAl{}{{Mj{{Ob{{Nb{e}}}}}}}}AAnHn}{{AAl{}{{Mj{{Ob{{Kj{e}}}}}}}}AAnHn}{{AAl{}{{Mj{{Ob{{Nh{e}}}}}}}}AAnHn}{{AAl{}{{Mj{{Ob{{Kl{e}}}}}}}}AAnHn}{{AAl{}{{Mj{{Ob{{Nj{e}}}}}}}}AAnHn}}4433{{{b{{Mn{c}}}}{b{Afe}}}fAdGj}{{{b{{N`{c}}}}{b{Afe}}}fAdGj}{{{b{{Kf{c}}}}}{{A@j{c}}}Ad}{{{b{{Nb{c}}}}}{{Kh{c}}}Ad}{{{b{{Kj{c}}}}}ABdAd}{{{b{{Kn{c}}}}}{{ABb{c}}}Ad}{{{b{{Nd{c}}}}}{{Kh{c}}}Ad}`{{{b{{Kf{c}}}}}{{b{{ABf{c}}}}}Ad}{{{b{{Nb{c}}}}}{{b{{ABf{c}}}}}Ad}{{{b{{Nd{c}}}}}{{b{{ABf{c}}}}}Ad}{{{b{{K`{c}}}}}CdAd}{{{b{{Kf{c}}}}}CdAd}{{{b{{Nb{c}}}}}CdAd}{{{b{{Kj{c}}}}}CdAd}{{{b{{Kl{c}}}}}CdAd}{{{b{{Nd{c}}}}}CdAd}{{{b{{Nh{c}}}}}CdAd}{{{b{{Nj{c}}}}}CdAd}```{{{b{{Kn{c}}}}}CdAd}`{{}Ch}000000000000000000000{cElGl}{{}c{}}000000000000000000000{{Nlc}El{}}{{{L`{c}}e}El{{B`{An}}}{}}{{{Lb{c}}e}El{{B`{An}}}{}}{{{Ld{c}}e}El{{B`{An}}}{}}{{{Lf{ce}}g}El{{B`{Cd}}}{{B`{Cd}}}{}}{{{Lh{ce}}g}El{{B`{An}}}{{B`{Bb}}}{}}{{{Ob{c}}}eHn{}}{{{b{{M`{}{{Lj{c}}{Ll{e}}{Ln{g}}}}}}{b{i}}}Db{BdEfMbMdMfJhMhHnI`}{{Ml{}{{Mj{c}}}}}{BdEfMbMdJhMhHnI`}{}}0{{{b{{Nb{c}}}}}DbAd}{{{b{{Ob{c}}}}}Db{}}{{{b{{M`{}{{Lj{c}}{Ll{e}}{Ln{g}}}}}}{b{i}}}e{BdEfMbMdMfJhMhHnI`}{{Ml{}{{Mj{c}}}}}{BdEfMbMdJhMhHnI`}{}}{{}{{Cl{HbHd}}}}000000000000000000000{{{b{{Kf{c}}}}}{{b{{Ab{c}}}}}Ad}``{{{b{{M`{}{{Lj{c}}{Ll{e}}{Ln{g}}}}}}{b{i}}}Ch{BdEfMbMdMfJhMhHnI`}{{Ml{}{{Mj{c}}}}}{BdEfMbMdJhMhHnI`}{}}{{{b{{Nb{c}}}}}ChAd}{{{Ob{c}}g}{{Ob{e}}}{}{}{Hn{If{c}{{Ib{e}}}}}}`{{{b{{Nb{c}}}}}{{b{{ABh{c}}}}}Ad}{{{Kf{c}}{n{{Nb{c}}}}{n{{Kl{c}}}}{n{ABj}}}{{K`{c}}}Ad}{{{Ab{c}}{ABl{c}}}{{Cl{{Kf{c}}{Kd{c}}}}}Ad}{{{ABf{c}}{Ol{c}}}{{Nb{c}}}Ad}{{{ABf{c}}O`}{{Kl{c}}}Ad}{{{b{{M`{}{{Lj{c}}{Ll{e}}{Ln{g}}}}}}{b{i}}Ch}{{n{c}}}{BdEfMbMdMfJhMhHnI`}{{Ml{}{{Mj{c}}}}}{BdEfMbMdJhMhHnI`}{}}0{{{b{{M`{}{{Lj{c}}{Ll{e}}{Ln{g}}}}}}{b{i}}Ch}{{n{k}}}{BdEfMbMdMfJhMhHnI`}{{Ml{}{{Mj{c}}}}}{BdEfMbMdJhMhHnI`}{}{}}0{{{b{{M`{}{{Lj{c}}{Ll{e}}{Ln{g}}}}}}{b{i}}Ch}{{n{{Fd{kg}}}}}{BdEfMbMdMfJhMhHnI`}{{Ml{}{{Mj{c}}}}}{BdEfMbMdJhMhHnI`}{}{}}0{{{b{{Nb{c}}}}}CdAd}{{{b{{Nd{c}}}}}CdAd}`{{{b{{Mn{c}}}}{b{{Mn{c}}}}}{{n{Nn}}}Ad}{{{b{{N`{c}}}}{b{{N`{c}}}}}{{n{Nn}}}Ad}{{{b{{Nb{c}}}}}{{b{{Ol{c}}}}}Ad}{{{b{{Kf{c}}}}}ABdAd}{{{b{{Nb{c}}}}}ABdAd}{{{b{{Kl{c}}}}}ABdAd}`{b}000000000000000000000{{{b{{M`{}{{Lj{c}}{Ll{e}}{Ln{g}}}}}}{b{i}}{b{c}}}{{n{g}}}{BdEfMbMdMfJhMhHnI`}{{Ml{}{{Mj{c}}}}}{BdEfMbMdJhMhHnI`}{}}0{{{b{{Kn{c}}}}}{{b{{ABn{c}}}}}Ad}{{{b{{Kf{c}}}}}{{b{{ABl{c}}}}}Ad}`{{{Ob{c}}}cHn}```{{{b{{Kf{c}}}}e}ClAdJj}{{{b{{Nb{c}}}}e}ClAdJj}{{{b{{Kj{c}}}}e}ClAdJj}{{{b{{Kl{c}}}}e}ClAdJj}{{{b{{Kn{c}}}}e}ClAdJj}{{{b{{Nd{c}}}}e}ClAdJj}{{{b{{Nf{c}}}}e}ClAdJj}{{{b{El}}c}ClJj}{{{b{{Nb{c}}}}}CdAd}{{{b{{Kj{c}}}}}CdAd}{{{b{{Nd{c}}}}}CdAd}`{{{b{{Kd{c}}}}}{{n{{b{h}}}}}Ad}{{{b{El}}}{{n{{b{h}}}}}}{{{b{El}}}Bb}`{{{b{{Ij{}{{AA`{c}}{AAb{g}}{AAd{i}}{AAf{k}}{AAh{m}}{AAj{o}}}}}}Ch}{{Hl{{Hj{Hh}}}}}{{AAl{}{{Mj{{Ob{{Kf{e}}}}}}}}AAnHn}Ad{{AAl{}{{Mj{{Ob{{Nb{e}}}}}}}}AAnHn}{{AAl{}{{Mj{{Ob{{Kj{e}}}}}}}}AAnHn}{{AAl{}{{Mj{{Ob{{Nh{e}}}}}}}}AAnHn}{{AAl{}{{Mj{{Ob{{Kl{e}}}}}}}}AAnHn}{{AAl{}{{Mj{{Ob{{Nj{e}}}}}}}}AAnHn}}00000000000{{{b{AC`}}}Cd}{bc{}}0000000000000000000{bAn}000{{{b{{M`{}{{Lj{c}}{Ll{e}}{Ln{g}}}}}}{b{i}}{b{c}}}{{n{k}}}{BdEfMbMdMfJhMhHnI`}{{Ml{}{{Mj{c}}}}}{BdEfMbMdJhMhHnI`}{}{}}0{{{b{{Nb{c}}}}{b{{A@f{c}}}}}{{n{{A@h{c}}}}}Ad}{{{b{{Kn{c}}}}}{{b{{A@h{c}}}}}Ad}{{{b{{M`{}{{Lj{c}}{Ll{e}}{Ln{g}}}}}}{b{i}}{Bj{k}}}{{n{k}}}{BdEfMbMdMfJhMhHnI`}{{Ml{}{{Mj{c}}}}}{BdEfMbMdJhMhHnI`}{}{}}0{{{b{{Nb{c}}}}{Bj{{A@h{c}}}}}{{n{{A@f{c}}}}}Ad}{{{b{{M`{}{{Lj{c}}{Ll{e}}{Ln{g}}}}}}{b{i}}{Bj{k}}}{{n{{Fd{kg}}}}}{BdEfMbMdMfJhMhHnI`}{{Ml{}{{Mj{c}}}}}{BdEfMbMdJhMhHnI`}{}{}}0{{{b{{M`{}{{Lj{c}}{Ll{e}}{Ln{g}}}}}}{b{i}}{b{c}}}{{n{{Fd{kg}}}}}{BdEfMbMdMfJhMhHnI`}{{Ml{}{{Mj{c}}}}}{BdEfMbMdJhMhHnI`}{}{}}{c{{Cl{e}}}{}{}}000000000000000000000{{}{{Cl{c}}}{}}000000000000000000000{{{Ob{c}}}{{Cl{c{Ob{c}}}}}{}}{bJl}000000000000000000000``{{}c{}}000000000000000000000{{{Ob{c}}i}{{Cl{ce}}}{}{hOd}{{Oj{e}{{Of{Oh}}}}}{{If{}{{Ib{g}}}}}}{{{Ob{c}}ACb}{{n{c}}}Hn}```````````````````{{bd}f}0{{{b{{ACd{eg}}}}{K`{c}}}{{Kb{f}}}Ad{{Jn{c}}HnI`}{HnI`}}{{{b{Af{ACd{ce}}}}}{{b{Afe}}}{}{}}{{{b{{ACd{ce}}}}}{{b{e}}}{}{}}`{{{b{{ACd{eg}}}}}{{Hl{{Hj{Hh}}}}}Ad{{In{c}}HnI`}{HnI`}}{{{b{{ACd{ce}}}}}{{Hl{{Hj{Hh}}}}}{J`HnI`}{HnI`}}{{{b{ACf}}}{{Hl{{Hj{Hh}}}}}}{b{{b{c}}}{}}0{{{b{Af}}}{{b{Afc}}}{}}0{{{b{{ACd{ce}}}}}{{ACd{ce}}}BdBd}{{{b{ACf}}}ACf}{{b{b{Afc}}}f{}}0{bf}0{ACh{{`{{Hh{}{{Ib{{Kb{f}}}}}}Hn}}}}{{{b{c}}}{{Hl{{Hj{Hh}}}}}{}}0{{{b{{ACd{eg}}}}i}{{Hl{{Hj{Hh}}}}}Ad{{In{c}}HnI`}{HnI`}{{AB`{Ch}}Hn}}{Ch{{Hl{{Hj{Hh}}}}}}0{{}ACf}{Ch{{b{c}}}{}}0{Ch{{b{Afc}}}{}}0{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}0{Chf}0`{{{b{{ACd{ce}}}}{b{AfEb}}}EhEfEf}{{{b{ACf}}{b{AfEb}}}Eh}{cc{}}0`{{{b{{ACd{eg}}}}i}{{Hl{{Hj{Hh}}}}}Ad{{Ij{c}}HnI`}{HnI`}{{B`{{N`{c}}}}HnI`}}{{{b{{ACd{eg}}}}{ACj{c}}}{{Hl{{Hj{Hh}}}}}Ad{{ACl{c}}I`}{HnI`}}{{{b{{ACd{eg}}}}i}{{Hl{{Hj{Hh}}}}}Ad{{Ij{c}}HnI`}{HnI`}{{AB`{Ch}}Hn}}{{{b{{ACd{eg}}}}{ACn{c}}}{{Hl{{Hj{Hh}}}}}Ad{{ACl{c}}I`}{HnI`}}{{{b{{ACd{eg}}}}}{{Hl{{Hj{Hh}}}}}Ad{{ACl{c}}I`}{HnI`}}{{{b{{ACd{eg}}}}iCd}{{Hl{{Hj{Hh}}}}}Ad{{In{c}}HnI`}{HnI`}{{B`{{AD`{c}}}}HnI`}}{{{b{{ACd{ce}}}}}{{Hl{{Hj{Hh}}}}}{ADbI`}{HnI`}}{{{b{{ACd{eg}}}}i}{{Hl{{Hj{Hh}}}}}Ad{{Ij{c}}HnI`}{HnI`}{{B`{{Mn{c}}}}HnI`}}5{{{b{{ACd{gi}}}}{ADd{ce}}}{{Hl{{Hj{Hh}}}}}Ad{{ADf{c}}}{{ADh{ce}}I`}{HnI`}}8866{{{b{{ACd{eg}}}}ADj}{{Hl{{Hj{Hh}}}}}Ad{{ACl{c}}I`}{HnI`}}{{{b{{ACd{eg}}}}{ABb{c}}}{{Hl{{Hj{Hh}}}}}Ad{{Ij{c}}HnI`}{HnI`}}{{{b{{ACd{eg}}}}{ADl{c}}}{{Hl{{Hj{Hh}}}}}Ad{{ACl{c}}I`}{HnI`}}{{{b{{ACd{eg}}}}{ADn{c}}}{{Hl{{Hj{Hh}}}}}Ad{{ACl{c}}I`}{HnI`}}<<::{{{b{{ACd{ce}}}}{b{{AEb{AE`}}}}}{{Hl{{Hj{Hh}}}}}{AEd{Il{AE`}}}{BdAEfHnI`}}{{{b{ACf}}{b{{AEb{AE`}}}}}{{Hl{{Hj{Hh}}}}}}{{}Ch}0{{{b{{ACd{ce}}}}}{{b{c}}}{}{}}{{{b{Af{ACd{ce}}}}}{{b{Afc}}}{}{}}{{{b{Af{ACd{gi}}}}AEh{AEj{Ch}}Cd}{{Hl{{Hj{Hh}}}}}Ad{{ADf{c}}}{{AEl{ce}}HnI`}{HnI`}}{{}c{}}0{{}{{Cl{HbHd}}}}0{{{b{{ACd{ce}}}}}{{b{AEn}}}AF`{}}{{{b{ACf}}}{{b{AEn}}}}{{ce}{{ACd{ce}}}{}{}}`{{{b{{ACd{eg}}}}i}{{Hl{{Hj{Hh}}}}}Ad{{In{c}}HnI`}{HnI`}{{AB`{Ch}}Hn}}`{b}0{b{{Hj{AFb}}}}0{{{b{{Jb{}{{AFd{c}}{AFf{e}}}}}}}{{`{{Hh{}{{Ib{{Kb{e}}}}}}Hn}}}AChACh}{{{b{{ACd{ce}}}}}{{Kb{g}}}{JbHn}{HnI`}{}}{{{b{c}}}{{Hl{{Hj{Hh}}}}}{}}0{ACh{{`{HhHn}}}}{{{b{Af{ACd{gi}}}}Ch}{{Hl{{Hj{Hh}}}}}Ad{{ADf{c}}}{{AEl{ce}}HnI`}{HnI`}}```{{{b{{ACd{eg}}}}}{{Hl{{Hj{Hh}}}}}Ad{{In{c}}HnI`}{HnI`}}{bc{}}0{c{{Cl{e}}}{}{}}0{{}{{Cl{c}}}{}}0{bJl}0{{{b{Il}}{b{{AEb{c}}}}}{{Hl{{Hj{Hh}}}}}Ad}{{b{b{{AEb{c}}}}}{{Hl{{Hj{Hh}}}}}{}}{{{b{{ACd{eg}}}}i}{{Hl{{Hj{Hh}}}}}Ad{{In{c}}HnI`}{HnI`}{{B`{{N`{c}}}}HnI`}}{{}c{}}0{{{b{{Jb{}{{AFd{c}}{AFf{e}}}}}}}{{`{{Hh{}{{Ib{{Kb{c}}}}}}Hn}}}AChACh}={{}f}0````{{bd}f}0{{{b{{AFh{ceg}}}}{K`{c}}}{{Kb{f}}}AdJb{{AFj{c}}}}{{{b{{AFh{ceg}}}}}{{b{e}}}Ad{}{}}{{{b{{AFh{ceg}}}}}{{Hl{{Hj{Hh}}}}}AdJb{HnI`}}{{{b{{AFh{ceg}}}}}{{Hl{{Hj{Hh}}}}}Ad{JbAF`HnI`}{HnI`}}{b{{b{c}}}{}}00{{{b{Af}}}{{b{Afc}}}{}}00{{{AFl{ceg}}}{{Kb{{AFh{ceg}}}}}Ad{AFnJbAF`}{{AFj{c}}}}{{cg}{{AFl{ecg}}}{JbAFnAF`}Ad{{AFj{e}}}}{{{b{{AFh{ceg}}}}}{{AFh{ceg}}}Ad{}{}}{{{b{{AG`{ceg}}}}}{{AG`{ceg}}}Ad{}{}}{{b{b{Afc}}}f{}}0{bf}0{{AGbe}{{Cl{{AGd{ce}}AGf}}}Ad{{AFj{c}}}}{{{b{{AFh{ceg}}}}i}{{Hl{{Hj{Hh}}}}}AdJb{HnI`}{{AB`{Ch}}Hn}}{{{b{AGh}}e}{{Kb{{AFh{c{AGj{c}}e}}}}}Ad{{AFj{c}}}}{{{b{AfAGl}}e}{{Kb{{AFh{c{AGj{c}}e}}}}}Ad{{AFj{c}}}}{Ch{{b{c}}}{}}00{Ch{{b{Afc}}}{}}00{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}00{{{AFl{ceg}}}{{AFl{ceg}}}{}{}{}}0{Chf}00{{{b{{AFh{ceg}}}}{b{AfEb}}}EhAdEfEf}{{{b{{AG`{ceg}}}}{b{AfEb}}}EhAdEfEf}{cc{}}00{{{b{{AFh{ceg}}}}i}{{Hl{{Hj{Hh}}}}}AdJb{{AFj{c}}}{{B`{{N`{c}}}}HnI`}}{{{b{{AFh{ceg}}}}{ACj{c}}}{{Hl{{Hj{Hh}}}}}AdJb{HnI`}}{{{b{{AFh{ceg}}}}i}{{Hl{{Hj{Hh}}}}}AdJb{{AFj{c}}}{{AB`{Ch}}Hn}}{{{b{{AFh{ceg}}}}{ACn{c}}}{{Hl{{Hj{Hh}}}}}AdJb{HnI`}}{{{b{{AFh{ceg}}}}}{{Hl{{Hj{Hh}}}}}AdJb{HnI`}}{{{b{{AFh{ceg}}}}iCd}{{Hl{{Hj{Hh}}}}}AdJb{HnI`}{{B`{{AD`{c}}}}HnI`}}1{{{b{{AFh{ceg}}}}i}{{Hl{{Hj{Hh}}}}}AdJb{{AFj{c}}}{{B`{{Mn{c}}}}HnI`}}4{{{b{{AFh{ceg}}}}{ADd{ci}}}{{Hl{{Hj{Hh}}}}}AdJb{HnI`}{{ADf{c}}}}7755{{{b{{AFh{ceg}}}}ADj}{{Hl{{Hj{Hh}}}}}AdJb{HnI`}}{{{b{{AFh{ceg}}}}{ABb{c}}}{{Hl{{Hj{Hh}}}}}AdJb{{AFj{c}}}}{{{b{{AFh{ceg}}}}{ADl{c}}}{{Hl{{Hj{Hh}}}}}AdJb{HnI`}}{{{b{{AFh{ceg}}}}{ADn{c}}}{{Hl{{Hj{Hh}}}}}AdJb{HnI`}};;99{{}Ch}00{{}c{}}00{{}{{Cl{HbHd}}}}00{{{b{{AFh{ceg}}}}}{{b{AEn}}}AdAF`{}}{{ce}{{AFl{gce}}}{}{}{}}{{{b{AGh}}e}{{Kb{{AFh{c{AGj{c}}e}}}}}Ad{{AFj{c}}}}{{{b{AfAGl}}e}{{Kb{{AFh{c{AGj{c}}e}}}}}Ad{{AFj{c}}}}{{{b{{AFh{ceg}}}}i}{{Hl{{Hj{Hh}}}}}AdJb{HnI`}{{AB`{Ch}}Hn}}{b}00{b{{Hj{AFb}}}}{{{b{{AFh{ceg}}}}}{{Kb{i}}}Ad{JbHnI`}{HnI`}{}}{{{b{{AFh{c{AGj{c}}e}}}}}{{Kb{f}}}Ad{{AFj{c}}}}{{{b{{AFh{ceg}}}}}{{Hl{{Hj{Hh}}}}}AdJb{HnI`}}{bc{}}0{c{{Cl{e}}}{}{}}00{{}{{Cl{c}}}{}}00{bJl}00{{b{b{{AEb{c}}}}}{{Hl{{Hj{Hh}}}}}{}}{{{b{{AFh{ceg}}}}i}{{Hl{{Hj{Hh}}}}}AdJb{HnI`}{{B`{{N`{c}}}}HnI`}}{{}c{}}00{{{AFl{ceg}}ACb}{{AFl{ceg}}}{}{}{}}{{{AFl{ceg}}Ch}{{AFl{ceg}}}{}{}{}}100111000{{{AFl{ceg}}AGn}{{AFl{ceg}}}{}{}{}}02<``{{{b{c}}}{{Hl{{Hj{Hh}}}}}{}}{{{b{AGh}}e}{{Kb{{AH`{ce}}}}}Ad{{AFj{c}}}}{Ch{{Hl{{Hj{Hh}}}}}}{{{b{AfAGl}}e}{{Kb{{AH`{ce}}}}}Ad{{AFj{c}}}}{{{b{{AH`{AE`c}}}}{b{{AEb{AE`}}}}}{{Hl{{Hj{Hh}}}}}{{AFj{AE`}}AEf}}314{{{b{{AH`{ce}}}}}{{Kb{f}}}Ad{{AFj{c}}}}{{}f}00000000``````6{{AGbe}{{Cl{{AGd{ce}}AGf}}}Ad{{AFj{c}}}}5{{{b{{AHb{AE`c}}}}{b{{AEb{AE`}}}}}{{Hl{{Hj{Hh}}}}}{{AFj{AE`}}AEf}}`8``2````````````{{{b{AfAHd}}}{{`{{Hh{}{{Ib{{Kb{Ch}}}}}}Hn}}}}{{{b{AfAHf}}}{{Hl{{Hj{Hh}}}}}}{{{b{AfAHf}}c}{{Hl{{Hj{Hh}}}}}{{AB`{Ch}}Hn}}``{{{b{AfAHh}}{N`{c}}}{{Hl{{Hj{Hh}}}}}Ad}{{{b{AfAHj}}{ACj{c}}}{{Hl{{Hj{Hh}}}}}Ad}{{{b{AfAHh}}c}{{Hl{{Hj{Hh}}}}}{{AB`{Ch}}Hn}}{{{b{AfAHj}}{ACn{c}}}{{Hl{{Hj{Hh}}}}}Ad}{{{b{AfAHj}}}{{Hl{{Hj{Hh}}}}}}4{{{b{AfAHf}}eCd}{{Hl{{Hj{Hh}}}}}Ad{{B`{{AD`{c}}}}HnI`}}{{{b{AfAHl}}}{{Hl{{Hj{Hh}}}}}}{{{b{AfAHh}}{Mn{c}}}{{Hl{{Hj{Hh}}}}}Ad}5{{{b{AfAHn}}{ADd{ce}}}{{Hl{{Hj{Hh}}}}}Ad{{ADf{c}}}}8866{{{b{AfAHj}}ADj}{{Hl{{Hj{Hh}}}}}}{{{b{AfAHh}}{ABb{c}}}{{Hl{{Hj{Hh}}}}}Ad}{{{b{AfAHj}}{ADl{c}}}{{Hl{{Hj{Hh}}}}}Ad}{{{b{AfAHj}}{ADn{c}}}{{Hl{{Hj{Hh}}}}}Ad}<<::{{{b{AfAI`}}{Nb{c}}}{{`{Hn{Hh{}{{Ib{{Kb{f}}}}}}}}}Ad}{{{b{AfAI`}}{Kf{c}}}{{`{Hn{Hh{}{{Ib{{Kb{f}}}}}}}}}Ad}{{{b{AfAI`}}{Kl{c}}{n{ABj}}}{{`{Hn{Hh{}{{Ib{{Kb{f}}}}}}}}}Ad}`{{{b{AfAHf}}c}{{Hl{{Hj{Hh}}}}}{{AB`{Ch}}Hn}}``{{{b{AfAHf}}}{{Hl{{Hj{Hh}}}}}}{{{b{AfAIb}}{b{{AId{{Nh{c}}}}}}}{{`{{Hh{}{{Ib{{Kb{f}}}}}}Hn}}}Ad}{{{b{AfAHf}}e}{{Hl{{Hj{Hh}}}}}Ad{{B`{{N`{c}}}}HnI`}}```````````````````{{bd}f}0{{{b{Af{AIf{c}}}}}{{Kb{Ch}}}{AHdHnI`}}{{{b{Af{AIf{e}}}}}{{Hl{{Hj{Hh}}}}}Ad{{AHf{c}}HnI`}}{b{{b{c}}}{}}00{{{b{Af}}}{{b{Afc}}}{}}00{{{b{AIh}}}AIh}{{{b{{AIj{c}}}}}{{AIj{c}}}Bd}{{b{b{Afc}}}f{}}0{bf}0{{{AIf{c}}}{{Kb{f}}}ACh}{{{b{Af{AIf{e}}}}g}{{Hl{{Hj{Hh}}}}}Ad{{AHf{c}}HnI`}{{AB`{Ch}}Hn}}{Ch{{b{c}}}{}}00{Ch{{b{Afc}}}{}}00{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}00{Chf}00{{{b{AIh}}{b{AIh}}}Db}{{b{b{c}}}Db{}}000{{{b{{AIj{c}}}}AIh}f{}}0000000000{{{b{AIh}}{b{AfEb}}}Eh}{{{b{{AIj{c}}}}{b{AfEb}}}EhEf}{{{b{{AIf{c}}}}{b{AfEb}}}EhEf}{cc{}}0{Fjc{}}{c{{AIj{c}}}{}}2{Flc{}}0{ceFn{}}{ceG`{}}2{{{b{Af{AIf{e}}}}{N`{c}}}{{Hl{{Hj{Hh}}}}}Ad{{AHh{c}}}}{{{b{Af{AIf{e}}}}g}{{Hl{{Hj{Hh}}}}}Ad{{AHh{c}}}{{AB`{Ch}}Hn}}{{{b{{AIj{c}}}}}{{Hl{{Hj{Hh}}}}}{AFnI`}}2{{{b{Af{AIf{e}}}}gCd}{{Hl{{Hj{Hh}}}}}Ad{{AHf{c}}HnI`}{{B`{{AD`{c}}}}HnI`}}{{{b{Af{AIf{e}}}}{Mn{c}}}{{Hl{{Hj{Hh}}}}}Ad{{AHh{c}}}}34433{{{b{{AIj{c}}}}}{{n{AIl}}}AIn}{{{b{Af{AIf{e}}}}{ABb{c}}}{{Hl{{Hj{Hh}}}}}Ad{{AHh{c}}}}6655{{}Ch}00{{{b{Af{AIf{e}}}}{Nb{c}}}{{Kb{f}}}Ad{{AI`{c}}HnI`}}{{{b{Af{AIf{e}}}}{Kf{c}}}{{Kb{f}}}Ad{{AI`{c}}HnI`}}{{{b{Af{AIf{e}}}}{Kl{c}}{n{ABj}}}{{Kb{f}}}Ad{{AI`{c}}HnI`}}{{}c{}}00{{}{{Cl{HbHd}}}}00{{{b{Af{AIf{c}}}}}{{Hl{{Hj{Hh}}}}}{AJ`HnI`}}{{{b{{AIj{c}}}}}{{b{AEn}}}AF`}{{{b{{AIj{c}}}}}f{}}00000{{{b{Af{AIf{e}}}}g}{{Hl{{Hj{Hh}}}}}Ad{{AHf{c}}HnI`}{{AB`{Ch}}Hn}}{b}00{{{b{{AIj{c}}}}{b{Afe}}}{{Hl{{Hj{Hh}}}}}{AFnI`}{}}{{{b{{AIj{c}}}}}{{Kb{e}}}Jb{}}{{{AIf{c}}}{{`{HhHn}}}ACh}{{{b{Af{AIj{c}}}}AIl}fAIn}{{{b{Af{AIf{e}}}}}{{Hl{{Hj{Hh}}}}}Ad{{AHf{c}}HnI`}}{bc{}}0{c{{Cl{e}}}{}{}}00{{}{{Cl{c}}}{}}00{bJl}00{{{b{Af{AIf{e}}}}{b{{AId{{Nh{c}}}}}}}{{Kb{f}}}Ad{{AIb{c}}HnI`}}{{{b{Af{AIf{e}}}}g}{{Hl{{Hj{Hh}}}}}Ad{{AHf{c}}HnI`}{{B`{{N`{c}}}}HnI`}}{{}c{}}00:````{{{b{Af{AJb{c}}}}}{{Kb{Ch}}}{AJdHn}}{{{b{Af{AJb{e}}}}}{{Hl{{Hj{Hh}}}}}Ad{AJd{AJj{}{{AJf{{AJh{c}}}}}}Hn}}{b{{b{c}}}{}}00{{{b{Af}}}{{b{Afc}}}{}}00{{{AJb{{AJl{{AJh{c}}}}}}}{{Kb{f}}}Ad}{{{AJb{{AJn{{AJh{c}}}}}}}{{Kb{f}}}Ad}{{{b{Af{AJb{e}}}}g}{{Hl{{Hj{Hh}}}}}Ad{AJd{AJj{}{{AJf{{AJh{c}}}}}}Hn}{{AB`{Ch}}Hn}}{{{b{AGh}}}{{Cl{{AGj{c}}AK`}}}Ad}{{{b{AfAGl}}}{{Cl{{AGj{c}}AK`}}}Ad}{Ch{{b{c}}}{}}00{Ch{{b{Afc}}}{}}00{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}00{Chf}0{{{b{Af{AJb{c}}}}}fAJd}1{{{b{{AJh{c}}}}{b{AfEb}}}EhAd}{{{b{{AGj{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{AJb{c}}}}{b{AfEb}}}Eh{EfAJd}}{cc{}}00{{{b{Af{AJb{e}}}}{N`{c}}}{{Hl{{Hj{Hh}}}}}Ad{AJd{AJj{}{{AJf{{AJh{c}}}}}}HnI`}}{{{b{Af{AJb{e}}}}g}{{Hl{{Hj{Hh}}}}}Ad{AJd{AJj{}{{AJf{{AJh{c}}}}}}HnI`}{{AB`{Ch}}Hn}}1{{{b{Af{AJb{e}}}}gCd}{{Hl{{Hj{Hh}}}}}Ad{AJd{AJj{}{{AJf{{AJh{c}}}}}}Hn}{{B`{{AD`{c}}}}HnI`}}{{{b{Af{AJb{e}}}}{Mn{c}}}{{Hl{{Hj{Hh}}}}}Ad{AJd{AJj{}{{AJf{{AJh{c}}}}}}HnI`}}23322{{{b{Af{AJb{e}}}}{ABb{c}}}{{Hl{{Hj{Hh}}}}}Ad{AJd{AJj{}{{AJf{{AJh{c}}}}}}HnI`}}4433{{}Ch}00{{{b{Af{AJb{{AJl{{AJh{c}}}}}}}}{Nb{c}}}{{Kb{f}}}Ad}{{{b{Af{AJb{{AJl{{AJh{c}}}}}}}}{Kf{c}}}{{Kb{f}}}Ad}{{{b{Af{AJb{{AJl{{AJh{c}}}}}}}}{Kl{c}}{n{ABj}}}{{Kb{f}}}Ad}{{}c{}}00{{}{{Cl{HbHd}}}}00{{{b{{AGj{c}}}}}{{b{AEn}}}Ad}{{{b{AGh}}}{{Cl{{AGj{c}}AK`}}}Ad}{{{b{AfAGl}}}{{Cl{{AGj{c}}AK`}}}Ad}{{{b{Af{AJb{e}}}}g}{{Hl{{Hj{Hh}}}}}Ad{AJd{AJj{}{{AJf{{AJh{c}}}}}}Hn}{{AB`{Ch}}Hn}}{b}00{{{b{{AGj{c}}}}}{{Kb{e}}}Ad{}}{{{b{AfAJd}}}f}{{{AJb{{AJl{{AJh{c}}}}}}}{{`{HhHn}}}Ad}{{{AJb{{AJn{{AJh{c}}}}}}}{{`{HhHn}}}Ad}{{{b{{AGj{c}}}}}{{Cl{fAK`}}}Ad}{{{b{Af{AJb{e}}}}}{{Hl{{Hj{Hh}}}}}Ad{AJd{AJj{}{{AJf{{AJh{c}}}}}}Hn}}{c{{Cl{e}}}{}{}}00{{}{{Cl{c}}}{}}00{bJl}00{{{b{Af{AJb{c}}}}{b{{AId{{Nh{e}}}}}}}{{Kb{f}}}{AJdHn}Ad}{{{b{Af{AJb{e}}}}g}{{Hl{{Hj{Hh}}}}}Ad{AJd{AJj{}{{AJf{{AJh{c}}}}}}Hn}{{B`{{N`{c}}}}HnI`}}{{}c{}}00;``{{bd}f}{{{b{AfAKb}}}{{Kb{Ch}}}}{{{b{AfAKb}}}{{Hl{{Hj{Hh}}}}}}{b{{b{c}}}{}}0{{{b{Af}}}{{b{Afc}}}{}}0{{{b{AKd}}}AKd}{{b{b{Afc}}}f{}}{bf}{AKb{{Kb{f}}}}{{{b{AfAKb}}c}{{Hl{{Hj{Hh}}}}}{{AB`{Ch}}Hn}}{{}AKd}{Ch{{b{c}}}{}}0{Ch{{b{Afc}}}{}}0{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}0{Chf}0{{{b{AKd}}{b{AfEb}}}Eh}{cc{}}0{{{b{AfAKb}}{N`{c}}}{{Hl{{Hj{Hh}}}}}Ad}80{{{b{AfAKb}}eCd}{{Hl{{Hj{Hh}}}}}Ad{{B`{{AD`{c}}}}HnI`}}{{{b{AfAKb}}{Mn{c}}}{{Hl{{Hj{Hh}}}}}Ad}:22::{{{b{AfAKb}}{ABb{c}}}{{Hl{{Hj{Hh}}}}}Ad}33;;{{}Ch}0{{{b{AfAKb}}{Nb{c}}}{{Kb{f}}}Ad}{{{b{AfAKb}}{Kf{c}}}{{Kb{f}}}Ad}{{{b{AfAKb}}{Kl{c}}{n{ABj}}}{{Kb{f}}}Ad}{{}c{}}0{{}{{Cl{HbHd}}}}0{{{b{AKd}}}{{b{AEn}}}}{{{b{AfAKb}}c}{{Hl{{Hj{Hh}}}}}{{AB`{Ch}}Hn}}{b}0{{{b{AKd}}}{{Kb{c}}}{}}{AKb{{`{HhHn}}}}{{{b{AfAKb}}}{{Hl{{Hj{Hh}}}}}}`{bc{}}{c{{Cl{e}}}{}{}}0{{}{{Cl{c}}}{}}0{bJl}0{{{b{AfAKb}}{b{{AId{{Nh{c}}}}}}}{{Kb{f}}}Ad}{{{b{AfAKb}}e}{{Hl{{Hj{Hh}}}}}Ad{{B`{{N`{c}}}}HnI`}}==8`````````{{bd}f}{{{b{AKf}}{K`{AE`}}}{{Kb{f}}}}{{{b{Af{AKh{c}}}}}{{Hl{{Hj{Hh}}}}}{{AHf{AE`}}Hn}}{{{b{AKf}}}{{Hl{{Hj{Hh}}}}}}0{b{{b{c}}}{}}00{{{b{Af}}}{{b{Afc}}}{}}00{{{b{AKf}}}AKf}{{b{b{Afc}}}f{}}{bf}{{{AKh{c}}}{{Kb{f}}}ACh}{{{b{c}}}{{Hl{{Hj{Hh}}}}}{}}{{{b{Af{AKh{c}}}}e}{{Hl{{Hj{Hh}}}}}{{AHf{AE`}}Hn}{{AB`{Ch}}Hn}}{{{b{AKf}}c}{{Hl{{Hj{Hh}}}}}{{AB`{Ch}}Hn}}{Ch{{Hl{{Hj{Hh}}}}}}{Ch{{b{c}}}{}}00{Ch{{b{Afc}}}{}}00{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}00{Chf}00{{{b{AKf}}{b{AfEb}}}Eh}{cc{}}00{{{b{AKf}}c}{{Hl{{Hj{Hh}}}}}{{B`{{N`{AE`}}}}HnI`}}8{{{b{Af{AKh{c}}}}eCd}{{Hl{{Hj{Hh}}}}}{{AHf{AE`}}Hn}{{B`{{AD`{AE`}}}}HnI`}}{{{b{AKf}}cCd}{{Hl{{Hj{Hh}}}}}{{B`{{AD`{AE`}}}}HnI`}}{{{b{AKf}}c}{{Hl{{Hj{Hh}}}}}{{B`{{Mn{AE`}}}}HnI`}};33;;{{{b{AKf}}{ABb{AE`}}}{{Hl{{Hj{Hh}}}}}}44<<{{{b{AKf}}{b{{AEb{AE`}}}}}{{Hl{{Hj{Hh}}}}}}{{}Ch}00{{{b{Af{AKh{c}}}}{Nb{AE`}}}{{Kb{f}}}{{AI`{AE`}}HnI`}}{{{b{Af{AKh{c}}}}{Kf{AE`}}}{{Kb{f}}}{{AI`{AE`}}HnI`}}{{{b{Af{AKh{c}}}}{Kl{AE`}}{n{ABj}}}{{Kb{f}}}{{AI`{AE`}}HnI`}}{{}c{}}00{{}{{Cl{HbHd}}}}00{{{b{AKf}}}{{b{AEn}}}}{{{b{Af{AKh{c}}}}e}{{Hl{{Hj{Hh}}}}}{{AHf{AE`}}Hn}{{AB`{Ch}}Hn}}{{{b{AKf}}c}{{Hl{{Hj{Hh}}}}}{{AB`{Ch}}Hn}}{b}00{b{{Hj{AFb}}}}{{{b{AKf}}}{{Kb{c}}}{}}{{{b{c}}}{{Hl{{Hj{Hh}}}}}{}}{{{AKh{c}}}{{`{HhHn}}}ACh}{{{b{Af{AKj{AKf}}}}}{{Hl{{Hj{Hh}}}}}}{{{b{Af{AKh{c}}}}}{{Hl{{Hj{Hh}}}}}{{AHf{AE`}}Hn}}{{{b{AKf}}}{{Hl{{Hj{Hh}}}}}}{bc{}}{c{{Cl{e}}}{}{}}00{{}{{Cl{c}}}{}}00{bJl}00{{b{b{{AEb{c}}}}}{{Hl{{Hj{Hh}}}}}{}}{{{b{Af{AKh{c}}}}e}{{Hl{{Hj{Hh}}}}}{{AHf{AE`}}Hn}{{B`{{N`{AE`}}}}HnI`}}{{{b{AKf}}c}{{Hl{{Hj{Hh}}}}}{{B`{{N`{AE`}}}}HnI`}}{{}c{}}00=``````{{bd}f}{{{b{AIl}}}Cd}{b{{b{c}}}{}}{{{b{Af}}}{{b{Afc}}}{}}{{{b{AIl}}}AIl}{{b{b{Afc}}}f{}}{bf}{{}AIl}{Ch{{b{c}}}{}}{Ch{{b{Afc}}}{}}{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}{Chf}{{{b{AIl}}{b{AfEb}}}Eh}{cc{}}{{{b{{AFn{}{{AKl{c}}}}}}}{{Hl{{Hj{Hh}}}}}{AEfHn}}{{{b{AIn}}}{{n{AIl}}}}{{}Ch}{{{b{AIl}}}ACb}{{}c{}}{{}{{Cl{HbHd}}}}{{{b{AfAJ`}}}{{Hl{{Hj{Hh}}}}}}{{{b{AIl}}}AKn}4>{b}{{{b{{AFn{}{{AKl{c}}}}}}{b{Afc}}}{{Hl{{Hj{Hh}}}}}{AEfHn}}{{{b{AIl}}}{{n{Cd}}}}{{{b{AfAIn}}AIl}f}8{bc{}}{c{{Cl{e}}}{}{}}{{}{{Cl{c}}}{}}{bJl}{{{b{AIl}}}{{Kb{f}}}}<{{AIlCd}AIl}{{AIlACb}AIl}{{AIlAKn}AIl}121````````````````````````````````{{bd}f}000{{{b{Af{AL`{c}}}}}{{Kb{Ch}}}ALb}{{ALdAnALfCd}ALh}{{{b{ALh}}}{{n{{b{ALf}}}}}}{AGbAGb}{{{b{AGf}}}{{b{h}}}}0{{{b{AGf}}}{{b{l}}}}{{{b{Af}}}{{`{{Hh{}{{Ib{{Kb{f}}}}}}Hn}}}}{{{b{Af}}}{{Kb{f}}}}0{{ALjALl}ALl}{{{b{AfALn}}c}{{AM`{An}}}{{AMd{AMb}}{AMf{AMb}}}}{{{b{Af{AL`{c}}}}}{{Hl{{Hj{Hh}}}}}ALb}{b{{b{c}}}{}}000000000{{{b{Af}}}{{b{Afc}}}{}}000000000{{{b{AfALn}}c{b{Cj}}}{{AM`{An}}}{{AB`{Ch}}}}{{AGbe}{{Cl{{AGd{ce}}AGf}}}Ad{{AFj{c}}}}{{{b{AGf}}}AMh}{{{b{ALh}}}Cd}{{{b{Cj}}}{{Hl{{Hj{Hh}}}}}}{{}{{Hl{{Hj{Hh}}}}}}{{{b{ALh}}}ALh}{{{b{AMj}}}AMj}{{{b{AMl}}}AMl}{{{b{AGb}}}AGb}{{b{b{Afc}}}f{}}000{bf}000{{{b{ALh}}{b{ALh}}}Nn}{{{AL`{c}}}{{Kb{f}}}ALb}{{b{b{c}}}Nn{}}{{AGbe}{{Cl{{AHb{ce}}AGf}}}Ad{{AFj{c}}}}{AGb{{Cl{AMnAGf}}}}{{AGbACb}AGb}{{AGfc}AGf{GlHnI`}}{{{b{Af{AL`{c}}}}e}{{Hl{{Hj{Hh}}}}}ALb{{AB`{Ch}}Hn}}?{{AGb{b{Cj}}}AGb}{{{b{Cj}}}{{Hl{{Hj{Hh}}}}}}{{}ALn}{{}AMj}{{}AMl}{{}AGb}{{}AN`}{{}{{AEj{ALh}}}}{{{b{AGf}}}b}{Ch{{b{c}}}{}}00000{{{b{{AL`{c}}}}}{{b{e}}}{}{}}1111{{{b{AfAGf}}}{{b{Af}}}}{Ch{{b{Afc}}}{}}000000{{{b{Af{AL`{c}}}}}{{b{Afe}}}{}{}}111{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}000000000{{}{{b{Cj}}}}00{AGf{{Cl{cAGf}}}{GlEfHnI`}}{{{b{AfAGf}}}{{n{{b{Afc}}}}}{GlEfHnI`}}{{{b{AGf}}}{{n{{b{c}}}}}{GlEfHnI`}}{{{b{AfAGf}}}f}{Chf}000000000{{{b{Cj}}}{{Hl{{Hj{Hh}}}}}}{{{b{ALh}}{b{ALh}}}Db}{{b{b{c}}}Db{}}000{{{ANd{}{{ANb{c}}}}e}{{Hl{{Hj{Hh}}}}}ANf{{ANh{c}}}}0{{{ANd{}{{ANb{c}}}}e}{{Hl{{Hj{AAl}}}}}ANf{{ANh{c}}}}0{{{b{Af{AL`{AMj}}}}c}{{Kb{Cd}}}{{ANh{AMb}}}}{{{b{Af{AL`{AMj}}}}{b{Cj}}c}{{Kb{Cd}}}{ALjBd}}{{{b{Af{AL`{AMj}}}}c}{{Kb{f}}}{{ANh{AMb}}}}{{{b{Af{AL`{AMj}}}}{b{Cj}}c}{{Kb{f}}}{ALjBd}}44554555{{{b{AGf}}{b{AfEb}}}{{Cl{fEd}}}}0{{{b{ALh}}{b{AfEb}}}{{Cl{fEd}}}}0{{{b{ANj}}{b{AfEb}}}{{Cl{fEd}}}}{{{b{ALn}}{b{AfEb}}}Eh}{{{b{AMj}}{b{AfEb}}}Eh}{{{b{AMl}}{b{AfEb}}}Eh}{{{b{{AL`{c}}}}{b{AfEb}}}EhEf}{{{b{AGb}}{b{AfEb}}}Eh}{{{b{AMn}}{b{AfEb}}}Eh}{{{b{AN`}}{b{AfEb}}}Eh}{b{{ANl{ANj}}}}{cAGf{hHnI`}}{cc{}}{Fjc{}}111111{ANnAGb}222{{{b{Cj}}}{{Cl{AGbc}}}{}}{{{b{Af{AL`{c}}}}{N`{e}}}{{Hl{{Hj{Hh}}}}}ALbAd}{{{b{Af{AL`{c}}}}{ACj{e}}}{{Hl{{Hj{Hh}}}}}ALbAd}{{{b{Af{AL`{c}}}}e}{{Hl{{Hj{Hh}}}}}ALb{{AB`{Ch}}Hn}}{{{b{Af{AL`{c}}}}{ACn{e}}}{{Hl{{Hj{Hh}}}}}ALbAd}{{{b{AMn}}}{{Hl{{Hj{Hh}}}}}}{{{b{Af{AL`{c}}}}}{{Hl{{Hj{Hh}}}}}ALb}{b{{n{{b{Cj}}}}}}6{{{b{Af{AL`{c}}}}gCd}{{Hl{{Hj{Hh}}}}}ALbAd{{B`{{AD`{e}}}}HnI`}}2{{{b{Af{AL`{c}}}}{Mn{e}}}{{Hl{{Hj{Hh}}}}}ALbAd}6{{{b{Af{AL`{c}}}}{ADd{eg}}}{{Hl{{Hj{Hh}}}}}ALbAd{{ADf{e}}}}9977{{{b{AMn}}}{{n{AIl}}}}{{{b{Af{AL`{c}}}}ADj}{{Hl{{Hj{Hh}}}}}ALb}{{{b{Af{AL`{c}}}}{ABb{e}}}{{Hl{{Hj{Hh}}}}}ALbAd}{{{b{Af{AL`{c}}}}{ADl{e}}}{{Hl{{Hj{Hh}}}}}ALbAd}{{{b{Af{AL`{c}}}}{ADn{e}}}{{Hl{{Hj{Hh}}}}}ALbAd}>><<{{{b{AfALn}}{N`{c}}}{{AM`{An}}}Ad}{{AGbc}AGb{{B`{An}}}}{{AGbACb}AGb}``{{}Ch}000000000{{{b{Af{AL`{AMj}}}}{Nb{c}}}{{Kb{f}}}Ad}{{{b{Af{AL`{AMj}}}}{Kf{c}}}{{Kb{f}}}Ad}{{{b{Af{AL`{AMj}}}}AEh{AEj{Ch}}Cd}{{Hl{{Hj{Hh}}}}}}{{{b{Af{AL`{AMj}}}}{Kl{c}}{n{ABj}}}{{Kb{f}}}Ad}{{}c{}}000000000{{{b{AGf}}}Db}{{}{{Cl{HbHd}}}}000000000{{{b{Af{AL`{c}}}}g}{{AM`{{ABf{e}}}}}{}Ad{{B`{{N`{e}}}}Hn}}{{{b{Af{AL`{c}}}}}{{Hl{{Hj{Hh}}}}}ALb}{{AGbAO`}AGb}{{{b{AMn}}}{{b{AEn}}}}{{AGbc}AGb{{AOb{}{{Mj{ALh}}}}}}2{cAGf{GlEfHnI`}}{{{b{ALh}}}{{b{Cj}}}}{cAGf{hHnI`}}{AGbAGb}{b{{n{{b{Cj}}}}}}{{{b{ALh}}{b{ALh}}}{{n{Nn}}}}{{AGb{b{Cj}}}AGb}{{{b{Af{AL`{c}}}}e}{{Hl{{Hj{Hh}}}}}ALb{{AB`{Ch}}Hn}}{b}000000000{{AGbAKn}AGb}{{{b{ALh}}}{{b{AOd}}}}{{{ANd{}{{ANb{c}}}}{b{Cj}}}{{Hl{{Hj{Hh}}}}}ANf}0{{{ANd{}{{ANb{c}}}}{b{Cj}}{b{AId}}}{{Hl{{Hj{Hh}}}}}ANf}{{{b{AMn}}{b{AfAN`}}}{{Hl{{Hj{Hh}}}}}}{{AGbAIl}{{Cl{AGbAGf}}}}{{{b{Cj}}}ALl}{{ALn{b{Cj}}}ALl}{{{b{Cj}}}{{AOf{c}}}AOh}{{ALn{b{Cj}}}{{AOf{c}}}AOh}{{{b{AMn}}}{{Kb{{AL`{AMl}}}}}}{AGbAGb}{b{{n{{b{Cj}}}}}}{{{AL`{c}}}{{`{HhHn}}}ALb}{{{b{AGf}}}{{b{h}}}}{{AGbc}AGb{{B`{An}}}}{{{b{AfALh}}}f}{{{b{Af{AL`{AMj}}}}Ch}{{Hl{{Hj{Hh}}}}}}{{{b{AfAMn}}AIl}f}{{AGbACb}AGb}{{{b{Af}}}{{Hl{{Hj{Hh}}}}}}{{{b{ALh}}}{{n{{b{Cj}}}}}}`{{{b{Af{AL`{c}}}}}{{Hl{{Hj{Hh}}}}}ALb}{{{b{AOj}}}{{Hl{{Hj{Hh}}}}}}`<{bc{}}000{bAn}0{c{{Cl{e}}}{}{}}000000000{{}{{Cl{c}}}{}}000000000{bJl}000000000{{{b{Cj}}{b{Cj}}}{{Cl{ALhAOl}}}}{{{b{Af{AL`{AMj}}}}{b{{AId{{Nh{c}}}}}}}{{Kb{f}}}Ad}{{{b{Af{AL`{AMj}}}}{b{Cj}}{AOn{{b{Cj}}}}ce}{{Kb{f}}}{{AOb{}{{Mj{{b{Cj}}}}}}}AOb}{{AGb{b{Cj}}}AGb}{{{b{ALh}}}AO`}{{{b{Af{AL`{c}}}}g}{{Hl{{Hj{Hh}}}}}ALbAd{{B`{{N`{e}}}}HnI`}}{{}c{}}000000000{{{b{AMn}}}{{Kb{{AL`{AMj}}}}}}``{b{{b{c}}}{}}0{{{b{Af}}}{{b{Afc}}}{}}0{{{b{B@`}}}AGb}{Ch{{b{c}}}{}}0{Ch{{b{Afc}}}{}}0{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}0{Chf}{{{b{AfB@`}}}f}1{{{b{B@`}}{b{AfEb}}}Eh}{cc{}}0{{{b{B@`}}}An}{{}Ch}{{}B@`}1>>{{}{{Cl{HbHd}}}}01{b}0{{{b{B@`}}}AKn}88{c{{Cl{e}}}{}{}}0{{}{{Cl{c}}}{}}0{bJl}0{{}c{}}0`````````````````````````````````````````````````````````````````````````````````````````````````````{{bd}f}000000000000000{{B@bB@b}c{}}{b{{b{h}}}}00000000000000000000000``````````{b{{b{c}}}{}}0000000000000000000000000000000000{{{b{Af}}}{{b{Afc}}}{}}0000000000000000000000000000000000{B@dB@b}{{{b{B@f}}}B@f}{{{b{B@h}}}B@h}{{{b{B@j}}}B@j}{{{b{B@b}}}B@b}{{{b{{ACj{c}}}}}{{ACj{c}}}{BdAd}}{{{b{{ADl{c}}}}}{{ADl{c}}}{BdAd}}{{{b{{B@l{c}}}}}{{B@l{c}}}{BdAd}}{{{b{{B@n{c}}}}}{{B@n{c}}}{BdAd}}{{{b{BA`}}}BA`}{{{b{BAb}}}BAb}{{{b{BAd}}}BAd}{{{b{BAf}}}BAf}{{{b{BAh}}}BAh}{{{b{BAj}}}BAj}{{{b{BAl}}}BAl}{{{b{Fb}}}Fb}{{b{b{Afc}}}f{}}000000000000000{bf}000000000000000{{{b{B@j}}{b{B@j}}}Nn}{{b{b{c}}}Nn{}}````{{}{{ADn{c}}}Ad}{c{{Cl{{A@`{eFbc}}A@b}}}Jf{HnI`A@d}}{Ch{{b{c}}}{}}0000000000000000000000000000000000{Ch{{b{Afc}}}{}}0000000000000000000000000000000000{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}{c{{Cl{B@f}}}Cn}{c{{Cl{B@h}}}Cn}2{c{{Cl{B@j}}}Cn}3{c{{Cl{B@b}}}Cn}444444{c{{Cl{BA`}}}Cn}{c{{Cl{{BAn{e}}}}}CnAd}66{c{{Cl{{BB`{e}}}}}CnAd}77{c{{Cl{BBb}}}Cn}{c{{Cl{{BBd{e}}}}}CnAd}99{c{{Cl{{BBf{e}}}}}CnAd}:{c{{Cl{BBh}}}Cn};;;{c{{Cl{BBj}}}Cn}{c{{Cl{BBl}}}Cn}=={c{{Cl{{BBn{e}}}}}CnAd}>{c{{Cl{{BC`{e}}}}}CnAd}?{c{{Cl{BAb}}}Cn}{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}{c{{Cl{BAd}}}Cn}{c{{Cl{BAf}}}Cn}2{c{{Cl{BAh}}}Cn}33{c{{Cl{BAj}}}Cn}{c{{Cl{BAl}}}Cn}55{c{{Cl{Fb}}}Cn}{c{{Cl{{BCb{e}}}}}CnAd}7{c{{Cl{{BCd{e}}}}}CnAd}88{c{{Cl{{BCf{e}}}}}CnAd}{c{{Cl{{BCh{e}}}}}CnAd}:{c{{Cl{{BCj{e}}}}}CnAd};{c{{Cl{{BCl{e}}}}}CnAd}<{Chf}0000000000000000000000000000000000{{{b{B@j}}{b{B@j}}}Db}{{{b{B@b}}{b{B@b}}}Db}{{{b{{ACj{c}}}}{b{{ACj{c}}}}}Db{MbAd}}{{{b{{ADl{c}}}}{b{{ADl{c}}}}}Db{MbAd}}{{{b{{B@l{c}}}}{b{{B@l{c}}}}}Db{MbAd}}{{{b{{B@n{c}}}}{b{{B@n{c}}}}}Db{MbAd}}{{{b{BA`}}{b{BA`}}}Db}{{{b{{BAn{c}}}}{b{{BAn{c}}}}}Db{MbAd}}{{{b{{BB`{c}}}}{b{{BB`{c}}}}}Db{MbAd}}{{{b{Ff}}{b{Ff}}}Db}{{{b{BBb}}{b{BBb}}}Db}{{{b{{BBd{c}}}}{b{{BBd{c}}}}}Db{MbAd}}{{{b{{BBf{c}}}}{b{{BBf{c}}}}}Db{MbAd}}{{{b{{ACn{c}}}}{b{{ACn{c}}}}}Db{MbAd}}{{b{b{c}}}Db{}}0000000000000000000000000000000000000000000000000000000{B@dB@b}0``{{{b{{BDf{}{{BCn{c}}{BD`{e}}{BDb{g}}{BDd{i}}}}}}}e{BdEfJhMhHnI`MbMd}{BdEfJhMhHnI`MbMd}{BdEfJhMhHnI`MbMd}{BdEfJhMhHnI`MbMd}}{{{b{{BDf{}{{BCn{c}}{BD`{e}}{BDb{g}}{BDd{i}}}}}}}c{BdEfJhMhHnI`MbMd}{BdEfJhMhHnI`MbMd}{BdEfJhMhHnI`MbMd}{BdEfJhMhHnI`MbMd}}```{{{b{B@f}}{b{AfEb}}}Eh}0{{{b{B@h}}{b{AfEb}}}Eh}0{{{b{B@j}}{b{AfEb}}}Eh}0{{{b{B@b}}{b{AfEb}}}Eh}0{{{b{{ACj{c}}}}{b{AfEb}}}EhAd}{{{b{{ACj{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{ADl{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{ADl{c}}}}{b{AfEb}}}EhAd}{{{b{{B@l{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{B@n{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{BA`}}{b{AfEb}}}Eh}{{{b{{BAn{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{BB`{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{Ff}}{b{AfEb}}}Eh}0{{{b{BBb}}{b{AfEb}}}Eh}{{{b{{BBd{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{BBf{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{ACn{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{BBh}}{b{AfEb}}}Eh}{{{b{{ADn{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{BBj}}{b{AfEb}}}Eh}{{{b{BBl}}{b{AfEb}}}Eh}{{{b{{BBn{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{BC`{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{BAb}}{b{AfEb}}}Eh}0{{{b{BAd}}{b{AfEb}}}Eh}0{{{b{BAf}}{b{AfEb}}}Eh}0{{{b{BAh}}{b{AfEb}}}Eh}0{{{b{BAj}}{b{AfEb}}}Eh}0{{{b{BAl}}{b{AfEb}}}Eh}0{{{b{Fb}}{b{AfEb}}}Eh}0{{{b{{BCb{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{BCd{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{BCf{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{BCh{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{BCj{c}}}}{b{AfEb}}}Eh{EfAd}}{{{b{{BCl{c}}}}{b{AfEb}}}Eh{EfAd}}{cc{}}00{B@dB@b}111111111{BDhFf}{BDjFf}3333333333{FhBAb}4{A`BAb}{A`BAd}6{FhBAd}{FfBAf}{FhBAf}9{A`BAf}:{A`BAh}{FhBAh}{A`BAj}{BAhBAj}>{BAbBAj}{BAdBAj}{FhBAj}{FhBAl}{A`BAl}{cc{}}00{{{BAn{c}}}{{BCb{c}}}Ad}1{{{AEj{{BB`{c}}}}}{{BCd{c}}}Ad}22{{{AEj{{BBf{c}}}}}{{BCh{c}}}Ad}{{{BBn{c}}}{{BCj{c}}}Ad}4{{{BC`{c}}}{{BCl{c}}}Ad}5{b{{A@n{{BAn{c}}}}}Ad}{b{{A@n{{BB`{c}}}}}Ad}`{{{b{ACl}}{ACj{c}}}{{Hl{{Hj{Hh}}}}}Ad}{{{b{ACl}}{ACn{c}}}{{Hl{{Hj{Hh}}}}}Ad}{{{b{ACl}}}{{Hl{{Hj{Hh}}}}}}{{{b{ACl}}ADj}{{Hl{{Hj{Hh}}}}}}{{{b{ACl}}{ADl{c}}}{{Hl{{Hj{Hh}}}}}Ad}{{{b{ACl}}{ADn{c}}}{{Hl{{Hj{Hh}}}}}Ad}`````````{{}Ch}0000000000000000000000000000000000{{}c{}}0000000000000000000000000000000000{{}{{BDl{An}}}}{{{b{B@j}}}Db}00```{{}{{Cl{HbHd}}}}0000000000000000000000000000000000{{{b{{BDn{}{{BDd{c}}}}}}}c{BdEfJhMhHnI`MbMd}}{{{b{{BDf{}{{BCn{c}}{BD`{e}}{BDb{g}}{BDd{i}}}}}}}{{AEj{i}}}{BdEfJhMhHnI`MbMd}{BdEfJhMhHnI`MbMd}{BdEfJhMhHnI`MbMd}{BdEfJhMhHnI`MbMd}}{{B@jB@d}B@b}````````{{{b{B@j}}{b{B@j}}}{{n{Nn}}}}{b}0000000000000000000000000000000000{{{b{{BDf{}{{BCn{c}}{BD`{e}}{BDb{g}}{BDd{i}}}}}}}g{BdEfJhMhHnI`MbMd}{BdEfJhMhHnI`MbMd}{BdEfJhMhHnI`MbMd}{BdEfJhMhHnI`MbMd}}```{{{b{{BDf{}{{BCn{c}}{BD`{e}}{BDb{g}}{BDd{i}}}}}}}c{BdEfJhMhHnI`MbMd}{BdEfJhMhHnI`MbMd}{BdEfJhMhHnI`MbMd}{BdEfJhMhHnI`MbMd}}````{{{b{B@f}}c}ClJj}{{{b{B@h}}c}ClJj}{{{b{B@j}}c}ClJj}{{{b{B@b}}c}ClJj}{{{b{BA`}}c}ClJj}{{{b{{BAn{c}}}}e}ClAdJj}{{{b{{BB`{c}}}}e}ClAdJj}{{{b{BBb}}c}ClJj}{{{b{{BBd{c}}}}e}ClAdJj}{{{b{{BBf{c}}}}e}ClAdJj}{{{b{BBh}}c}ClJj}{{{b{BBj}}c}ClJj}{{{b{BBl}}c}ClJj}{{{b{{BBn{c}}}}e}ClAdJj}{{{b{{BC`{c}}}}e}ClAdJj}{{{b{BAb}}c}ClJj}{{{b{BAd}}c}ClJj}{{{b{BAf}}c}ClJj}{{{b{BAh}}c}ClJj}{{{b{BAj}}c}ClJj}{{{b{BAl}}c}ClJj}{{{b{Fb}}c}ClJj}{{{b{{BCb{c}}}}e}ClAdJj}{{{b{{BCd{c}}}}e}ClAdJj}{{{b{{BCf{c}}}}e}ClAdJj}{{{b{{BCh{c}}}}e}ClAdJj}{{{b{{BCj{c}}}}e}ClAdJj}{{{b{{BCl{c}}}}e}ClAdJj}{{{b{B@j}}}Ch}```{{{b{Ff}}}{{n{{b{h}}}}}}{{{b{BAb}}}{{n{{b{h}}}}}}{{{b{BAd}}}{{n{{b{h}}}}}}{{{b{BAf}}}{{n{{b{h}}}}}}{{{b{BAh}}}{{n{{b{h}}}}}}{{{b{BAj}}}{{n{{b{h}}}}}}{{{b{BAl}}}{{n{{b{h}}}}}}{{{b{Fb}}}{{n{{b{h}}}}}}{{{b{BAb}}}Bb}{{{b{BAd}}}Bb}{{{b{BAf}}}Bb}{{{b{BAh}}}Bb}{{{b{BAj}}}Bb}{{{b{BAl}}}Bb}{{{b{Fb}}}Bb}{{B@bB@b}c{}}```````{bc{}}000000000000000{bAn}0000000000000````{c{{Cl{e}}}{}{}}00{{{b{Cj}}}{{Cl{B@jc}}}{}}111111{{{Nb{c}}}{{Cl{{BAn{c}}e}}}Ad{}}2{{{Nb{c}}}{{Cl{{BB`{c}}e}}}Ad{}}33333{{{Fd{{b{{Nb{c}}}}Ch}}}{{Cl{{BBf{c}}e}}}Ad{}}44444444444444444444{{}{{Cl{c}}}{}}0000000000000000000000000000000000{bJl}0000000000000000000000000000000000{B@dB@b}`{{}c{}}0000000000000000000000000000000000`````{{bd}f}{b{{b{c}}}{}}{{{b{Af}}}{{b{Afc}}}{}}{{{b{{BE`{ce}}}}}{{BE`{ce}}}{}{}}{{b{b{Afc}}}f{}}{bf}{Ch{{b{c}}}{}}{Ch{{b{Afc}}}{}}{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}{Chf}{{{b{{BE`{ce}}}}{b{AfEb}}}Eh{}{}}{cc{}}{{}Ch}={{}{{Cl{HbHd}}}}{{{Dl{BEb}}BEd}{{BE`{ce}}}{}{}}{b}``{{BEfc}f{}}{{BEhc}{{`{{Hh{}{{Ib{f}}}}Hn}}}{}}{{{b{{BE`{eg}}}}eik}f{}{{BEj{c}}}BEh{{BEl{ce}}}{{AOb{}{{Mj{g}}}}Hn}}{bc{}}{c{{Cl{e}}}{}{}}{{}{{Cl{c}}}{}}{bJl}{{}c{}}`````{{bd}f}000{{{b{{BEn{c}}}}}f{}}{b{{b{c}}}{}}000{{{b{Af}}}{{b{Afc}}}{}}000{{{b{{BF`{c}}}}}{{BF`{c}}}Ad}{{{b{{BFb{c}}}}}{{BFb{c}}}{BdJf}}{{{b{{BEn{c}}}}}{{BEn{c}}}{}}{{{b{BFd}}}BFd}{{b{b{Afc}}}f{}}000{bf}000{{}{{BF`{c}}}Ad}{{}BFd}{Ch{{b{c}}}{}}000{Ch{{b{Afc}}}{}}000{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}000{Chf}000>{{{b{BEl}}e}{{Hl{{Hj{Hh}}}}}{}{{BEj{c}}}}{{{b{{BF`{c}}}}BFf}{{Hl{{Hj{Hh}}}}}Ad}{{{b{{BF`{c}}}}BFh}{{Hl{{Hj{Hh}}}}}Ad}{{{b{{BF`{c}}}}BFj}{{Hl{{Hj{Hh}}}}}Ad}{{{b{{BFb{c}}}}BFh}{{Hl{{Hj{Hh}}}}}Jf}{{{b{{BFb{c}}}}BFf}{{Hl{{Hj{Hh}}}}}Jf}{{{b{{BFb{c}}}}BFj}{{Hl{{Hj{Hh}}}}}Jf}{{{b{{BEn{g}}}}e}{{Hl{{Hj{Hh}}}}}Ad{{BEj{c}}}{{BEl{ce}}I`}}{{{b{BFd}}e}{{Hl{{Hj{Hh}}}}}{}{Hn{BEj{c}}}}{{{b{{BF`{c}}}}{b{AfEb}}}EhAd}{{{b{{BFb{c}}}}{b{AfEb}}}Eh{EfJf}}{{{b{{BEn{c}}}}{b{AfEb}}}EhEf}{{{b{BFd}}{b{AfEb}}}Eh}{cc{}}000{{}Ch}000{{}c{}}000{{}{{Cl{HbHd}}}}000{{BFlc}{{BFb{c}}}Jf}{c{{BEn{c}}}{}}{b}000{bc{}}000{c{{Cl{e}}}{}{}}000{{}{{Cl{c}}}{}}000{bJl}000{{{b{{BEn{c}}}}}f{}}09999{{{BF`{c}}e}{{BF`{c}}}Ad{{BEl{cBFf}}Ef}}{{{BF`{c}}e}{{BF`{c}}}Ad{{BEl{cBFh}}Ef}}{{{BF`{c}}e}{{BF`{c}}}Ad{{AFj{c}}Ef}}{{{BF`{c}}e}{{BF`{c}}}Ad{{BEl{cBFj}}Ef}}`````{{bd}f}00{b{{b{c}}}{}}00{{{b{Af}}}{{b{Afc}}}{}}00{{{b{BFf}}}BFf}{{{b{BFj}}}BFj}{{{b{BFh}}}BFh}{{b{b{Afc}}}f{}}00{bf}00{Ch{{b{c}}}{}}00{Ch{{b{Afc}}}{}}00{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}00{Chf}00{{{b{BFf}}{b{BFf}}}Db}{{{b{BFj}}{b{BFj}}}Db}{{{b{BFh}}{b{BFh}}}Db}{{b{b{c}}}Db{}}00000000000{{{b{BFf}}{b{AfEb}}}Eh}{{{b{BFj}}{b{AfEb}}}Eh}{{{b{BFh}}{b{AfEb}}}Eh}{cc{}}00{ChBFh}{{{b{c}}{b{e}}}Cd{GdGf}Gh}00{{{b{BFf}}{b{Afc}}}fGj}{{{b{BFj}}{b{Afc}}}fGj}{{{b{BFh}}{b{Afc}}}fGj}{{}Ch}00{{}c{}}00{{}{{Cl{HbHd}}}}00{b}00{bc{}}00{c{{Cl{e}}}{}{}}00{{}{{Cl{c}}}{}}00{bJl}00666`````````````````{{bd}f}0`{b{{b{h}}}}00{{{b{F`}}}{{n{{b{l}}}}}}{b{{b{c}}}{}}00{{{b{Af}}}{{b{Afc}}}{}}00{{{b{F`}}}{{n{{b{h}}}}}}{{{b{{ADd{ce}}}}}{{ADd{ce}}}Ad{{ADf{c}}}}{{{b{F`}}}F`}{{b{b{Afc}}}f{}}0{bf}0{{{b{{ADd{ce}}}}{b{{ADd{ce}}}}}NnAd{{ADf{c}}}}{{b{b{c}}}Nn{}}{{}BFn}{{{b{BFn}}}{{Cl{{A@`{cF`e}}A@b}}}{HnI`A@d}Jf}{Ch{{b{c}}}{}}00{Ch{{b{Afc}}}{}}00{{{b{F`}}}{{b{Cj}}}}{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}00{c{{Cl{F`}}}Cn}{Chf}00{{{b{{ADd{ce}}}}{b{{ADd{ce}}}}}DbAd{{ADf{c}}}}{{b{b{c}}}Db{}}000`{{{b{{ADd{ce}}}}{b{AfEb}}}EhAd{{ADf{c}}}}0{{{b{F`}}{b{AfEb}}}Eh}0{cc{}}00{{{Fd{AnBb}}}F`}{A@lF`}{A`F`}{{{b{c}}{b{e}}}Cd{GdGf}Gh}{{{b{ADb}}}{{Hl{{Hj{Hh}}}}}}{{{b{ADh}}{ADd{ce}}}{{Hl{{Hj{Hh}}}}}Ad{{ADf{c}}}}{{{b{{ADd{ce}}}}{b{Afg}}}fAd{{ADf{c}}}Gj}{{}{{b{Cj}}}}{{}Ch}00{{{b{AfAEl}}AEh{AEj{Ch}}Cd}{{Hl{{Hj{Hh}}}}}}{{{b{Af{ADf{}{{BG`{c}}{BGb{e}}{BGd{g}}{BGf{i}}{BGh{k}}}}}}c{b{{AEh{ecg}}}}}{{Kb{f}}}{BGjHnI`JhBGlBGnMhGlBH`BHb}{BHdHnI`JhMhBH`BHb}{BHfHn}{{BHh{g}}Hn{BHj{{b{ADj}}}}GlEf{B`{ADj}}}{{BHl{ecg}}}}{{}c{}}00{{}{{Cl{HbHd}}}}00{{{b{{ADd{ce}}}}{b{{ADd{ce}}}}}{{n{Nn}}}Ad{{ADf{c}}}}{b}00{{{b{F`}}c}ClJj}{{{b{AfAEl}}Ch}{{Hl{{Hj{Hh}}}}}}{{{b{F`}}}{{n{{b{h}}}}}}:{{{b{F`}}}Bb}{bc{}}0{bAn}0<{c{{Cl{e}}}{}{}}00{{}{{Cl{c}}}{}}00{bJl}00<<<````````````````{{bd}f}0000000{{{b{BHn}}Ch}f}{{{b{BI`}}AGn}f}{b{{b{h}}}}00{{{b{BIb}}}{{n{{b{l}}}}}}{b{{b{c}}}{}}00000000{{{b{Af}}}{{b{Afc}}}{}}00000000{{{b{BIb}}}{{n{{b{h}}}}}}{{{b{AEn}}}AEn}{{{b{BHn}}}BHn}{{{b{BId}}}BId}{{{b{BI`}}}BI`}{{{b{BIf}}}BIf}{{{b{BIh}}}BIh}{{{b{BIj}}}BIj}{{{b{BIl}}}BIl}{{b{b{Afc}}}f{}}0000000{bf}0000000{{{b{AEn}}An{AEj{An}}}{{Hj{BIn}}}}{{{b{BIf}}{AEj{An}}}{{Hj{BJ`}}}}{{{b{BIh}}{AEj{An}}}{{Hj{BJb}}}}{{{b{BIj}}{AEj{An}}}{{Hj{BJd}}}}{{{b{BIl}}{AEj{An}}}f}{{{b{AEn}}An{n{An}}}{{Hj{BJ`}}}}{{{b{AEn}}An{n{An}}}{{Hj{BJb}}}}{{{b{AEn}}An{n{An}}}{{Hj{BJd}}}}{{{b{AEn}}An}f}{{}AEn}{Ch{{b{c}}}{}}00000000{Ch{{b{Afc}}}{}}00000000{{{b{BIb}}}{{b{Cj}}}}{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}00000000{Chf}00000000{{{b{AEn}}}{{Cl{Anc}}}{}}{{{b{BIb}}{b{AfEb}}}Eh}0{{{b{AEn}}{b{AfEb}}}Eh}{{{b{BHn}}{b{AfEb}}}Eh}{{{b{BId}}{b{AfEb}}}Eh}{{{b{BI`}}{b{AfEb}}}Eh}{{{b{BIf}}{b{AfEb}}}Eh}{{{b{BIh}}{b{AfEb}}}Eh}{{{b{BIj}}{b{AfEb}}}Eh}{{{b{BIl}}{b{AfEb}}}Eh}{cc{}}{BJfBIb}11111111{{{b{AEn}}{b{Cj}}}{{Cl{BIhBIb}}}}{{{b{AEn}}An{AEj{An}}}{{Hj{BJh}}}}{{{b{BHn}}}Ch}{{{b{BId}}}Ch}{{{b{BIf}}{b{{AId{c}}}}}BHn{{BJj{Cj}}}}{{{b{BIh}}{b{{AId{c}}}}}BId{{BJj{Cj}}}}{{{b{BIj}}{b{{AId{c}}}}}BI`{{BJj{Cj}}}}{{{b{AEn}}{b{Cj}}}{{Cl{BHnBIb}}}}{{{b{AEn}}{b{Cj}}}{{Cl{BIfBIb}}}}{{{b{AEn}}{b{Cj}}}{{Cl{BIdBIb}}}}{{{b{AEn}}{b{Cj}}}{{Cl{BI`BIb}}}}{{{b{AEn}}{b{Cj}}}{{Cl{BIjBIb}}}}{{{b{AEn}}c}{{Cl{AEnBIb}}}AOb}{{{b{AEn}}An{AEj{An}}}{{Hj{BJl}}}}{{}Ch}00000000{{}c{}}00000000{{}{{Cl{HbHd}}}}00000000{{{b{BI`}}}AGn}{b}00000000{{{b{BI`}}}Ch}{{{b{BId}}Ch}f}{{{b{BIb}}}{{n{{b{h}}}}}}{{{b{AEn}}An}{{Hj{AFb}}}}5{{{b{AEn}}An{AEj{An}}}{{Hj{BJn}}}}{bc{}}0000000{bAn}{c{{Cl{e}}}{}{}}00000000{{}{{Cl{c}}}{}}00000000{bJl}00000000{{{b{BId}}BK`}f}>>>>>>>>>`````````````````````````{{bd}f}00000000`{b{{b{h}}}}00{{{b{En}}}{{n{{b{l}}}}}}`{{{b{In}}}{{Hl{{Hj{Hh}}}}}}{b{{b{c}}}{}}000000000{{{b{Af}}}{{b{Afc}}}{}}000000000{{{BKb{ce}}}En{{B`{An}}}{{B`{Bb}}}}{{{b{En}}}{{n{{b{h}}}}}}{{{b{{AD`{c}}}}}{{AD`{c}}}Ad}{{{b{BKd}}}BKd}{{{b{{BKf{c}}}}}{{BKf{c}}}Bd}{{{b{BKh}}}BKh}{{{b{BKj}}}BKj}{{{b{{BKl{c}}}}}{{BKl{c}}}Bd}{{{b{{BKn{ce}}}}}{{BKn{ce}}}BdBd}{{{b{{BKb{ce}}}}}{{BKb{ce}}}BdBd}{{{b{En}}}En}{{b{b{Afc}}}f{}}00000000{bf}00000000{{{b{BKd}}{b{BKd}}}Nn}{{b{b{c}}}Nn{}}{{{b{In}}}{{Hl{{Hj{Hh}}}}}}0{{{b{In}}c}{{Hl{{Hj{Hh}}}}}{{AB`{Ch}}Hn}}{{}{{BKf{c}}}{}}{{}BL`}{{{b{BL`}}c}{{Cl{{A@`{eEnc}}A@b}}}Jf{HnI`A@d}}{Ch{{b{c}}}{}}000000000{Ch{{b{Afc}}}{}}000000000{{{b{En}}}{{b{Cj}}}}{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}0{c{{Cl{BKd}}}Cn}1{c{{Cl{{BKf{e}}}}}CnBLb}2222222{c{{Cl{En}}}Cn}{Chf}000000000`{{{b{BKd}}{b{BKd}}}Db}{{{b{{BKf{c}}}}{b{{BKf{c}}}}}DbMb}{{b{b{c}}}Db{}}0000000`{{{BKb{ce}}}{{Cl{gEn}}}{{B`{An}}}{{B`{Bb}}}{}}{{{b{{AD`{c}}}}{b{AfEb}}}EhAd}{{{b{BKd}}{b{AfEb}}}Eh}{{{b{{BKf{c}}}}{b{AfEb}}}EhEf}{{{b{BKh}}{b{AfEb}}}Eh}{{{b{BKj}}{b{AfEb}}}Eh}{{{b{{BKl{c}}}}{b{AfEb}}}EhEf}{{{b{{BKn{ce}}}}{b{AfEb}}}EhEfEf}{{{b{{BKb{ce}}}}{b{AfEb}}}EhEfEf}{{{b{En}}{b{AfEb}}}Eh}0{{{Kh{c}}}{{AD`{c}}}Ad}{cc{}}0{{{b{{BKf{c}}}}}{{n{Cd}}}BLd}1111111{{{Fd{AnBb}}}En}{A@lEn}{A`En}4{{}BKd}{{{b{c}}{b{e}}}Cd{GdGf}Gh}{{{b{In}}eCd}{{Hl{{Hj{Hh}}}}}Ad{{B`{{AD`{c}}}}HnI`}}{{{b{BKd}}{b{Afc}}}fGj}{{}Ch}000000000{cEnGl}{{}c{}}000000000{{BKhc}En{}}{{BKjc}En{}}{{{BKl{c}}e}En{{B`{An}}}{}}{{{BKn{ce}}g}En{{B`{An}}}{{B`{Cd}}}{}}{{{BKb{ce}}g}En{{B`{An}}}{{B`{Bb}}}{}}{{{b{BKd}}}Db}{{}{{Cl{HbHd}}}}000000000``````{{{b{BKd}}{b{BKd}}}{{n{Nn}}}}{{{b{In}}}{{Hl{{Hj{Hh}}}}}}0{{{b{In}}c}{{Hl{{Hj{Hh}}}}}{{AB`{Ch}}Hn}}{b}000000000``{{{b{BKd}}c}ClJj}{{{b{{BKf{c}}}}e}ClJhJj}{{{b{En}}c}ClJj}{{{b{En}}}{{n{{b{h}}}}}}`{{{b{En}}}Bb}`7{bc{}}00000000{bAn}{c{{Cl{e}}}{}{}}000000000{{}{{Cl{c}}}{}}000000000{bJl}000000000{{{b{In}}e}{{Hl{{Hj{Hh}}}}}Ad{{B`{{N`{c}}}}HnI`}}{{}c{}}000000000`````````````````{{bd}f}`{b{{b{h}}}}00{{{b{Ej}}}{{n{{b{l}}}}}}{{{b{J`}}}{{Hl{{Hj{Hh}}}}}}{b{{b{c}}}{}}0{{{b{Af}}}{{b{Afc}}}{}}0{{{b{Ej}}}{{n{{b{h}}}}}}{{{b{Ej}}}Ej}{{b{b{Afc}}}f{}}{bf}{{{b{J`}}}{{AM`{AEn}}}}0{{}BLf}{{{b{BLf}}c}{{Cl{{A@`{eEjc}}A@b}}}Jf{HnI`A@d}}{Ch{{b{c}}}{}}0{Ch{{b{Afc}}}{}}0{{{b{Ej}}}{{b{Cj}}}}{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}{c{{Cl{Ej}}}Cn}1{Chf}0??`{{{b{Ej}}{b{AfEb}}}Eh}0{cc{}}0{A@lEj}{AnEj}{{}Ch}0{{}c{}}0{{}{{Cl{HbHd}}}}0{{{b{AF`}}}{{b{AEn}}}}{b}0{{{b{BLh}}}{{Hj{AFb}}}}{{{b{Ej}}c}ClJj}{{{b{Ej}}}{{n{{b{h}}}}}}{{{b{Ej}}}Bb}{{{b{J`}}}{{Hl{{Hj{Hh}}}}}}0{bc{}}{bAn}{c{{Cl{e}}}{}{}}0{{}{{Cl{c}}}{}}0{bJl}0==````{{bd}f}{b{{b{c}}}{}}0{{{b{Af}}}{{b{Afc}}}{}}0{{{b{BLj}}}BLj}{{b{b{Afc}}}f{}}{bf}{Ch{{b{c}}}{}}0{Ch{{b{Afc}}}{}}0{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}0{Chf}{{{b{Af{BLl{c}}}}}fHn}1{{{b{BLj}}{b{AfEb}}}Eh}{{{b{{BLl{c}}}}{b{AfEb}}}EhHn}{cc{}}0{{}Ch}0{{}c{}}0{{{BLl{c}}}{{Cl{cBLn}}}Hn}{{}{{Cl{HbHd}}}}0{b}0{{ce}BLjGl{HhHn}}{{cg}{{BLl{e}}}GlHn{{Hh{}{{Ib{e}}}}Hn}}{bc{}}{c{{Cl{e}}}{}{}}0{{}{{Cl{c}}}{}}0{bJl}099``{{}f}{ACbf}```````{b{{b{c}}}{}}{{{b{Af}}}{{b{Afc}}}{}}{{{b{c}}}{{Hl{{Hj{Hh}}}}}{}}{Ch{{Hl{{Hj{Hh}}}}}}{{{b{{AKj{c}}}}}cBM`}{{{b{{AKj{c}}}}Ch}cBM`}{Ch{{b{c}}}{}}{Ch{{b{Afc}}}{}}{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}{{{b{Af{AKj{c}}}}}fBM`}{Chf}{cc{}}{{{b{{AKj{c}}}}}{{b{{Ih{AE`BMbBMd}}}}}BM`}{{{b{{BM`{}{{BMf{c}}}}}}{b{{AEb{AE`}}}}}{{Hl{{Hj{Hh}}}}}{HnI`}}{{}{{AKj{c}}}{BM`BLh}}{{}Ch}{c{{AKj{e}}}{{If{{b{Af{BMj{BMh}}}}}}}{BM`BLh}}{{}c{}}{{}{{Cl{HbHd}}}}{{{b{{AKj{c}}}}}ChBM`}{b}{{{b{{AKj{c}}}}Ch}{{BMl{AE`}}}BM`}{{{b{c}}}{{Hl{{Hj{Hh}}}}}{}}{{{b{Af{AKj{{BM`{}{{BMf{c}}}}}}}}}{{Hl{{Hj{Hh}}}}}{HnI`}}{{{AKj{c}}}fBM`}{{{b{Af{AKj{c}}}}eg}fBM`Gl{HhHn}}{{{b{Af{AKj{c}}}}}fBM`}{{{b{{AKj{c}}}}}bBM`}{{{b{{AKj{c}}}}BMn}fBM`}{c{{Cl{e}}}{}{}}{{}{{Cl{c}}}{}}{bJl}>`````````````{{bd}f}00``{b{{b{c}}}{}}00{{{b{Af}}}{{b{Afc}}}{}}00`{{{b{AE`}}}AE`}{{{b{BMd}}}BMd}{{{b{BMb}}}BMb}{{b{b{Afc}}}f{}}00{bf}00{{{b{AE`}}{b{AE`}}}Nn}{{{b{BMb}}{b{BMb}}}Nn}{{b{b{c}}}Nn{}}0`{{}AE`}{{}BMb}`{Ch{{b{c}}}{}}00{Ch{{b{Afc}}}{}}00{c{{Cl{AE`}}}Cn}{{b{b{Afc}}}{{Cl{{D`{eg}}}}}{}{}{}}00{c{{Cl{BMb}}}Cn}{Chf}00{{{b{AE`}}{b{AE`}}}Db}{{{b{BMb}}{b{BMb}}}Db}{{b{b{c}}}Db{}}0000000{{{b{BN`}}}c{}}0{{{b{AE`}}{b{AfEb}}}Eh}{{{b{BMd}}{b{AfEb}}}Eh}{{{b{BMb}}{b{AfEb}}}Eh}{cc{}}00{{{b{c}}{b{e}}}Cd{GdGf}Gh}0{{{b{AE`}}{b{Afc}}}fGj}{{{b{BMb}}{b{Afc}}}fGj}{{}{{b{Cj}}}}{{{b{BN`}}}Cd}{{}Ch}00{{{b{AfBNb}}c{b{{AEh{ecg}}}}}{{Kb{f}}}{}{}{}}{{}c{}}00{{{b{BNd}}{b{c}}}e{}{}}`{{}{{Cl{HbHd}}}}00{{{b{BNd}}{b{c}}}Ch{}}`{{{AEj{BNf}}}BMn}{{{b{BMn}}}c{}}{{{b{BN`}}}{{AEj{c}}}{}}{{{b{AE`}}{b{AE`}}}{{n{Nn}}}}{{{b{BMb}}{b{BMb}}}{{n{Nn}}}}`{b}00`{{{b{BN`}}}c{}}`0{{{b{AE`}}c}ClJj}{{{b{BMb}}c}ClJj}`{{}{{b{Cj}}}}{{{b{BN`}}}Cd}`{bc{}}00{{{b{BNd}}{b{c}}{b{e}}}{{n{{Fd{gi}}}}}{}{}{}{}}`{{}Ch}{c{{Cl{e}}}{}{}}00{{}{{Cl{c}}}{}}00{bJl}00```{{}c{}}00`{{{b{BLd}}}Cd}","D":"EIl","p":[[1,"reference"],[5,"Private",4541],[1,"unit"],[10,"Error",4542],[6,"Error",0,4543],[5,"Backtrace",4544],[6,"Option",4545],[6,"QueryError",0],[5,"Leaf",0,4546],[10,"NodeType",4547],[0,"mut"],[5,"NotFoundSnafu",0],[5,"MissingSnafu",0],[5,"ErrorSnafu",0],[5,"String",4548],[10,"Into",4549],[5,"StatusCode",4550],[10,"Clone",4551],[5,"ApiState",0],[5,"UpgradeLock",4552],[5,"Commitment",4553],[10,"Versions",4547],[10,"Resolvable",0,4554],[10,"Committable",4553],[10,"RngCore",4555],[1,"u64"],[5,"Options",0],[1,"usize"],[1,"str"],[6,"Result",4556],[10,"Deserializer",4557],[5,"With",4558],[1,"bool"],[5,"UpgradeProposalData",4559],[5,"UpgradeThreshold",4560],[5,"SimpleCertificate",4560],[5,"RwLock",4561],[5,"Arc",4562],[5,"Error",4563],[6,"BlockError",4546],[5,"Formatter",4564],[5,"Error",4564],[10,"Debug",4564],[8,"Result",4564],[6,"Error",4246],[6,"Error",311],[6,"Error",3938],[6,"Error",3577],[6,"Error",2290],[1,"tuple"],[6,"TimestampConversionError",2290,4565],[6,"Error",4566],[1,"never"],[5,"OwnedFd",4567],[10,"IntoFilelike",4568],[10,"IntoSocketlike",4568],[5,"QuorumProposal",4546],[10,"Hash",4569],[10,"Sized",4570],[10,"BuildHasher",4569],[10,"Hasher",4569],[10,"Display",4564],[5,"QuorumData",4559],[5,"SuccessThreshold",4560],[5,"Layout",4571],[5,"LayoutError",4571],[5,"DynGuard",4572],[10,"Future",4573],[5,"Box",4574],[5,"Pin",4575],[10,"Send",4570],[10,"Sync",4570],[17,"Output"],[8,"BoxFuture",4576],[10,"FnOnce",4577],[5,"SystemContextHandle",4578],[10,"AvailabilityDataSource",311,4579],[10,"UpdateDataSource",1096,4580],[10,"NodeDataSource",3938,4581],[10,"StatusDataSource",4246,4582],[10,"VersionedDataSource",1096,4580],[10,"NodeImplementation",4547],[10,"StaticVersionType",4583],[10,"Serialize",4584],[10,"Serializer",4584],[5,"TypeId",4585],[10,"UpdateAvailabilityData",311,4579],[5,"BlockInfo",311,4579],[8,"Result",4586],[5,"InconsistentLeafError",311,4587],[5,"LeafQueryData",311,4587],[8,"BlockHash",311,4587],[5,"PayloadQueryData",311,4587],[5,"VidCommonQueryData",311,4587],[5,"TransactionQueryData",311,4587],[5,"FetchLeafSnafu",311],[5,"FetchBlockSnafu",311],[5,"FetchTransactionSnafu",311],[5,"InvalidTransactionIndexSnafu",311],[5,"CustomSnafu",311],[17,"TransactionIndex"],[17,"Iter"],[17,"InclusionProof"],[10,"QueryablePayload",311,4587],[10,"PartialEq",4588],[10,"Eq",4588],[10,"Ord",4588],[10,"DeserializeOwned",4557],[17,"Item"],[10,"Iterator",4589],[6,"LeafId",311,4579],[6,"BlockId",311,4579],[5,"BlockQueryData",311,4587],[5,"BlockSummaryQueryData",311,4587],[5,"TransactionSummaryQueryData",311,4587],[5,"PayloadMetadata",311,4587],[5,"VidCommonMetadata",311,4587],[5,"RequestSnafu",311],[6,"Ordering",4588],[8,"VidCommon",0,4590],[6,"Fetch",311,4591],[10,"ErrorCompat",4592],[17,"Source"],[5,"NoneError",4592],[10,"IntoError",4592],[8,"Payload",0],[5,"Options",311],[5,"Api",4593],[6,"ApiError",4593],[10,"ReadState",4594],[8,"TransactionIndex",311,4587],[8,"Transaction",0],[8,"LeafHash",311,4587],[6,"RequestError",4595],[8,"Result",4566],[17,"LeafRange"],[17,"BlockRange"],[17,"PayloadRange"],[17,"PayloadMetadataRange"],[17,"VidCommonRange"],[17,"VidCommonMetadataRange"],[10,"Stream",4596],[10,"Unpin",4570],[10,"RangeBounds",4597],[8,"TransactionHash",311,4587],[8,"VidCommitment",0,4590],[8,"Header",0],[8,"Metadata",0],[8,"VidShare",0,4590],[8,"QuorumCertificate",4560],[8,"TransactionInclusionProof",311,4587],[10,"QueryableHeader",311,4587],[5,"Duration",4598],[5,"ExtensibleDataSource",1096,4599],[5,"MetricsDataSource",1096,4600],[10,"Transaction",1096,4580],[6,"BlockIdentifier",2290,4565],[10,"ExplorerDataSource",2290,4601],[5,"GetBlockSummariesRequest",2290,4565],[6,"WindowStart",3938,4581],[10,"MerklizedStateHeightPersistence",3577,4602],[6,"Snapshot",3577,4602],[10,"MerklizedState",3577,4602],[10,"MerklizedStateDataSource",3577,4602],[5,"TaggedBase64",4603],[6,"TransactionIdentifier",2290,4565],[5,"GetTransactionSummariesRequest",2290,4565],[5,"MockTypes",4405],[5,"Event",4604],[10,"TestableDataSource",4365],[10,"Default",4605],[5,"MerkleProof",4606],[5,"Vec",4607],[10,"UpdateStateData",3577,4602],[5,"PrometheusMetrics",3694],[10,"HasMetrics",4246,4582],[10,"Metrics",4608],[17,"Transaction"],[17,"ReadOnly"],[5,"FetchingDataSource",1217],[10,"AvailabilityProvider",1217],[5,"Builder",1217],[10,"PruneStorage",1828],[5,"Pruner",1217],[5,"Config",1874],[8,"Builder",1358],[5,"Error",1874,4586],[5,"Path",4609],[5,"FileSystemStorage",1564],[5,"AtomicStoreLoader",4610],[1,"f64"],[8,"FileSystemDataSource",1338],[8,"SqlDataSource",1358],[10,"AggregatesStorage",1373],[10,"NodeStorage",1373],[10,"AvailabilityStorage",1373],[10,"ExplorerStorage",1373],[10,"MerklizedStateHeightStorage",1373],[10,"MerklizedStateStorage",1373],[10,"UpdateAvailabilityStorage",1373],[10,"UpdateAggregatesStorage",1373],[1,"slice"],[5,"Transaction",1423],[6,"FailableAction",1423],[5,"FailStorage",1423],[5,"PrunerCfg",1828],[10,"PrunerConfig",1828],[10,"PrunedHeightStorage",1828],[5,"Transaction",1564],[10,"Revert",1564],[17,"Target"],[5,"FileSystemStorageInner",1564],[10,"Deref",4611],[5,"RwLockWriteGuard",4561],[5,"RwLockReadGuard",4561],[6,"PersistenceError",4612],[5,"Transaction",1655],[5,"NoStorage",1655],[6,"DataSource",1725],[6,"Transaction",1725],[5,"MockNetwork",4365],[17,"Pruner"],[1,"u16"],[5,"Transaction",1874,4613],[10,"TransactionMode",1874,4613],[1,"i32"],[5,"OffsetDateTime",4614],[5,"Migration",1874,4615],[10,"Params",1874,4613],[8,"Query",1874,4613],[5,"QueryBuilder",1874,4616],[8,"QueryResult",0],[8,"Db",1874,4617],[10,"Encode",4618],[10,"Type",4619],[5,"Chain",4586],[5,"Write",1874,4613],[5,"Read",1874,4613],[5,"SqlStorage",1874],[5,"Pruner",1874],[17,"Database"],[10,"Executor",1874,4620],[10,"Database",1874,4621],[10,"Execute",4620],[5,"Sqlite",1874,4622],[5,"FmtValue",4623],[5,"PgConnectOptions",4624],[1,"u32"],[10,"IntoIterator",4625],[6,"Type",4615],[8,"QueryAs",1874,4613],[10,"FromRow",4626],[5,"TestArgs",4627],[5,"Error",4628],[1,"array"],[5,"TmpDb",2249],[5,"MonetaryValue",2290,4629],[1,"i128"],[5,"CurrencyMismatchError",2290,4630],[5,"InvalidCurrencyCodeError",2290,4630],[6,"CurrencyCode",2290,4630],[5,"BlockRange",2290,4565],[5,"TransactionRange",2290,4565],[5,"Timestamp",2290,4565],[6,"GetBlockDetailError",2290,4565],[6,"GetBlockSummariesError",2290,4565],[6,"GetTransactionDetailError",2290,4565],[6,"GetTransactionSummariesError",2290,4565],[6,"GetExplorerSummaryError",2290,4565],[6,"GetSearchResultsError",2290,4565],[5,"BlockDetail",2290,4565],[5,"BlockSummary",2290,4565],[5,"FeeAttribution",2290,4565],[5,"TransactionDetail",2290,4565],[5,"TransactionSummary",2290,4565],[6,"TransactionSummaryFilter",2290,4565],[5,"GenesisOverview",2290,4565],[5,"ExplorerHistograms",2290,4565],[5,"ExplorerSummary",2290,4565],[5,"SearchResult",2290,4565],[5,"BlockDetailResponse",2290],[5,"BlockSummaryResponse",2290],[5,"TransactionDetailResponse",2290],[5,"TransactionSummariesResponse",2290],[5,"ExplorerSummaryResponse",2290],[5,"SearchResultResponse",2290],[17,"BalanceAmount"],[17,"WalletAddress"],[17,"ProposerId"],[17,"NamespaceId"],[10,"ExplorerHeader",2290,4631],[5,"TryFromIntError",4632],[5,"ComponentRange",4633],[6,"Resettable",4634],[10,"ExplorerTransaction",2290,4631],[5,"Fetcher",3345],[5,"Semaphore",4635],[8,"ExponentialBackoff",4636],[10,"LocalCallback",3345],[10,"Callback",3345],[10,"Request",3487],[10,"Provider",3377],[5,"TestProvider",3377,4637],[5,"AnyProvider",3377,4638],[5,"QueryServiceProvider",3377,4639],[5,"NoFetching",3377],[5,"PayloadRequest",3487],[5,"LeafRequest",3487],[5,"VidCommonRequest",3487],[5,"Url",4640],[5,"Options",3577],[17,"Key"],[17,"Entry"],[17,"T"],[17,"Commit"],[17,"Digest"],[10,"Index",4641],[10,"ToTraversalPath",4641],[10,"FromStr",4642],[10,"CanonicalSerialize",4643],[10,"CanonicalDeserialize",4643],[10,"Element",4641],[10,"NodeValue",4641],[10,"MerkleCommitment",4641],[10,"TryFrom",4549],[10,"DigestAlgorithm",4641],[5,"Counter",3694],[5,"Histogram",3694],[6,"MetricsError",3694],[5,"Gauge",3694],[5,"CounterFamily",3694],[5,"GaugeFamily",3694],[5,"HistogramFamily",3694],[5,"TextFamily",3694],[10,"CounterFamily",4608],[10,"Counter",4608],[10,"Gauge",4608],[10,"Histogram",4608],[6,"Error",4644],[10,"GaugeFamily",4608],[10,"AsRef",4549],[10,"HistogramFamily",4608],[10,"TextFamily",4608],[1,"i64"],[5,"CustomSnafu",3938],[5,"SyncStatus",3938,4645],[5,"TimeWindowQueryData",3938,4645],[5,"RequestSnafu",3938],[5,"QuerySnafu",3938],[5,"QueryVidSnafu",3938],[5,"QueryWindowSnafu",3938],[5,"Options",3938],[10,"Deserialize",4557],[10,"HeightIndexed",4539],[5,"Options",4246],[10,"UpdateStatusData",4246,4582],[5,"BackgroundTask",4318],[5,"Task",4318],[5,"JoinError",4646],[10,"DataSourceLifeCycle",4365],[5,"MockNodeImpl",4405],[5,"MockVersions",4405],[17,"Storage"],[8,"BLSPubKey",4647],[5,"HotShotConfig",4648],[8,"SignatureKey",0],[8,"MockTransaction",4405],[8,"MockHeader",4405],[8,"MockMerkleTree",4405],[8,"MockPayload",4405],[1,"u8"],[15,"Custom",303],[15,"Availability",303],[15,"Node",303],[15,"Status",303],[15,"MerklizedState",303],[15,"Explorer",303],[15,"Error",310],[15,"InvalidTransactionIndex",1088],[15,"Custom",1088],[15,"FetchLeaf",1088],[15,"FetchBlock",1088],[15,"FetchTransaction",1088],[15,"Request",1088],[6,"Storage",1725],[15,"NoStorage",1827],[5,"TestMerkleTreeMigration",2249],[15,"Custom",3690],[15,"Request",3690],[15,"Query",3690],[15,"NoSuchMetric",3934],[15,"NoSuchSubgroup",3934],[15,"Prometheus",3934],[15,"QueryVid",4237],[15,"QueryWindow",4237],[15,"Custom",4237],[15,"Request",4237],[15,"Query",4237],[15,"Internal",4316],[15,"Request",4316],[8,"MockQuorumProposal",4405],[8,"MockStorage",4405],[8,"MockAuctionResults",4405]],"r":[[4,4543],[9,4546],[22,4554],[26,4590],[27,4590],[28,4590],[311,4579],[312,4587],[313,4579],[314,4579],[315,4587],[317,4587],[321,4591],[331,4587],[335,4587],[336,4579],[337,4587],[343,4587],[345,4587],[348,4587],[349,4587],[353,4587],[354,4587],[355,4587],[356,4587],[358,4587],[359,4587],[360,4579],[361,4587],[363,4587],[1096,1217],[1097,4599],[1098,1217],[1099,1338],[1100,4600],[1102,1358],[1103,4580],[1105,4580],[1106,4580],[1339,1564],[1359,1874],[1360,4586],[1361,4615],[1363,4613],[1368,0],[1371,2249],[1376,1423],[1377,1564],[1380,1655],[1382,1874],[1879,4621],[1881,4617],[1882,4586],[1883,4620],[1884,4613],[1885,4615],[1887,4613],[1889,4613],[1890,4613],[1891,4616],[1893,4613],[1896,4622],[1898,4613],[1900,4613],[1905,4613],[2107,4649],[2108,0],[2175,4613],[2177,4613],[2290,4565],[2293,4565],[2295,4565],[2296,4565],[2298,4565],[2299,4565],[2304,4630],[2305,4630],[2310,4601],[2311,4631],[2312,4565],[2313,4565],[2315,4631],[2316,4565],[2320,4565],[2322,4565],[2325,4565],[2327,4565],[2329,4565],[2331,4565],[2333,4565],[2335,4565],[2337,4565],[2343,4630],[2350,4629],[2354,4565],[2363,4565],[2368,4565],[2369,4565],[2372,4565],[2374,4565],[2375,4565],[2377,4565],[2379,4565],[2380,4565],[2388,4565],[3348,3377],[3349,3487],[3377,4638],[3380,4639],[3381,4637],[3585,4602],[3586,4602],[3587,4602],[3591,4602],[3593,4602],[3938,4587],[3939,4579],[3945,4581],[3955,4645],[3957,4645],[3958,4581],[4247,4582],[4251,4582],[4252,4582]],"b":[[92,"impl-Leaf%3CTYPES%3E"],[93,"impl-Committable-for-Leaf%3CTYPES%3E"],[150,"impl-Display-for-Leaf%3CTYPES%3E"],[151,"impl-Debug-for-Leaf%3CTYPES%3E"],[152,"impl-Display-for-Error"],[153,"impl-Debug-for-Error"],[157,"impl-Display-for-QueryError"],[158,"impl-Debug-for-QueryError"],[161,"impl-From%3CError%3E-for-Error"],[162,"impl-From%3CError%3E-for-Error"],[163,"impl-From%3CError%3E-for-Error"],[164,"impl-From%3CError%3E-for-Error"],[165,"impl-From%3CError%3E-for-Error"],[166,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[171,"impl-From%3CTimestampConversionError%3E-for-QueryError"],[172,"impl-From%3CError%3E-for-QueryError"],[176,"impl-From%3CD%3E-for-ApiState%3CD%3E"],[177,"impl-From%3CArc%3CD%3E%3E-for-ApiState%3CD%3E"],[688,"impl-Debug-for-LeafId%3CTypes%3E"],[689,"impl-Display-for-LeafId%3CTypes%3E"],[690,"impl-Debug-for-BlockId%3CTypes%3E"],[691,"impl-Display-for-BlockId%3CTypes%3E"],[694,"impl-Display-for-InconsistentLeafError%3CTypes%3E"],[695,"impl-Debug-for-InconsistentLeafError%3CTypes%3E"],[710,"impl-Display-for-Error"],[711,"impl-Debug-for-Error"],[714,"impl-From%3Cusize%3E-for-LeafId%3CTypes%3E"],[716,"impl-From%3CCommitment%3CLeaf%3CTypes%3E%3E%3E-for-LeafId%3CTypes%3E"],[718,"impl-From%3Cusize%3E-for-BlockId%3CTypes%3E"],[719,"impl-From%3CCommitment%3C%3CTypes+as+NodeType%3E::BlockHeader%3E%3E-for-BlockId%3CTypes%3E"],[743,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[744,"impl-From%3CRequestError%3E-for-Error"],[1113,"impl-NodeDataSource%3CTypes%3E-for-ExtensibleDataSource%3CD,+U%3E"],[1114,"impl-StatusDataSource-for-ExtensibleDataSource%3CD,+U%3E"],[1225,"impl-NodeDataSource%3CTypes%3E-for-FetchingDataSource%3CTypes,+S,+P%3E"],[1226,"impl-StatusDataSource-for-FetchingDataSource%3CTypes,+S,+P%3E"],[1341,"impl-FetchingDataSource%3CTypes,+FileSystemStorage%3CTypes%3E,+P%3E"],[1342,"impl-DataSourceLifeCycle-for-FetchingDataSource%3CMockTypes,+FileSystemStorage%3CMockTypes%3E,+P%3E"],[1364,"impl-DataSourceLifeCycle-for-FetchingDataSource%3CMockTypes,+SqlStorage,+P%3E"],[1365,"impl-FetchingDataSource%3CTypes,+SqlStorage,+P%3E"],[1576,"impl-Transaction-for-Transaction%3CRwLockWriteGuard%3C\'a,+FileSystemStorageInner%3CTypes%3E%3E%3E"],[1577,"impl-Transaction-for-Transaction%3CRwLockReadGuard%3C\'a,+FileSystemStorageInner%3CTypes%3E%3E%3E"],[1636,"impl-Transaction-for-Transaction%3CRwLockWriteGuard%3C\'a,+FileSystemStorageInner%3CTypes%3E%3E%3E"],[1637,"impl-Transaction-for-Transaction%3CRwLockReadGuard%3C\'a,+FileSystemStorageInner%3CTypes%3E%3E%3E"],[1737,"impl-NodeDataSource%3CMockTypes%3E-for-DataSource"],[1738,"impl-StatusDataSource-for-DataSource"],[1914,"impl-AsRef%3Cdyn+Error+%2B+Send+%2B+Sync%3E-for-Error"],[1915,"impl-AsRef%3Cdyn+Error%3E-for-Error"],[2051,"impl-Display-for-Error"],[2052,"impl-Debug-for-Error"],[2053,"impl-Debug-for-Migration"],[2054,"impl-Display-for-Migration"],[2816,"impl-Display-for-CurrencyMismatchError"],[2817,"impl-Debug-for-CurrencyMismatchError"],[2818,"impl-Display-for-InvalidCurrencyCodeError"],[2819,"impl-Debug-for-InvalidCurrencyCodeError"],[2820,"impl-Display-for-CurrencyCode"],[2821,"impl-Debug-for-CurrencyCode"],[2822,"impl-Debug-for-MonetaryValue"],[2823,"impl-Display-for-MonetaryValue"],[2824,"impl-Display-for-BlockIdentifier%3CTypes%3E"],[2825,"impl-Debug-for-BlockIdentifier%3CTypes%3E"],[2826,"impl-Debug-for-TransactionIdentifier%3CTypes%3E"],[2827,"impl-Display-for-TransactionIdentifier%3CTypes%3E"],[2833,"impl-Display-for-TimestampConversionError"],[2834,"impl-Debug-for-TimestampConversionError"],[2845,"impl-Debug-for-GetBlockDetailError"],[2846,"impl-Display-for-GetBlockDetailError"],[2847,"impl-Display-for-GetBlockSummariesError"],[2848,"impl-Debug-for-GetBlockSummariesError"],[2849,"impl-Display-for-GetTransactionDetailError"],[2850,"impl-Debug-for-GetTransactionDetailError"],[2851,"impl-Debug-for-GetTransactionSummariesError"],[2852,"impl-Display-for-GetTransactionSummariesError"],[2853,"impl-Debug-for-GetExplorerSummaryError"],[2854,"impl-Display-for-GetExplorerSummaryError"],[2855,"impl-Debug-for-GetSearchResultsError"],[2856,"impl-Display-for-GetSearchResultsError"],[2857,"impl-Display-for-Error"],[2858,"impl-Debug-for-Error"],[2878,"impl-From%3CTryFromIntError%3E-for-TimestampConversionError"],[2879,"impl-From%3CComponentRange%3E-for-TimestampConversionError"],[2890,"impl-From%3CError%3E-for-GetBlockDetailError"],[2892,"impl-From%3CQueryError%3E-for-GetBlockDetailError"],[2893,"impl-From%3CQueryError%3E-for-GetBlockSummariesError"],[2895,"impl-From%3CError%3E-for-GetBlockSummariesError"],[2896,"impl-From%3CTimestampConversionError%3E-for-GetTransactionDetailError"],[2897,"impl-From%3CError%3E-for-GetTransactionDetailError"],[2899,"impl-From%3CQueryError%3E-for-GetTransactionDetailError"],[2901,"impl-From%3CQueryError%3E-for-GetTransactionSummariesError"],[2902,"impl-From%3CError%3E-for-GetTransactionSummariesError"],[2903,"impl-From%3CQueryError%3E-for-GetExplorerSummaryError"],[2904,"impl-From%3CGetTransactionSummariesError%3E-for-GetExplorerSummaryError"],[2906,"impl-From%3CGetBlockDetailError%3E-for-GetExplorerSummaryError"],[2907,"impl-From%3CGetBlockSummariesError%3E-for-GetExplorerSummaryError"],[2908,"impl-From%3CError%3E-for-GetExplorerSummaryError"],[2909,"impl-From%3CError%3E-for-GetSearchResultsError"],[2910,"impl-From%3CQueryError%3E-for-GetSearchResultsError"],[3427,"impl-Provider%3CTypes,+PayloadRequest%3E-for-AnyProvider%3CTypes%3E"],[3428,"impl-Provider%3CTypes,+LeafRequest%3E-for-AnyProvider%3CTypes%3E"],[3429,"impl-Provider%3CTypes,+VidCommonRequest%3E-for-AnyProvider%3CTypes%3E"],[3430,"impl-Provider%3CTypes,+LeafRequest%3E-for-QueryServiceProvider%3CVer%3E"],[3431,"impl-Provider%3CTypes,+PayloadRequest%3E-for-QueryServiceProvider%3CVer%3E"],[3432,"impl-Provider%3CTypes,+VidCommonRequest%3E-for-QueryServiceProvider%3CVer%3E"],[3638,"impl-Debug-for-Snapshot%3CTypes,+T,+ARITY%3E"],[3639,"impl-Display-for-Snapshot%3CTypes,+T,+ARITY%3E"],[3640,"impl-Debug-for-Error"],[3641,"impl-Display-for-Error"],[3645,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[3646,"impl-From%3CRequestError%3E-for-Error"],[3647,"impl-From%3CQueryError%3E-for-Error"],[3811,"impl-Debug-for-MetricsError"],[3812,"impl-Display-for-MetricsError"],[3831,"impl-PrometheusMetrics"],[3832,"impl-Metrics-for-PrometheusMetrics"],[4097,"impl-Display-for-Error"],[4098,"impl-Debug-for-Error"],[4110,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[4111,"impl-From%3CRequestError%3E-for-Error"],[4112,"impl-From%3CQueryError%3E-for-Error"],[4285,"impl-Display-for-Error"],[4286,"impl-Debug-for-Error"],[4289,"impl-From%3CRequestError%3E-for-Error"],[4290,"impl-From%3CString%3E-for-Error"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAO8OKAECAAEABQAAAAgAAQALAAEADwAAABMAAwAYAAEAHgAMACwAAgAyAA8ARQAXAF4AAABgAAEAYwAsAJcACQCiAAUArAABALAAAgC0AAMAuQAAALsAAQC/AA0A1QACANkACQDkAAEA5wAAAOoACQD1AAQA+wACAP8AGgAbAQgAKAEPADoBAAA8AQMAQQEAAEMBAABFAQAARwEAAEkBAQBMAQEAUAEHAFkBBABfAQEAYgEDAGcBAgBrARcAhAELAJEBAQCUASsAxwFCAAsCZAByAjcAsQIXAMsCAADNAgAAzwIBANICAADXAgAA2gIAAN4CAADgAgAA6AIVAP8CCAAJAw8AGgMXAEgDBgBRAwAAVAMYAG4DAABwAwIAdAMBAHwDHwCfAwEAogM3ANwDAADgAwAA5AMrABEELQBBBAgASwQBAE4EAQBUBAQAWgQbAHcEAQB7BBoAmAQAAJsEBAChBAAAowQDAKgEBQCwBAgAugQDAL8EAgDFBAwA1AQFANsEAADeBAgA6QQEAPEEGAANBQMAFAUFABsFEAA6BQAAPAUBAD8FAABBBQAARAUAAEYFCgBUBQEAVwUBAFoFBABhBQIAZQUEAGsFBABxBQAAdAUJAH8FAACCBQoAjwUAAJMFQADWBQEA2QUbAPgFJAAeBg0ALgYPAEEGFABZBgMAXwYHAGgGDwB5BhYAkgYTAKgGHADGBiAA6gYVAAMHJwAsBwoAOAcCAD0HAQBBBwIARQcAAEcHCwBZBwAAYQcCAHMHBQB7BwEAfgcDAIMHFACcBxAAsQcBALQHBQC7ByQA4wcQAAQIDQATCAAAGggAAB4IDAAsCAwAPggNAFcICQBiCAAAZAgAAGsIAQBuCAoAgAgAAIIIAACECAAAhggBAIoIAgCOCAUAlQgjALoIAQC+CBwA3QgDAOMIEAD1CAAA+QgBAP4IAgAECQIADgkCABIJAAAUCQEAFwkAABkJAAAbCQAAHQkAAB8JAAAhCQAAIwkEACkJBQAyCQEANQkGAD4JAgBDCQEASAkBAE4JBwBXCRAAaQlnANIJNgAKCksAVwoFAF4KmQD6CgEA/goCAAILAAAECwAABgsBAAkLKAA/CwEASwsAAE0LAQBQCwIAVAsAAFYLAwBbCwQAYwsAAGULAABoCwEAawsAAG0LAgB2CysAxQsqAPILKwAfDAIAIwwDACkMAAAsDBYARAwRAFcMlQDuDCMAFQ0MACMNAAAlDQIAKg0BAC0NBAA3DQMAPA0lAGQNCwB0DQMAfA0ZAJgNAwClDS8A2A0JAOUNHAAEDgMACQ4AAAsOKgA3DgMAPg4GAEYOAwBODgkAWQ4EAF8ODwB1DgMAew5yAO8OAAD5DgUABQ8JABgPTQBnDwUAbg8AAHAPAAByDwAAdA8BAHcPJACdD1oA+g8KAA8QAgATEA4ALBAsAFoQYgC+EAEAwhADAMgQFgDhEBIA9hABAPsQAwABEREAFBELACERBAAnEQQALREJADgRDQBIEQUATxEtAIARCQCNEQAAjxEDAJQRBACaEQIAnhEAAKARAgCkEQEApxEDAKwRCQC5EQIAvREAAA=="}]]')); if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; else if (window.initSearch) window.initSearch(searchIndex); -//{"start":39,"fragment_lengths":[110224]} \ No newline at end of file +//{"start":39,"fragment_lengths":[113011]} \ No newline at end of file diff --git a/search.desc/hotshot_query_service/hotshot_query_service-desc-0-.js b/search.desc/hotshot_query_service/hotshot_query_service-desc-0-.js index 5539a6347..9649e8fb5 100644 --- a/search.desc/hotshot_query_service/hotshot_query_service-desc-0-.js +++ b/search.desc/hotshot_query_service/hotshot_query_service-desc-0-.js @@ -1 +1 @@ -searchState.loadedDescShard("hotshot_query_service", 0, "The HotShot Query Service is a minimal, generic query …\nRead-only wrapper for API state which does not require …\nContains the error value\nThere was an error while trying to fetch the requested …\nSNAFU context selector for the QueryError::Error variant\nThis is the consensus-internal analogous concept to a …\nThe requested resource exists but is not currently …\nSNAFU context selector for the QueryError::Missing variant\nThe requested resource does not exist or is not known to …\nSNAFU context selector for the QueryError::NotFound variant\nContains the success value\nA reference to a T which can be resolved into a whole T.\nItem within a Payload.\nVID commitment type\nVID common type\nVID share type\nQueries for HotShot chain state.\nThe block header contained in this leaf.\nGet a mutable reference to the block header contained in …\nOptional block payload.\nConsume the selector and return the associated error\nConsume the selector and return the associated error\nConsume the selector and return the associated error\nCalculate the leaf commitment, which is gated on the …\nGet a commitment to the underlying object.\nPersistent storage and sources of data consumed by APIs.\nValidate that a leaf has the right upgrade certificate to …\nConsume the selector and return a Result with the …\nConsume the selector and return a Result with the …\nConsume the selector and return a Result with the …\nFetching missing data from remote providers.\nFill this leaf with the block payload.\nFill this leaf with the block payload, without checking …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConstructs a leaf from a given quorum proposal.\nCreate a new leaf from its components.\nHeight of this leaf in the chain.\nEmbed migrations from the given directory into the current …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nThe QC linking this leaf to its parent in the chain.\nApi for querying merklized state\nA node’s view of a HotShot chain\nCommitment to this leaf’s parent.\nA commitment to the block payload contained in this leaf.\nRun an instance of the HotShot Query service with no …\nQueries for node-specific state and uncommitted data.\nAsync task utilites.\nGet the underlying object if it is available without …\nCommon functionality provided by types used in this crate.\nTake the block payload from the leaf and return it if it …\nThe QC linking this leaf to its parent in the chain.\nTime when this leaf was created.\nAn interface for querying a HotShot blockchain.\nA block hash is the hash of the block header.\nInformation about a block.\nSNAFU context selector for the Error::Custom variant\nAn in-progress request to fetch some data.\nSNAFU context selector for the Error::FetchBlock variant\nSNAFU context selector for the Error::FetchLeaf variant\nSNAFU context selector for the Error::FetchTransaction …\nA proof that a certain transaction exists in the block.\nSNAFU context selector for the …\nEnumerate the transactions in this block.\nA block payload whose contents (e.g. individual …\nSNAFU context selector for the Error::Request variant\nAn index which can be used to efficiently retrieve a …\nAppend information about a new block to the database.\nThe hash of the block containing this transaction.\nThe height of the block containing this transaction.\nConsume the selector and return the associated error\nConsume the selector and return the associated error\nConsume the selector and return the associated error\nConsume the selector and return the associated error\nConsume the selector and return the associated error\nGet the index of the transaction with a given hash, if it …\nGet the index of the transaction with a given hash, if it …\nConvert this Fetch to a Result with the provided error …\nEnumerate the transactions in the block with their indices.\nEnumerate the transactions in the block with their indices.\nAdditional API specification files to merge with …\nConsume the selector and return a Result with the …\nConsume the selector and return a Result with the …\nConsume the selector and return a Result with the …\nConsume the selector and return a Result with the …\nConsume the selector and return a Result with the …\nTimeout for failing requests due to missing data.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the transaction with the given hash.\nThe hash of this transaction.\nThe (0-based) position of this transaction within its …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nWhether this block is empty of transactions.\nWhether this block is empty of transactions.\nDoes this fetch represent an unresolved query?\nList the transaction indices in the block.\nThe number of transactions in the block.\nTransform the result of this fetch.\nCollect information about a Leaf.\nGet the index of the nth transaction.\nGet the index of the nth transaction.\nGet the nth transaction.\nGet the nth transaction.\nGet the nth transaction, along with an inclusion proof.\nGet the nth transaction, along with an inclusion proof.\nGet an inclusion proof for a transaction with a given …\nGet an inclusion proof for a transaction with a given …\nA proof of inclusion of this transaction in its block.\nWait for the data to become available, if it is not …\nGet a transaction by its block-specific index.\nGet a transaction by its block-specific index.\nThe underlying transaction data.\nGet the transaction with a given hash, if it is in the …\nGet the transaction with a given hash, if it is in the …\nGet the transaction with a given hash, if it is in the …\nGet the transaction with a given hash, if it is in the …\nGet a transaction by its block-specific index, along with …\nGet the requested data if it is available immediately.\nConvert this Fetch to a Result with the provided error …\nWait for the requested data to become available, but only …\nWrapper to add extensibility to an existing data source.\nA minimal data source for the status API provided in this …\nA unit of atomicity for updating a shared data sourec.\nA transaction which can read and modify the data source.\nAn extension trait for types which implement the update …\nA data source with an atomic transaction-based …\nGeneric tests we can instantiate for all the availability …\nAsynchronous retrieval of missing data.\nReturns the argument unchanged.\nReturns the argument unchanged.\nAccess the underlying data source.\nMutably access the underlying data source.\nCalls U::from(self).\nCalls U::from(self).\nGeneric tests we can instantiate for all the node data …\nGeneric tests we can instantiate for any data source with …\nStart a read-only transaction on the data source.\nGeneric tests we can instantiate for all the status data …\nPersistent storage for data sources.\nUpdate query state based on a new consensus event.\nStart an atomic transaction on the data source.\nA provider which can be used as a fetcher by the …\nBuilder for FetchingDataSource with configuration.\nThe most basic kind of data source.\nBuild a FetchingDataSource with these options.\nBuild a FetchingDataSource with the given storage and …\nConnect to a remote database.\nCreate a new FileSystemDataSource with storage at path.\nCreate a new FileSystemDataSource using a persistent …\nRun without an aggregator.\nRun without proactive fetching.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConstruct a new builder with the given storage and fetcher …\nOpen an existing FileSystemDataSource from storage at path.\nOpen an existing FileSystemDataSource using a persistent …\nAdvance the version of the persistent store without …\nAdd a delay between active fetches in proactive scans.\nAdds a delay between chunk fetches during proactive scans.\nSet the interval (denominated in minor scans) between …\nSet the offset (denominated in minor scans) before the …\nSet the maximum delay between retries of failed operations.\nSet the minimum delay between retries of failed operations.\nSet the time interval between minor proactive fetching …\nSet the number of items to process at a time when scanning …\nSet the number of items to process at a time when loading …\nSet the maximum number of simultaneous fetches.\nSet the multiplier for exponential backoff when retrying …\nSet the randomization factor for randomized backoff when …\nSet the maximum time to retry failed operations before …\nA data source for the APIs provided in this crate, backed …\nCreate a new FileSystemDataSource with storage at path.\nCreate a new FileSystemDataSource using a persistent …\nOpen an existing FileSystemDataSource from storage at path.\nOpen an existing FileSystemDataSource using a persistent …\nAdvance the version of the persistent store without …\nThe Error type, a wrapper around a dynamic error type.\nRepresents a schema migration to be run on the database, …\nA data source for the APIs provided in this crate, backed …\nConnect to a remote database.\nEmbed migrations from the given directory into the current …\nPersistent storage for a HotShot blockchain.\nAn interface for querying Data and Statistics from the …\nThis trait defines methods that a data source should …\nThe block height for which aggregate statistics are …\nget_block_detail is a method that retrieves the details of …\nget_block_summaries is a method that retrieves a list of …\nget_explorer_summary is a method that retrieves a summary …\nget_search_results is a method that retrieves the results …\nget_transaction_detail is a method that retrieves the …\nget_transaction_summaries is a method that retrieves a …\nSearch the database for missing objects and generate a …\nUpdate aggregate statistics based on a new block.\nTarget any action for failure.\nStorage wrapper for error injection.\nA specific action that can be targetted to inject an error.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nStorage for the APIs provided in this crate, backed by a …\nCreate a new FileSystemStorage with storage at path.\nCreate a new FileSystemStorage using a persistent storage …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nOpen an existing FileSystemStorage from storage at path.\nOpen an existing FileSystemStorage using a persistent …\nAdvance the version of the persistent store without …\nMock storage implementation which doesn’t actually store …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nEither Postgres or no storage.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nNumber of blocks to remove in a single pruning operation.\nReturns the argument unchanged.\nPruning interval\nCalls U::from(self).\nMaximum disk usage (in basis points).\nMinimum data retention period\nDisk space threshold (in bytes).\nTarget data retention period\nThe concrete type used as a buffer for arguments while …\nThe concrete Arguments implementation for this database.\nThe concrete Column implementation for this database.\nPostgres client config.\nThe concrete Connection implementation for this database.\nA database driver.\nThe concrete database backing a SQL data source.\nThe Error type, a wrapper around a dynamic error type.\nA type that contains or can provide a database connection …\nA collection of parameters with a statically known length.\nRepresents a schema migration to be run on the database, …\nThe display name for this database driver.\nA collection of parameters which can be bound to a SQL …\nHelper type for programatically constructing queries.\nThe concrete QueryResult implementation for this database.\nMarker type indicating a transaction with read-only access …\nThe concrete Row implementation for this database.\nStorage for the APIs provided in this crate, backed by a …\nSqlite database driver.\nThe concrete Statement implementation for this database.\nAn atomic SQL transaction.\nThe concrete TransactionManager implementation for this …\nTrait for marker types indicating what type of access a …\nThe concrete TypeInfo implementation for this database.\nThe schemes for database URLs that should match this …\nThe concrete type used to hold an owned copy of the …\nThe concrete type used to hold a reference to the …\nMarker type indicating a transaction with read-write …\nGet the timestamp from when the Migration was applied. None…\nDisable pruning and reconstruct previously pruned data.\nGet the backtrace for this Error.\nAdd an argument and return its name as a formal parameter …\nConvert range bounds to a SQL WHERE clause constraining a …\nConnect to the database, setting options on the underlying …\nAn iterator of the chain of source errors contained by …\nGet the Migration checksum. Checksum is formed from the …\nConnect to the database with this config.\nConnect to a remote database.\nSet the maximum lifetime of a connection.\nWrap the error value with additional context.\nSet the name of the database to connect to.\nThe migrations requied to build the default schema for …\nAttempt to downcast the error object to a concrete type.\nDowncast this error object by mutable reference.\nDowncast this error object by reference.\nExecute the query and return the total number of rows …\nExecute the query and return the total number of rows …\nExecute multiple queries and return the rows affected from …\nExecute multiple queries and return the rows affected from …\nExecute a statement that is expected to modify at least …\nExecute a statement that is expected to modify at least …\nExecute a statement that is expected to modify exactly one …\nExecute a statement that is expected to modify exactly one …\nExecute the query and return the generated results as a …\nExecute the query and return the generated results as a …\nExecute the query and return all the generated results, …\nExecute the query and return all the generated results, …\nExecute multiple queries and return the generated results …\nExecute the query and returns exactly one row.\nExecute the query and returns exactly one row.\nExecute the query and returns at most one row.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nRetreives a Merkle path from the database\nConstruct a SQL WHERE clause which filters for a header …\nSet the hostname of the database server.\nSet the maximum idle time of a connection.\nEmbed the contents of a directory in your crate.\nEmbed migrations from the given directory into the current …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns true if E is the type held by this error object.\nLoad a header from storage.\nSet the maximum number of connections to maintain at any …\nAdd custom migrations to run when connecting to the …\nSet the minimum number of connections to maintain at any …\nCreate a new error object from a printable error message.\nGet the Migration Name\nCreate a new error object from any error type.\nSkip all migrations when connecting to the database.\nSet a password for connecting to the database.\nSet the port on which to connect to the database.\nGet the Prefix\nPrepare the SQL query to inspect the type information of …\nPrepare the SQL query to inspect the type information of …\nPrepare the SQL query, with parameter type information, to …\nNote: The prune operation may not immediately free up …\nEnable pruning with a given configuration.\nFinalize the query with a constructed SQL statement.\nFinalize the query with a constructed SQL statement and a …\nReset the schema on connection.\nThe lowest level cause of this error — this error’s …\nSet the name of the schema to use for queries.\nLog at WARN level any time a SQL statement takes longer …\nUse TLS for an encrypted connection to the database.\nCreate an unapplied migration, name and version are parsed …\nSet the DB user to connect as.\nGet the Migration version\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nBalanceAmount is a type that represents a general balance …\nBlockDetail is a struct that represents the details of a …\nBlockDetailResponse is a struct that represents the …\nBlockIdentifier is an enum that represents multiple ways …\nBlockRange is a struct that represents a range for a …\nBlockSummary is a struct that represents a summary …\nBlockSummaryResponse is a struct that represents the …\nCurrencyCode represents an enumeration of all …\nCurrencyMismatchError is an error that occurs when two …\nError is an enum that represents the various errors that …\nAn interface for querying Data and Statistics from the …\nExplorerHeader is a trait that represents certain …\nExplorerHistograms provides a series of data points that …\nExplorerSummary is a struct that represents an at-a-glance …\nExplorerSummaryResponse is a struct that represents the …\nExplorerTransaction is a trait that allows the Explorer …\nFeeAttribution represents a specific attribution of fees …\nGenesisOverview provides a summary overview of the block …\nGetBlockDetailError represents an error that has occurred …\nGetBlockSummariesError represents an error that has …\nGetBlockSummariesRequest is a struct that represents an …\nGetExplorerSummaryError represents an error that has …\nGetSearchResultsError represents an error that has …\nGetTransactionDetailError represents an error that has …\nGetTransactionSummariesError represents an error that has …\nGetTransactionSummariesRequest is a struct that represents …\nInvalidCurrencyCodeError is an error that occurs when an …\nMonetaryValues is a struct that paris a CurrencyCode with …\nNamespaceId is a type that represents the id of a …\nNamespaceId is a type that represents the id of a …\nProposerId is a type that represents the proposer id of …\nSearchResult is a struct that represents the results of …\nSearchResultResponse is a struct that represents the …\nTimestamp represents a specific point in time that has a …\nTimestampConversionError represents an error that has …\nTransactionDetail is a struct that represents the details …\nTransactionDetailResponse is a struct that represents the …\nTransactionIdentifier is an enum that represents multiple …\nTransactionRange is a struct that represents a range for a …\nTransactionSummariesResponse is a struct that represents …\nTransactionSummary is a struct that represents a summary …\nTransactionSummaryFilter represents the various filters …\nWalletAddress is a type that represents the address of a …\nadd attempts to add the two MonetaryValues together. This …\nbtc is a convenience function to create a MonetaryValue …\ndefine_api is a function that defines the API endpoints …\ndeserialize attempts to convert a string into a …\ndeserialize converts a string representation of a RFC3339 …\nesp is a convenience function to create a MonetaryValue …\neth is a convenience function to create a MonetaryValue …\nThe wallet address of the fee info account contained …\nThe balance amount of the fee info contained within the …\nfmt formats the error into a human readable string\nfmt formats the error into a human readable string\nfmt formats the currency code into a human readable string\nfmt formats the MonetaryValue into a human readable …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nfrom converts an i128 into a MonetaryValue with the USD …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nget_block_detail is a method that retrieves the details of …\nget_block_summaries is a method that retrieves a list of …\nget_explorer_summary is a method that retrieves a summary …\nget_search_results is a method that retrieves the results …\nget_transaction_detail is a method that retrieves the …\nget_transaction_summaries is a method that retrieves a …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nA collection of namespace ids that are contained within …\nnew creates a new MonetaryValue instance with the given …\nThe proposer id of the block as stored within the block …\nThe balance amount of the reward for constructing the …\nserialize converts the error into a struct representation\nserialize converts the error into a struct representation\nserialize converts the MonetaryValue into a String …\nserialize converts the timestamp into a string …\nsignificant_digits represents the total number of …\nsub attempts to subtract the two MonetaryValues together. …\nusd is a convenience function to create a MonetaryValue …\nA callback to process the result of a request.\nManagement of concurrent requests to fetch resources.\nA callback to process the result of a request.\nReturns the argument unchanged.\nCalls U::from(self).\nAsynchronous fetching from external data availability …\nRequests for fetching resources.\nFetch a resource, if it is not already being fetched.\nAdaptor combining multiple data availability providers.\nTrivial Provider where fetching always fails.\nA provider which is able to satisfy requests for data of …\nData availability provider backed by another instance of …\nAdaptor to add test-only functionality to an existing …\nDelay fetch requests until unblock.\nCause subsequent requests to fail.\nFetch a resource.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nAllow blocked fetch requests to proceed.\nStop requests from failing as a result of a previous call …\nAdd a sub-provider which fetches blocks.\nAdd a sub-provider which fetches leaves.\nAdd a sub-provider which fetches both blocks and leaves.\nAdd a sub-provider which fetches VID common data.\nA request for a leaf with a given height.\nA request for a payload with a given commitment.\nA request for a resource.\nThe type of resource that will be returned as a successful …\nA request for VID common data.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nThis trait should be implemented by the MerkleTree that …\nThis trait defines methods that a data source should …\nSnapshot can be queried by block height (index) or merkle …\nThis trait defines methods for updating the storage with …\nAdditional API specification files to merge with …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nRetrieves the field in the header containing the Merkle …\nInsert a forgotten path into the tree.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nRetrieves the name of the state being queried.\nGet the height of the tree\nA Counter metric.\nA CounterFamily metric.\nA Gauge metric.\nA GaugeFamily metric.\nA Histogram metric.\nA HistogramFamily metric.\nA Prometheus-based implementation of a Metrics registry.\nA TextFamily metric.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet a gauge family in this sub-group by name.\nGet a counter in this sub-group by name.\nGet a counter family in this sub-group by name.\nGet a gauge in this sub-group by name.\nGet a histogram in this sub-group by name.\nGet a histogram family in this sub-group by name.\nGet a (possibly nested) subgroup of this group by its path.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nSNAFU context selector for the Error::Custom variant\nSNAFU context selector for the Error::Query variant\nSNAFU context selector for the Error::QueryVid variant\nSNAFU context selector for the Error::QueryWindow variant\nSNAFU context selector for the Error::Request variant\nResponse to a /:resource/window query.\nConsume the selector and return the associated error\nAdditional API specification files to merge with …\nConsume the selector and return a Result with the …\nReturns the argument unchanged.\nReturns the argument unchanged.\nThe block height of the block that starts the window.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nSearch the database for missing objects and generate a …\nAdditional API specification files to merge with …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nA background task which is cancelled on Drop\nA task handle which can be joined, but is cancelled on Drop\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nWait for the task to complete and get its output.\nSpawn a background task, which will be cancelled when …\nSpawn a task, which will be cancelled when dropped.\nBacking storage for the data source.\nReturns the argument unchanged.\nCalls U::from(self).\nSetup runs after setting up the network but before …\nA type alias for the mock base version\nThe block header to append\nBlock number.\nFast commitment for builder verification\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nPer spec, justification\nblock metdata\nVID commitment to the payload.\nPossible timeout or view sync certificate.\nrandom\nshould_return_err is a testing utility to validate …\nTimestamp when this header was created.\nList of transactions.\nPossible upgrade certificate, which the leader may …\nThe URL of the builder to reach out to.\nCurView from leader when proposing leaf\nTypes which have a notion of “height” within a chain.") \ No newline at end of file +searchState.loadedDescShard("hotshot_query_service", 0, "The HotShot Query Service is a minimal, generic query …\nRead-only wrapper for API state which does not require …\nContains the error value\nThere was an error while trying to fetch the requested …\nSNAFU context selector for the QueryError::Error variant\nThis is the consensus-internal analogous concept to a …\nThe requested resource exists but is not currently …\nSNAFU context selector for the QueryError::Missing variant\nThe requested resource does not exist or is not known to …\nSNAFU context selector for the QueryError::NotFound variant\nContains the success value\nA reference to a T which can be resolved into a whole T.\nItem within a Payload.\nVID commitment type\nVID common type\nVID share type\nQueries for HotShot chain state.\nThe block header contained in this leaf.\nGet a mutable reference to the block header contained in …\nOptional block payload.\nConsume the selector and return the associated error\nConsume the selector and return the associated error\nConsume the selector and return the associated error\nCalculate the leaf commitment, which is gated on the …\nGet a commitment to the underlying object.\nPersistent storage and sources of data consumed by APIs.\nValidate that a leaf has the right upgrade certificate to …\nConsume the selector and return a Result with the …\nConsume the selector and return a Result with the …\nConsume the selector and return a Result with the …\nFetching missing data from remote providers.\nFill this leaf with the block payload.\nFill this leaf with the block payload, without checking …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConstructs a leaf from a given quorum proposal.\nCreate a new leaf from its components.\nHeight of this leaf in the chain.\nEmbed migrations from the given directory into the current …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nThe QC linking this leaf to its parent in the chain.\nApi for querying merklized state\nA node’s view of a HotShot chain\nCommitment to this leaf’s parent.\nA commitment to the block payload contained in this leaf.\nRun an instance of the HotShot Query service with no …\nQueries for node-specific state and uncommitted data.\nAsync task utilites.\nGet the underlying object if it is available without …\nCommon functionality provided by types used in this crate.\nTake the block payload from the leaf and return it if it …\nThe QC linking this leaf to its parent in the chain.\nTime when this leaf was created.\nAn interface for querying a HotShot blockchain.\nA block hash is the hash of the block header.\nInformation about a block.\nSNAFU context selector for the Error::Custom variant\nAn in-progress request to fetch some data.\nSNAFU context selector for the Error::FetchBlock variant\nSNAFU context selector for the Error::FetchLeaf variant\nSNAFU context selector for the Error::FetchTransaction …\nA proof that a certain transaction exists in the block.\nSNAFU context selector for the …\nEnumerate the transactions in this block.\nA summary of a payload without all the data.\nA block payload whose contents (e.g. individual …\nSNAFU context selector for the Error::Request variant\nAn index which can be used to efficiently retrieve a …\nA summary of a VID payload without all the data.\nAppend information about a new block to the database.\nThe hash of the block containing this transaction.\nThe height of the block containing this transaction.\nConsume the selector and return the associated error\nConsume the selector and return the associated error\nConsume the selector and return the associated error\nConsume the selector and return the associated error\nConsume the selector and return the associated error\nGet the index of the transaction with a given hash, if it …\nGet the index of the transaction with a given hash, if it …\nConvert this Fetch to a Result with the provided error …\nEnumerate the transactions in the block with their indices.\nEnumerate the transactions in the block with their indices.\nAdditional API specification files to merge with …\nConsume the selector and return a Result with the …\nConsume the selector and return a Result with the …\nConsume the selector and return a Result with the …\nConsume the selector and return a Result with the …\nConsume the selector and return a Result with the …\nTimeout for failing requests due to missing data.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the transaction with the given hash.\nThe hash of this transaction.\nThe (0-based) position of this transaction within its …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nWhether this block is empty of transactions.\nWhether this block is empty of transactions.\nDoes this fetch represent an unresolved query?\nList the transaction indices in the block.\nThe number of transactions in the block.\nTransform the result of this fetch.\nCollect information about a Leaf.\nGet the index of the nth transaction.\nGet the index of the nth transaction.\nGet the nth transaction.\nGet the nth transaction.\nGet the nth transaction, along with an inclusion proof.\nGet the nth transaction, along with an inclusion proof.\nGet an inclusion proof for a transaction with a given …\nGet an inclusion proof for a transaction with a given …\nA proof of inclusion of this transaction in its block.\nWait for the data to become available, if it is not …\nGet a transaction by its block-specific index.\nGet a transaction by its block-specific index.\nThe underlying transaction data.\nGet the transaction with a given hash, if it is in the …\nGet the transaction with a given hash, if it is in the …\nGet the transaction with a given hash, if it is in the …\nGet the transaction with a given hash, if it is in the …\nGet a transaction by its block-specific index, along with …\nGet the requested data if it is available immediately.\nConvert this Fetch to a Result with the provided error …\nWait for the requested data to become available, but only …\nWrapper to add extensibility to an existing data source.\nA minimal data source for the status API provided in this …\nA unit of atomicity for updating a shared data sourec.\nA transaction which can read and modify the data source.\nAn extension trait for types which implement the update …\nA data source with an atomic transaction-based …\nGeneric tests we can instantiate for all the availability …\nAsynchronous retrieval of missing data.\nReturns the argument unchanged.\nReturns the argument unchanged.\nAccess the underlying data source.\nMutably access the underlying data source.\nCalls U::from(self).\nCalls U::from(self).\nGeneric tests we can instantiate for all the node data …\nGeneric tests we can instantiate for any data source with …\nStart a read-only transaction on the data source.\nGeneric tests we can instantiate for all the status data …\nPersistent storage for data sources.\nUpdate query state based on a new consensus event.\nStart an atomic transaction on the data source.\nA provider which can be used as a fetcher by the …\nBuilder for FetchingDataSource with configuration.\nThe most basic kind of data source.\nBuild a FetchingDataSource with these options.\nBuild a FetchingDataSource with the given storage and …\nConnect to a remote database.\nCreate a new FileSystemDataSource with storage at path.\nCreate a new FileSystemDataSource using a persistent …\nRun without an aggregator.\nRun without proactive fetching.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConstruct a new builder with the given storage and fetcher …\nOpen an existing FileSystemDataSource from storage at path.\nOpen an existing FileSystemDataSource using a persistent …\nAdvance the version of the persistent store without …\nAdd a delay between active fetches in proactive scans.\nSet the number of items to process at a time when …\nAdds a delay between chunk fetches during proactive scans.\nSet the interval (denominated in minor scans) between …\nSet the offset (denominated in minor scans) before the …\nSet the maximum delay between retries of failed operations.\nSet the minimum delay between retries of failed operations.\nSet the time interval between minor proactive fetching …\nSet the number of items to process at a time when scanning …\nSet the number of items to process at a time when loading …\nSet the maximum number of simultaneous fetches.\nSet the multiplier for exponential backoff when retrying …\nSet the randomization factor for randomized backoff when …\nSet the maximum time to retry failed operations before …\nA data source for the APIs provided in this crate, backed …\nCreate a new FileSystemDataSource with storage at path.\nCreate a new FileSystemDataSource using a persistent …\nOpen an existing FileSystemDataSource from storage at path.\nOpen an existing FileSystemDataSource using a persistent …\nAdvance the version of the persistent store without …\nThe Error type, a wrapper around a dynamic error type.\nRepresents a schema migration to be run on the database, …\nA data source for the APIs provided in this crate, backed …\nConnect to a remote database.\nEmbed migrations from the given directory into the current …\nPersistent storage for a HotShot blockchain.\nAn interface for querying Data and Statistics from the …\nThis trait defines methods that a data source should …\nThe block height for which aggregate statistics are …\nget_block_detail is a method that retrieves the details of …\nget_block_summaries is a method that retrieves a list of …\nget_explorer_summary is a method that retrieves a summary …\nget_search_results is a method that retrieves the results …\nget_transaction_detail is a method that retrieves the …\nget_transaction_summaries is a method that retrieves a …\nSearch the database for missing objects and generate a …\nUpdate aggregate statistics based on a new block.\nTarget any action for failure.\nStorage wrapper for error injection.\nA specific action that can be targetted to inject an error.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nStorage for the APIs provided in this crate, backed by a …\nCreate a new FileSystemStorage with storage at path.\nCreate a new FileSystemStorage using a persistent storage …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nOpen an existing FileSystemStorage from storage at path.\nOpen an existing FileSystemStorage using a persistent …\nAdvance the version of the persistent store without …\nMock storage implementation which doesn’t actually store …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nEither Postgres or no storage.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nNumber of blocks to remove in a single pruning operation.\nReturns the argument unchanged.\nPruning interval\nCalls U::from(self).\nMaximum disk usage (in basis points).\nMinimum data retention period\nDisk space threshold (in bytes).\nTarget data retention period\nThe concrete type used as a buffer for arguments while …\nThe concrete Arguments implementation for this database.\nThe concrete Column implementation for this database.\nPostgres client config.\nThe concrete Connection implementation for this database.\nA database driver.\nThe concrete database backing a SQL data source.\nThe Error type, a wrapper around a dynamic error type.\nA type that contains or can provide a database connection …\nA collection of parameters with a statically known length.\nRepresents a schema migration to be run on the database, …\nThe display name for this database driver.\nA collection of parameters which can be bound to a SQL …\nHelper type for programatically constructing queries.\nThe concrete QueryResult implementation for this database.\nMarker type indicating a transaction with read-only access …\nThe concrete Row implementation for this database.\nStorage for the APIs provided in this crate, backed by a …\nSqlite database driver.\nThe concrete Statement implementation for this database.\nAn atomic SQL transaction.\nThe concrete TransactionManager implementation for this …\nTrait for marker types indicating what type of access a …\nThe concrete TypeInfo implementation for this database.\nThe schemes for database URLs that should match this …\nThe concrete type used to hold an owned copy of the …\nThe concrete type used to hold a reference to the …\nMarker type indicating a transaction with read-write …\nGet the timestamp from when the Migration was applied. None…\nDisable pruning and reconstruct previously pruned data.\nGet the backtrace for this Error.\nAdd an argument and return its name as a formal parameter …\nConvert range bounds to a SQL WHERE clause constraining a …\nConnect to the database, setting options on the underlying …\nAn iterator of the chain of source errors contained by …\nGet the Migration checksum. Checksum is formed from the …\nConnect to the database with this config.\nConnect to a remote database.\nSet the maximum lifetime of a connection.\nWrap the error value with additional context.\nSet the name of the database to connect to.\nThe migrations requied to build the default schema for …\nAttempt to downcast the error object to a concrete type.\nDowncast this error object by mutable reference.\nDowncast this error object by reference.\nExecute the query and return the total number of rows …\nExecute the query and return the total number of rows …\nExecute multiple queries and return the rows affected from …\nExecute multiple queries and return the rows affected from …\nExecute a statement that is expected to modify at least …\nExecute a statement that is expected to modify at least …\nExecute a statement that is expected to modify exactly one …\nExecute a statement that is expected to modify exactly one …\nExecute the query and return the generated results as a …\nExecute the query and return the generated results as a …\nExecute the query and return all the generated results, …\nExecute the query and return all the generated results, …\nExecute multiple queries and return the generated results …\nExecute the query and returns exactly one row.\nExecute the query and returns exactly one row.\nExecute the query and returns at most one row.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nRetreives a Merkle path from the database\nConstruct a SQL WHERE clause which filters for a header …\nSet the hostname of the database server.\nSet the maximum idle time of a connection.\nEmbed the contents of a directory in your crate.\nEmbed migrations from the given directory into the current …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns true if E is the type held by this error object.\nLoad a header from storage.\nSet the maximum number of connections to maintain at any …\nAdd custom migrations to run when connecting to the …\nSet the minimum number of connections to maintain at any …\nCreate a new error object from a printable error message.\nGet the Migration Name\nCreate a new error object from any error type.\nSkip all migrations when connecting to the database.\nSet a password for connecting to the database.\nSet the port on which to connect to the database.\nGet the Prefix\nPrepare the SQL query to inspect the type information of …\nPrepare the SQL query to inspect the type information of …\nPrepare the SQL query, with parameter type information, to …\nNote: The prune operation may not immediately free up …\nEnable pruning with a given configuration.\nFinalize the query with a constructed SQL statement.\nFinalize the query with a constructed SQL statement and a …\nReset the schema on connection.\nThe lowest level cause of this error — this error’s …\nSet the name of the schema to use for queries.\nLog at WARN level any time a SQL statement takes longer …\nUse TLS for an encrypted connection to the database.\nCreate an unapplied migration, name and version are parsed …\nSet the DB user to connect as.\nGet the Migration version\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nBalanceAmount is a type that represents a general balance …\nBlockDetail is a struct that represents the details of a …\nBlockDetailResponse is a struct that represents the …\nBlockIdentifier is an enum that represents multiple ways …\nBlockRange is a struct that represents a range for a …\nBlockSummary is a struct that represents a summary …\nBlockSummaryResponse is a struct that represents the …\nCurrencyCode represents an enumeration of all …\nCurrencyMismatchError is an error that occurs when two …\nError is an enum that represents the various errors that …\nAn interface for querying Data and Statistics from the …\nExplorerHeader is a trait that represents certain …\nExplorerHistograms provides a series of data points that …\nExplorerSummary is a struct that represents an at-a-glance …\nExplorerSummaryResponse is a struct that represents the …\nExplorerTransaction is a trait that allows the Explorer …\nFeeAttribution represents a specific attribution of fees …\nGenesisOverview provides a summary overview of the block …\nGetBlockDetailError represents an error that has occurred …\nGetBlockSummariesError represents an error that has …\nGetBlockSummariesRequest is a struct that represents an …\nGetExplorerSummaryError represents an error that has …\nGetSearchResultsError represents an error that has …\nGetTransactionDetailError represents an error that has …\nGetTransactionSummariesError represents an error that has …\nGetTransactionSummariesRequest is a struct that represents …\nInvalidCurrencyCodeError is an error that occurs when an …\nMonetaryValues is a struct that paris a CurrencyCode with …\nNamespaceId is a type that represents the id of a …\nNamespaceId is a type that represents the id of a …\nProposerId is a type that represents the proposer id of …\nSearchResult is a struct that represents the results of …\nSearchResultResponse is a struct that represents the …\nTimestamp represents a specific point in time that has a …\nTimestampConversionError represents an error that has …\nTransactionDetail is a struct that represents the details …\nTransactionDetailResponse is a struct that represents the …\nTransactionIdentifier is an enum that represents multiple …\nTransactionRange is a struct that represents a range for a …\nTransactionSummariesResponse is a struct that represents …\nTransactionSummary is a struct that represents a summary …\nTransactionSummaryFilter represents the various filters …\nWalletAddress is a type that represents the address of a …\nadd attempts to add the two MonetaryValues together. This …\nbtc is a convenience function to create a MonetaryValue …\ndefine_api is a function that defines the API endpoints …\ndeserialize attempts to convert a string into a …\ndeserialize converts a string representation of a RFC3339 …\nesp is a convenience function to create a MonetaryValue …\neth is a convenience function to create a MonetaryValue …\nThe wallet address of the fee info account contained …\nThe balance amount of the fee info contained within the …\nfmt formats the error into a human readable string\nfmt formats the error into a human readable string\nfmt formats the currency code into a human readable string\nfmt formats the MonetaryValue into a human readable …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nfrom converts an i128 into a MonetaryValue with the USD …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nget_block_detail is a method that retrieves the details of …\nget_block_summaries is a method that retrieves a list of …\nget_explorer_summary is a method that retrieves a summary …\nget_search_results is a method that retrieves the results …\nget_transaction_detail is a method that retrieves the …\nget_transaction_summaries is a method that retrieves a …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nA collection of namespace ids that are contained within …\nnew creates a new MonetaryValue instance with the given …\nThe proposer id of the block as stored within the block …\nThe balance amount of the reward for constructing the …\nserialize converts the error into a struct representation\nserialize converts the error into a struct representation\nserialize converts the MonetaryValue into a String …\nserialize converts the timestamp into a string …\nsignificant_digits represents the total number of …\nsub attempts to subtract the two MonetaryValues together. …\nusd is a convenience function to create a MonetaryValue …\nA callback to process the result of a request.\nManagement of concurrent requests to fetch resources.\nA callback to process the result of a request.\nReturns the argument unchanged.\nCalls U::from(self).\nAsynchronous fetching from external data availability …\nRequests for fetching resources.\nFetch a resource, if it is not already being fetched.\nAdaptor combining multiple data availability providers.\nTrivial Provider where fetching always fails.\nA provider which is able to satisfy requests for data of …\nData availability provider backed by another instance of …\nAdaptor to add test-only functionality to an existing …\nDelay fetch requests until unblock.\nCause subsequent requests to fail.\nFetch a resource.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nAllow blocked fetch requests to proceed.\nStop requests from failing as a result of a previous call …\nAdd a sub-provider which fetches blocks.\nAdd a sub-provider which fetches leaves.\nAdd a sub-provider which fetches both blocks and leaves.\nAdd a sub-provider which fetches VID common data.\nA request for a leaf with a given height.\nA request for a payload with a given commitment.\nA request for a resource.\nThe type of resource that will be returned as a successful …\nA request for VID common data.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nThis trait should be implemented by the MerkleTree that …\nThis trait defines methods that a data source should …\nSnapshot can be queried by block height (index) or merkle …\nThis trait defines methods for updating the storage with …\nAdditional API specification files to merge with …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nRetrieves the field in the header containing the Merkle …\nInsert a forgotten path into the tree.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nRetrieves the name of the state being queried.\nGet the height of the tree\nA Counter metric.\nA CounterFamily metric.\nA Gauge metric.\nA GaugeFamily metric.\nA Histogram metric.\nA HistogramFamily metric.\nA Prometheus-based implementation of a Metrics registry.\nA TextFamily metric.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGet a gauge family in this sub-group by name.\nGet a counter in this sub-group by name.\nGet a counter family in this sub-group by name.\nGet a gauge in this sub-group by name.\nGet a histogram in this sub-group by name.\nGet a histogram family in this sub-group by name.\nGet a (possibly nested) subgroup of this group by its path.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nSNAFU context selector for the Error::Custom variant\nSNAFU context selector for the Error::Query variant\nSNAFU context selector for the Error::QueryVid variant\nSNAFU context selector for the Error::QueryWindow variant\nSNAFU context selector for the Error::Request variant\nResponse to a /:resource/window query.\nConsume the selector and return the associated error\nAdditional API specification files to merge with …\nConsume the selector and return a Result with the …\nReturns the argument unchanged.\nReturns the argument unchanged.\nThe block height of the block that starts the window.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nSearch the database for missing objects and generate a …\nAdditional API specification files to merge with …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nA background task which is cancelled on Drop\nA task handle which can be joined, but is cancelled on Drop\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nWait for the task to complete and get its output.\nSpawn a background task, which will be cancelled when …\nSpawn a task, which will be cancelled when dropped.\nBacking storage for the data source.\nReturns the argument unchanged.\nCalls U::from(self).\nSetup runs after setting up the network but before …\nA type alias for the mock base version\nThe block header to append\nBlock number.\nFast commitment for builder verification\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nPer spec, justification\nblock metdata\nVID commitment to the payload.\nPossible timeout or view sync certificate.\nrandom\nshould_return_err is a testing utility to validate …\nTimestamp when this header was created.\nList of transactions.\nPossible upgrade certificate, which the leader may …\nThe URL of the builder to reach out to.\nCurView from leader when proposing leaf\nTypes which have a notion of “height” within a chain.") \ No newline at end of file diff --git a/src/hotshot_query_service/availability/data_source.rs.html b/src/hotshot_query_service/availability/data_source.rs.html index 9401b4e3c..c8bbcdfd5 100644 --- a/src/hotshot_query_service/availability/data_source.rs.html +++ b/src/hotshot_query_service/availability/data_source.rs.html @@ -252,6 +252,55 @@ 252 253 254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303
    // Copyright (c) 2022 Espresso Systems (espressosys.com)
     // This file is part of the HotShot Query Service library.
     //
    @@ -267,8 +316,9 @@
     use super::{
         fetch::Fetch,
         query_data::{
    -        BlockHash, BlockQueryData, LeafHash, LeafQueryData, PayloadQueryData, QueryablePayload,
    -        TransactionHash, TransactionQueryData, VidCommonQueryData,
    +        BlockHash, BlockQueryData, LeafHash, LeafQueryData, PayloadMetadata, PayloadQueryData,
    +        QueryablePayload, TransactionHash, TransactionQueryData, VidCommonMetadata,
    +        VidCommonQueryData,
         },
     };
     use crate::{types::HeightIndexed, Payload, VidCommitment, VidShare};
    @@ -382,11 +432,23 @@
         where
             R: RangeBounds<usize> + Send;
         type PayloadRange<R>: Stream<Item = Fetch<PayloadQueryData<Types>>> + Unpin + Send + 'static
    +    where
    +        R: RangeBounds<usize> + Send;
    +    type PayloadMetadataRange<R>: Stream<Item = Fetch<PayloadMetadata<Types>>>
    +        + Unpin
    +        + Send
    +        + 'static
         where
             R: RangeBounds<usize> + Send;
         type VidCommonRange<R>: Stream<Item = Fetch<VidCommonQueryData<Types>>> + Unpin + Send + 'static
         where
             R: RangeBounds<usize> + Send;
    +    type VidCommonMetadataRange<R>: Stream<Item = Fetch<VidCommonMetadata<Types>>>
    +        + Unpin
    +        + Send
    +        + 'static
    +    where
    +        R: RangeBounds<usize> + Send;
     
         async fn get_leaf<ID>(&self, id: ID) -> Fetch<LeafQueryData<Types>>
         where
    @@ -400,10 +462,18 @@
         where
             ID: Into<BlockId<Types>> + Send + Sync;
     
    +    async fn get_payload_metadata<ID>(&self, id: ID) -> Fetch<PayloadMetadata<Types>>
    +    where
    +        ID: Into<BlockId<Types>> + Send + Sync;
    +
         async fn get_vid_common<ID>(&self, id: ID) -> Fetch<VidCommonQueryData<Types>>
         where
             ID: Into<BlockId<Types>> + Send + Sync;
     
    +    async fn get_vid_common_metadata<ID>(&self, id: ID) -> Fetch<VidCommonMetadata<Types>>
    +    where
    +        ID: Into<BlockId<Types>> + Send + Sync;
    +
         async fn get_leaf_range<R>(&self, range: R) -> Self::LeafRange<R>
         where
             R: RangeBounds<usize> + Send + 'static;
    @@ -416,10 +486,18 @@
         where
             R: RangeBounds<usize> + Send + 'static;
     
    +    async fn get_payload_metadata_range<R>(&self, range: R) -> Self::PayloadMetadataRange<R>
    +    where
    +        R: RangeBounds<usize> + Send + 'static;
    +
         async fn get_vid_common_range<R>(&self, range: R) -> Self::VidCommonRange<R>
         where
             R: RangeBounds<usize> + Send + 'static;
     
    +    async fn get_vid_common_metadata_range<R>(&self, range: R) -> Self::VidCommonMetadataRange<R>
    +    where
    +        R: RangeBounds<usize> + Send + 'static;
    +
         /// Returns the transaction with the given `hash`.
         async fn get_transaction(
             &self,
    @@ -440,6 +518,16 @@
                 .boxed()
         }
     
    +    async fn subscribe_payload_metadata(
    +        &self,
    +        from: usize,
    +    ) -> BoxStream<'static, PayloadMetadata<Types>> {
    +        self.get_payload_metadata_range(from..)
    +            .await
    +            .then(Fetch::resolve)
    +            .boxed()
    +    }
    +
         async fn subscribe_leaves(&self, from: usize) -> BoxStream<'static, LeafQueryData<Types>> {
             self.get_leaf_range(from..)
                 .await
    @@ -456,6 +544,16 @@
                 .then(Fetch::resolve)
                 .boxed()
         }
    +
    +    async fn subscribe_vid_common_metadata(
    +        &self,
    +        from: usize,
    +    ) -> BoxStream<'static, VidCommonMetadata<Types>> {
    +        self.get_vid_common_metadata_range(from..)
    +            .await
    +            .then(Fetch::resolve)
    +            .boxed()
    +    }
     }
     
     /// Information about a block.
    diff --git a/src/hotshot_query_service/availability/query_data.rs.html b/src/hotshot_query_service/availability/query_data.rs.html
    index 65d9150ab..cc8ad541f 100644
    --- a/src/hotshot_query_service/availability/query_data.rs.html
    +++ b/src/hotshot_query_service/availability/query_data.rs.html
    @@ -641,6 +641,82 @@
     641
     642
     643
    +644
    +645
    +646
    +647
    +648
    +649
    +650
    +651
    +652
    +653
    +654
    +655
    +656
    +657
    +658
    +659
    +660
    +661
    +662
    +663
    +664
    +665
    +666
    +667
    +668
    +669
    +670
    +671
    +672
    +673
    +674
    +675
    +676
    +677
    +678
    +679
    +680
    +681
    +682
    +683
    +684
    +685
    +686
    +687
    +688
    +689
    +690
    +691
    +692
    +693
    +694
    +695
    +696
    +697
    +698
    +699
    +700
    +701
    +702
    +703
    +704
    +705
    +706
    +707
    +708
    +709
    +710
    +711
    +712
    +713
    +714
    +715
    +716
    +717
    +718
    +719
     
    // Copyright (c) 2022 Espresso Systems (espressosys.com)
     // This file is part of the HotShot Query Service library.
     //
    @@ -1284,4 +1360,80 @@
             }
         }
     }
    +
    +/// A summary of a payload without all the data.
    +///
    +/// This type is useful when you only want information about a payload, such as its size or
    +/// transaction count, but you don't want to load the entire payload, which might be very large.
    +#[derive(Clone, Copy, Debug, PartialEq, Eq)]
    +pub struct PayloadMetadata<Types>
    +where
    +    Types: NodeType,
    +{
    +    pub height: u64,
    +    pub block_hash: BlockHash<Types>,
    +    pub hash: VidCommitment,
    +    pub size: u64,
    +    pub num_transactions: u64,
    +}
    +
    +impl<Types> HeightIndexed for PayloadMetadata<Types>
    +where
    +    Types: NodeType,
    +{
    +    fn height(&self) -> u64 {
    +        self.height
    +    }
    +}
    +
    +impl<Types> From<BlockQueryData<Types>> for PayloadMetadata<Types>
    +where
    +    Types: NodeType,
    +{
    +    fn from(block: BlockQueryData<Types>) -> Self {
    +        Self {
    +            height: block.height(),
    +            block_hash: block.hash(),
    +            hash: block.payload_hash(),
    +            size: block.size(),
    +            num_transactions: block.num_transactions(),
    +        }
    +    }
    +}
    +
    +/// A summary of a VID payload without all the data.
    +///
    +/// This is primarily useful when you want to check if a VID object exists, but not load the whole
    +/// object.
    +#[derive(Clone, Copy, Debug, PartialEq, Eq)]
    +pub struct VidCommonMetadata<Types>
    +where
    +    Types: NodeType,
    +{
    +    pub height: u64,
    +    pub block_hash: BlockHash<Types>,
    +    pub payload_hash: VidCommitment,
    +}
    +
    +impl<Types> HeightIndexed for VidCommonMetadata<Types>
    +where
    +    Types: NodeType,
    +{
    +    fn height(&self) -> u64 {
    +        self.height
    +    }
    +}
    +
    +impl<Types> From<VidCommonQueryData<Types>> for VidCommonMetadata<Types>
    +where
    +    Types: NodeType,
    +{
    +    fn from(common: VidCommonQueryData<Types>) -> Self {
    +        Self {
    +            height: common.height(),
    +            block_hash: common.block_hash(),
    +            payload_hash: common.payload_hash(),
    +        }
    +    }
    +}
     
    \ No newline at end of file diff --git a/src/hotshot_query_service/data_source.rs.html b/src/hotshot_query_service/data_source.rs.html index 105ba6d47..4ea7ad559 100644 --- a/src/hotshot_query_service/data_source.rs.html +++ b/src/hotshot_query_service/data_source.rs.html @@ -1340,6 +1340,24 @@ 1340 1341 1342 +1343 +1344 +1345 +1346 +1347 +1348 +1349 +1350 +1351 +1352 +1353 +1354 +1355 +1356 +1357 +1358 +1359 +1360
    // Copyright (c) 2022 Espresso Systems (espressosys.com)
     // This file is part of the HotShot Query Service library.
     //
    @@ -1735,16 +1753,25 @@
     
             let mut leaves = ds.get_leaf_range(range.clone()).await;
             let mut blocks = ds.get_block_range(range.clone()).await;
    +        let mut payloads = ds.get_payload_range(range.clone()).await;
    +        let mut payloads_meta = ds.get_payload_metadata_range(range.clone()).await;
             let mut vid_common = ds.get_vid_common_range(range.clone()).await;
    +        let mut vid_common_meta = ds.get_vid_common_metadata_range(range.clone()).await;
     
             for i in expected_indices {
                 tracing::info!(i, "check entries");
                 let leaf = leaves.next().await.unwrap().await;
                 let block = blocks.next().await.unwrap().await;
    +            let payload = payloads.next().await.unwrap().await;
    +            let payload_meta = payloads_meta.next().await.unwrap().await;
                 let common = vid_common.next().await.unwrap().await;
    +            let common_meta = vid_common_meta.next().await.unwrap().await;
                 assert_eq!(leaf.height(), i);
                 assert_eq!(block.height(), i);
    +            assert_eq!(payload, ds.get_payload(i as usize).await.await);
    +            assert_eq!(payload_meta, block.into());
                 assert_eq!(common, ds.get_vid_common(i as usize).await.await);
    +            assert_eq!(common_meta, common.into());
             }
     
             if range.end_bound() == Bound::Unbounded {
    @@ -1753,11 +1780,17 @@
                 loop {
                     let fetch_leaf = leaves.next().await.unwrap();
                     let fetch_block = blocks.next().await.unwrap();
    +                let fetch_payload = payloads.next().await.unwrap();
    +                let fetch_payload_meta = payloads_meta.next().await.unwrap();
                     let fetch_common = vid_common.next().await.unwrap();
    +                let fetch_common_meta = vid_common_meta.next().await.unwrap();
     
                     if fetch_leaf.try_resolve().is_ok()
                         && fetch_block.try_resolve().is_ok()
    +                    && fetch_payload.try_resolve().is_ok()
    +                    && fetch_payload_meta.try_resolve().is_ok()
                         && fetch_common.try_resolve().is_ok()
    +                    && fetch_common_meta.try_resolve().is_ok()
                     {
                         tracing::info!("searching for end of available objects");
                     } else {
    @@ -1768,7 +1801,10 @@
                 // If the range is bounded, it should end where expected.
                 assert!(leaves.next().await.is_none());
                 assert!(blocks.next().await.is_none());
    +            assert!(payloads.next().await.is_none());
    +            assert!(payloads_meta.next().await.is_none());
                 assert!(vid_common.next().await.is_none());
    +            assert!(vid_common_meta.next().await.is_none());
             }
         }
     
    diff --git a/src/hotshot_query_service/data_source/extension.rs.html b/src/hotshot_query_service/data_source/extension.rs.html
    index 492e2c1a9..0a2cd72ef 100644
    --- a/src/hotshot_query_service/data_source/extension.rs.html
    +++ b/src/hotshot_query_service/data_source/extension.rs.html
    @@ -455,6 +455,36 @@
     455
     456
     457
    +458
    +459
    +460
    +461
    +462
    +463
    +464
    +465
    +466
    +467
    +468
    +469
    +470
    +471
    +472
    +473
    +474
    +475
    +476
    +477
    +478
    +479
    +480
    +481
    +482
    +483
    +484
    +485
    +486
    +487
     
    // Copyright (c) 2022 Espresso Systems (espressosys.com)
     // This file is part of the HotShot Query Service library.
     //
    @@ -471,8 +501,8 @@
     use crate::{
         availability::{
             AvailabilityDataSource, BlockId, BlockInfo, BlockQueryData, Fetch, LeafId, LeafQueryData,
    -        PayloadQueryData, QueryableHeader, QueryablePayload, TransactionHash, TransactionQueryData,
    -        UpdateAvailabilityData, VidCommonQueryData,
    +        PayloadMetadata, PayloadQueryData, QueryableHeader, QueryablePayload, TransactionHash,
    +        TransactionQueryData, UpdateAvailabilityData, VidCommonMetadata, VidCommonQueryData,
         },
         explorer::{self, ExplorerDataSource, ExplorerHeader, ExplorerTransaction},
         merklized_state::{
    @@ -608,9 +638,15 @@
         where
             R: RangeBounds<usize> + Send;
         type PayloadRange<R> = D::PayloadRange<R>
    +    where
    +        R: RangeBounds<usize> + Send;
    +    type PayloadMetadataRange<R> = D::PayloadMetadataRange<R>
         where
             R: RangeBounds<usize> + Send;
         type VidCommonRange<R> = D::VidCommonRange<R>
    +    where
    +        R: RangeBounds<usize> + Send;
    +    type VidCommonMetadataRange<R> = D::VidCommonMetadataRange<R>
         where
             R: RangeBounds<usize> + Send;
     
    @@ -632,12 +668,24 @@
         {
             self.data_source.get_payload(id).await
         }
    +    async fn get_payload_metadata<ID>(&self, id: ID) -> Fetch<PayloadMetadata<Types>>
    +    where
    +        ID: Into<BlockId<Types>> + Send + Sync,
    +    {
    +        self.data_source.get_payload_metadata(id).await
    +    }
         async fn get_vid_common<ID>(&self, id: ID) -> Fetch<VidCommonQueryData<Types>>
         where
             ID: Into<BlockId<Types>> + Send + Sync,
         {
             self.data_source.get_vid_common(id).await
         }
    +    async fn get_vid_common_metadata<ID>(&self, id: ID) -> Fetch<VidCommonMetadata<Types>>
    +    where
    +        ID: Into<BlockId<Types>> + Send + Sync,
    +    {
    +        self.data_source.get_vid_common_metadata(id).await
    +    }
         async fn get_leaf_range<R>(&self, range: R) -> Self::LeafRange<R>
         where
             R: RangeBounds<usize> + Send + 'static,
    @@ -656,12 +704,24 @@
         {
             self.data_source.get_payload_range(range).await
         }
    +    async fn get_payload_metadata_range<R>(&self, range: R) -> Self::PayloadMetadataRange<R>
    +    where
    +        R: RangeBounds<usize> + Send + 'static,
    +    {
    +        self.data_source.get_payload_metadata_range(range).await
    +    }
         async fn get_vid_common_range<R>(&self, range: R) -> Self::VidCommonRange<R>
         where
             R: RangeBounds<usize> + Send + 'static,
         {
             self.data_source.get_vid_common_range(range).await
         }
    +    async fn get_vid_common_metadata_range<R>(&self, range: R) -> Self::VidCommonMetadataRange<R>
    +    where
    +        R: RangeBounds<usize> + Send + 'static,
    +    {
    +        self.data_source.get_vid_common_metadata_range(range).await
    +    }
         async fn get_transaction(
             &self,
             hash: TransactionHash<Types>,
    diff --git a/src/hotshot_query_service/data_source/fetching.rs.html b/src/hotshot_query_service/data_source/fetching.rs.html
    index 66bcf6e30..1e03db760 100644
    --- a/src/hotshot_query_service/data_source/fetching.rs.html
    +++ b/src/hotshot_query_service/data_source/fetching.rs.html
    @@ -2036,6 +2036,74 @@
     2036
     2037
     2038
    +2039
    +2040
    +2041
    +2042
    +2043
    +2044
    +2045
    +2046
    +2047
    +2048
    +2049
    +2050
    +2051
    +2052
    +2053
    +2054
    +2055
    +2056
    +2057
    +2058
    +2059
    +2060
    +2061
    +2062
    +2063
    +2064
    +2065
    +2066
    +2067
    +2068
    +2069
    +2070
    +2071
    +2072
    +2073
    +2074
    +2075
    +2076
    +2077
    +2078
    +2079
    +2080
    +2081
    +2082
    +2083
    +2084
    +2085
    +2086
    +2087
    +2088
    +2089
    +2090
    +2091
    +2092
    +2093
    +2094
    +2095
    +2096
    +2097
    +2098
    +2099
    +2100
    +2101
    +2102
    +2103
    +2104
    +2105
    +2106
     
    // Copyright (c) 2022 Espresso Systems (espressosys.com)
     // This file is part of the HotShot Query Service library.
     //
    @@ -2123,8 +2191,8 @@
     use crate::{
         availability::{
             AvailabilityDataSource, BlockId, BlockInfo, BlockQueryData, Fetch, LeafId, LeafQueryData,
    -        PayloadQueryData, QueryableHeader, QueryablePayload, TransactionHash, TransactionQueryData,
    -        UpdateAvailabilityData, VidCommonQueryData,
    +        PayloadMetadata, PayloadQueryData, QueryableHeader, QueryablePayload, TransactionHash,
    +        TransactionQueryData, UpdateAvailabilityData, VidCommonMetadata, VidCommonQueryData,
         },
         explorer::{self, ExplorerDataSource},
         fetching::{self, request, Provider},
    @@ -2194,6 +2262,7 @@
         chunk_fetch_delay: Duration,
         proactive_fetching: bool,
         aggregator: bool,
    +    aggregator_chunk_size: Option<usize>,
         _types: PhantomData<Types>,
     }
     
    @@ -2229,6 +2298,7 @@
                 chunk_fetch_delay: Duration::from_millis(100),
                 proactive_fetching: true,
                 aggregator: true,
    +            aggregator_chunk_size: None,
                 _types: Default::default(),
             }
         }
    @@ -2315,7 +2385,7 @@
         ///
         /// This is similar to [`Self::with_range_chunk_size`], but only affects the chunk size for
         /// proactive fetching scans, not for normal subscription streams. This can be useful to tune
    -    /// the proactive scanner to be more or less greedy with the lock on persistent storage.
    +    /// the proactive scanner to be more or less greedy with persistent storage resources.
         ///
         /// By default (i.e. if this method is not called) the proactive range chunk size will be set to
         /// whatever the normal range chunk size is.
    @@ -2371,6 +2441,19 @@
             self.aggregator = false;
             self
         }
    +
    +    /// Set the number of items to process at a time when computing aggregate statistics.
    +    ///
    +    /// This is similar to [`Self::with_range_chunk_size`], but only affects the chunk size for
    +    /// the aggregator task, not for normal subscription streams. This can be useful to tune
    +    /// the aggregator to be more or less greedy with persistent storage resources.
    +    ///
    +    /// By default (i.e. if this method is not called) the proactive range chunk size will be set to
    +    /// whatever the normal range chunk size is.
    +    pub fn with_aggregator_chunk_size(mut self, chunk_size: usize) -> Self {
    +        self.aggregator_chunk_size = Some(chunk_size);
    +        self
    +    }
     }
     
     impl<Types, S, P> Builder<Types, S, P>
    @@ -2485,6 +2568,9 @@
     
         async fn new(builder: Builder<Types, S, P>) -> anyhow::Result<Self> {
             let aggregator = builder.aggregator;
    +        let aggregator_chunk_size = builder
    +            .aggregator_chunk_size
    +            .unwrap_or(builder.range_chunk_size);
             let proactive_fetching = builder.proactive_fetching;
             let minor_interval = builder.minor_scan_interval;
             let major_interval = builder.major_scan_interval;
    @@ -2514,7 +2600,9 @@
             let aggregator = if aggregator {
                 Some(BackgroundTask::spawn(
                     "aggregator",
    -                fetcher.clone().aggregate(aggregator_metrics),
    +                fetcher
    +                    .clone()
    +                    .aggregate(aggregator_chunk_size, aggregator_metrics),
                 ))
             } else {
                 None
    @@ -2584,9 +2672,15 @@
         where
             R: RangeBounds<usize> + Send;
         type PayloadRange<R> = BoxStream<'static, Fetch<PayloadQueryData<Types>>>
    +    where
    +        R: RangeBounds<usize> + Send;
    +    type PayloadMetadataRange<R> = BoxStream<'static, Fetch<PayloadMetadata<Types>>>
         where
             R: RangeBounds<usize> + Send;
         type VidCommonRange<R> = BoxStream<'static, Fetch<VidCommonQueryData<Types>>>
    +    where
    +        R: RangeBounds<usize> + Send;
    +    type VidCommonMetadataRange<R> = BoxStream<'static, Fetch<VidCommonMetadata<Types>>>
         where
             R: RangeBounds<usize> + Send;
     
    @@ -2611,6 +2705,13 @@
             self.fetcher.get(id.into()).await
         }
     
    +    async fn get_payload_metadata<ID>(&self, id: ID) -> Fetch<PayloadMetadata<Types>>
    +    where
    +        ID: Into<BlockId<Types>> + Send + Sync,
    +    {
    +        self.fetcher.get(id.into()).await
    +    }
    +
         async fn get_vid_common<ID>(&self, id: ID) -> Fetch<VidCommonQueryData<Types>>
         where
             ID: Into<BlockId<Types>> + Send + Sync,
    @@ -2618,6 +2719,13 @@
             self.fetcher.get(VidCommonRequest::from(id.into())).await
         }
     
    +    async fn get_vid_common_metadata<ID>(&self, id: ID) -> Fetch<VidCommonMetadata<Types>>
    +    where
    +        ID: Into<BlockId<Types>> + Send + Sync,
    +    {
    +        self.fetcher.get(VidCommonRequest::from(id.into())).await
    +    }
    +
         async fn get_leaf_range<R>(&self, range: R) -> Self::LeafRange<R>
         where
             R: RangeBounds<usize> + Send + 'static,
    @@ -2639,6 +2747,13 @@
             self.fetcher.clone().get_range(range)
         }
     
    +    async fn get_payload_metadata_range<R>(&self, range: R) -> Self::PayloadMetadataRange<R>
    +    where
    +        R: RangeBounds<usize> + Send + 'static,
    +    {
    +        self.fetcher.clone().get_range(range)
    +    }
    +
         async fn get_vid_common_range<R>(&self, range: R) -> Self::VidCommonRange<R>
         where
             R: RangeBounds<usize> + Send + 'static,
    @@ -2646,6 +2761,13 @@
             self.fetcher.clone().get_range(range)
         }
     
    +    async fn get_vid_common_metadata_range<R>(&self, range: R) -> Self::VidCommonMetadataRange<R>
    +    where
    +        R: RangeBounds<usize> + Send + 'static,
    +    {
    +        self.fetcher.clone().get_range(range)
    +    }
    +
         async fn get_transaction(
             &self,
             hash: TransactionHash<Types>,
    @@ -2679,10 +2801,10 @@
                     async move {
                         tracing::info!(fetch_block, fetch_vid, "fetching missing data");
                         if fetch_block {
    -                        fetcher.get::<BlockQueryData<Types>>(height).await;
    +                        fetcher.get::<PayloadMetadata<Types>>(height).await;
                         }
                         if fetch_vid {
    -                        fetcher.get::<VidCommonQueryData<Types>>(height).await;
    +                        fetcher.get::<VidCommonMetadata<Types>>(height).await;
                         }
                     }
                     .instrument(span),
    @@ -3265,14 +3387,13 @@
                     metrics.scanned_blocks.set(0);
                     metrics.scanned_vid.set(0);
     
    -                // Iterate over all blocks that we should have. Fetching the block is enough to
    -                // trigger an active fetch of the corresponding leaf if it too is missing. The
    -                // chunking behavior of `get_range` automatically ensures that, no matter how big
    -                // the range is, we will release the read lock on storage every `chunk_size` items,
    -                // so we don't starve out would-be writers.
    +                // Iterate over all blocks that we should have. Fetching the payload metadata is
    +                // enough to trigger an active fetch of the corresponding leaf and the full block if
    +                // they are missing, without loading the full payload from storage if we already
    +                // have it.
                     let mut blocks = self
                         .clone()
    -                    .get_range_with_chunk_size::<_, BlockQueryData<Types>>(
    +                    .get_range_with_chunk_size::<_, PayloadMetadata<Types>>(
                             chunk_size,
                             start..block_height,
                         );
    @@ -3295,7 +3416,7 @@
                     // independently of the block payload.
                     let mut vid = self
                         .clone()
    -                    .get_range_with_chunk_size::<_, VidCommonQueryData<Types>>(
    +                    .get_range_with_chunk_size::<_, VidCommonMetadata<Types>>(
                             chunk_size,
                             start..block_height,
                         );
    @@ -3342,7 +3463,7 @@
         P: AvailabilityProvider<Types>,
     {
         #[tracing::instrument(skip_all)]
    -    async fn aggregate(self: Arc<Self>, metrics: AggregatorMetrics) {
    +    async fn aggregate(self: Arc<Self>, chunk_size: usize, metrics: AggregatorMetrics) {
             loop {
                 let start = loop {
                     let mut tx = match self.read().await {
    @@ -3365,15 +3486,29 @@
                 tracing::info!(start, "starting aggregator");
                 metrics.height.set(start);
     
    -            let mut blocks = self.clone().get_range::<_, BlockQueryData<Types>>(start..);
    -            while let Some(block) = blocks.next().await {
    -                let block = block.await;
    -                let height = block.height();
    -                tracing::debug!(height, "updating aggregate statistics for block");
    +            let mut blocks = self
    +                .clone()
    +                .get_range_with_chunk_size::<_, PayloadMetadata<Types>>(chunk_size, start..)
    +                .then(Fetch::resolve)
    +                .ready_chunks(chunk_size)
    +                .boxed();
    +            while let Some(chunk) = blocks.next().await {
    +                let Some(last) = chunk.last() else {
    +                    // This is not supposed to happen, but if the chunk is empty, just skip it.
    +                    tracing::warn!("ready_chunks returned an empty chunk");
    +                    continue;
    +                };
    +                let height = last.height();
    +                let num_blocks = chunk.len();
    +                tracing::debug!(
    +                    num_blocks,
    +                    height,
    +                    "updating aggregate statistics for chunk"
    +                );
                     loop {
                         let res = async {
                             let mut tx = self.write().await.context("opening transaction")?;
    -                        tx.update_aggregates(&block).await?;
    +                        tx.update_aggregates(&chunk).await?;
                             tx.commit().await.context("committing transaction")
                         }
                         .await;
    @@ -3381,8 +3516,9 @@
                             Ok(()) => break,
                             Err(err) => {
                                 tracing::warn!(
    +                                num_blocks,
                                     height,
    -                                "failed to update aggregates for block: {err:#}"
    +                                "failed to update aggregates for chunk: {err:#}"
                                 );
                                 sleep(Duration::from_secs(1)).await;
                             }
    diff --git a/src/hotshot_query_service/data_source/fetching/block.rs.html b/src/hotshot_query_service/data_source/fetching/block.rs.html
    index df0ce9292..f001fde88 100644
    --- a/src/hotshot_query_service/data_source/fetching/block.rs.html
    +++ b/src/hotshot_query_service/data_source/fetching/block.rs.html
    @@ -283,6 +283,75 @@
     283
     284
     285
    +286
    +287
    +288
    +289
    +290
    +291
    +292
    +293
    +294
    +295
    +296
    +297
    +298
    +299
    +300
    +301
    +302
    +303
    +304
    +305
    +306
    +307
    +308
    +309
    +310
    +311
    +312
    +313
    +314
    +315
    +316
    +317
    +318
    +319
    +320
    +321
    +322
    +323
    +324
    +325
    +326
    +327
    +328
    +329
    +330
    +331
    +332
    +333
    +334
    +335
    +336
    +337
    +338
    +339
    +340
    +341
    +342
    +343
    +344
    +345
    +346
    +347
    +348
    +349
    +350
    +351
    +352
    +353
    +354
     
    // Copyright (c) 2022 Espresso Systems (espressosys.com)
     // This file is part of the HotShot Query Service library.
     //
    @@ -303,7 +372,7 @@
         Storable,
     };
     use crate::{
    -    availability::{BlockId, BlockQueryData, PayloadQueryData, QueryablePayload},
    +    availability::{BlockId, BlockQueryData, PayloadMetadata, PayloadQueryData, QueryablePayload},
         data_source::{
             storage::{AvailabilityStorage, UpdateAvailabilityStorage},
             VersionedDataSource,
    @@ -568,4 +637,73 @@
             self.fetcher.store_and_notify(block).await;
         }
     }
    +
    +#[async_trait]
    +impl<Types> Fetchable<Types> for PayloadMetadata<Types>
    +where
    +    Types: NodeType,
    +    Payload<Types>: QueryablePayload<Types>,
    +{
    +    type Request = BlockId<Types>;
    +
    +    fn satisfies(&self, req: Self::Request) -> bool {
    +        match req {
    +            BlockId::Number(n) => self.height == n as u64,
    +            BlockId::Hash(h) => self.block_hash == h,
    +            BlockId::PayloadHash(h) => self.hash == h,
    +        }
    +    }
    +
    +    async fn passive_fetch(
    +        notifiers: &Notifiers<Types>,
    +        req: Self::Request,
    +    ) -> BoxFuture<'static, Option<Self>> {
    +        notifiers
    +            .block
    +            .wait_for(move |block| block.satisfies(req))
    +            .await
    +            .into_future()
    +            .map(|opt| opt.map(Self::from))
    +            .boxed()
    +    }
    +
    +    async fn active_fetch<S, P>(
    +        tx: &mut impl AvailabilityStorage<Types>,
    +        fetcher: Arc<Fetcher<Types, S, P>>,
    +        req: Self::Request,
    +    ) -> anyhow::Result<()>
    +    where
    +        S: VersionedDataSource + 'static,
    +        for<'a> S::Transaction<'a>: UpdateAvailabilityStorage<Types>,
    +        P: AvailabilityProvider<Types>,
    +    {
    +        // Trigger the full block to be fetched. This will be enough to satisfy this request for the
    +        // payload summary.
    +        BlockQueryData::active_fetch(tx, fetcher, req).await
    +    }
    +
    +    async fn load<S>(storage: &mut S, req: Self::Request) -> QueryResult<Self>
    +    where
    +        S: AvailabilityStorage<Types>,
    +    {
    +        storage.get_payload_metadata(req).await
    +    }
    +}
    +
    +#[async_trait]
    +impl<Types> RangedFetchable<Types> for PayloadMetadata<Types>
    +where
    +    Types: NodeType,
    +    Payload<Types>: QueryablePayload<Types>,
    +{
    +    type RangedRequest = BlockId<Types>;
    +
    +    async fn load_range<S, R>(storage: &mut S, range: R) -> QueryResult<Vec<QueryResult<Self>>>
    +    where
    +        S: AvailabilityStorage<Types>,
    +        R: RangeBounds<usize> + Send + 'static,
    +    {
    +        storage.get_payload_metadata_range(range).await
    +    }
    +}
     
    \ No newline at end of file diff --git a/src/hotshot_query_service/data_source/fetching/vid.rs.html b/src/hotshot_query_service/data_source/fetching/vid.rs.html index cfe89c9ee..1b8a46b55 100644 --- a/src/hotshot_query_service/data_source/fetching/vid.rs.html +++ b/src/hotshot_query_service/data_source/fetching/vid.rs.html @@ -236,6 +236,75 @@ 236 237 238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307
    // Copyright (c) 2022 Espresso Systems (espressosys.com)
     // This file is part of the HotShot Query Service library.
     //
    @@ -256,7 +325,7 @@
         Storable,
     };
     use crate::{
    -    availability::{BlockId, QueryablePayload, VidCommonQueryData},
    +    availability::{BlockId, QueryablePayload, VidCommonMetadata, VidCommonQueryData},
         data_source::{
             storage::{AvailabilityStorage, UpdateAvailabilityStorage},
             VersionedDataSource,
    @@ -474,4 +543,73 @@
             self.fetcher.store_and_notify(common).await;
         }
     }
    +
    +#[async_trait]
    +impl<Types> Fetchable<Types> for VidCommonMetadata<Types>
    +where
    +    Types: NodeType,
    +    Payload<Types>: QueryablePayload<Types>,
    +{
    +    type Request = VidCommonRequest<Types>;
    +
    +    fn satisfies(&self, req: Self::Request) -> bool {
    +        match req.0 {
    +            BlockId::Number(n) => self.height == n as u64,
    +            BlockId::Hash(h) => self.block_hash == h,
    +            BlockId::PayloadHash(h) => self.payload_hash == h,
    +        }
    +    }
    +
    +    async fn passive_fetch(
    +        notifiers: &Notifiers<Types>,
    +        req: Self::Request,
    +    ) -> BoxFuture<'static, Option<Self>> {
    +        notifiers
    +            .vid_common
    +            .wait_for(move |vid| vid.satisfies(req))
    +            .await
    +            .into_future()
    +            .map(|opt| opt.map(Self::from))
    +            .boxed()
    +    }
    +
    +    async fn active_fetch<S, P>(
    +        tx: &mut impl AvailabilityStorage<Types>,
    +        fetcher: Arc<Fetcher<Types, S, P>>,
    +        req: Self::Request,
    +    ) -> anyhow::Result<()>
    +    where
    +        S: VersionedDataSource + 'static,
    +        for<'a> S::Transaction<'a>: UpdateAvailabilityStorage<Types>,
    +        P: AvailabilityProvider<Types>,
    +    {
    +        // Trigger the full VID object to be fetched. This will be enough to satisfy this request
    +        // for the summary.
    +        VidCommonQueryData::active_fetch(tx, fetcher, req).await
    +    }
    +
    +    async fn load<S>(storage: &mut S, req: Self::Request) -> QueryResult<Self>
    +    where
    +        S: AvailabilityStorage<Types>,
    +    {
    +        storage.get_vid_common_metadata(req.0).await
    +    }
    +}
    +
    +#[async_trait]
    +impl<Types> RangedFetchable<Types> for VidCommonMetadata<Types>
    +where
    +    Types: NodeType,
    +    Payload<Types>: QueryablePayload<Types>,
    +{
    +    type RangedRequest = VidCommonRequest<Types>;
    +
    +    async fn load_range<S, R>(storage: &mut S, range: R) -> QueryResult<Vec<QueryResult<Self>>>
    +    where
    +        S: AvailabilityStorage<Types>,
    +        R: RangeBounds<usize> + Send + 'static,
    +    {
    +        storage.get_vid_common_metadata_range(range).await
    +    }
    +}
     
    \ No newline at end of file diff --git a/src/hotshot_query_service/data_source/storage.rs.html b/src/hotshot_query_service/data_source/storage.rs.html index 5cadf240d..14a443d64 100644 --- a/src/hotshot_query_service/data_source/storage.rs.html +++ b/src/hotshot_query_service/data_source/storage.rs.html @@ -302,6 +302,27 @@ 302 303 304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325
    // Copyright (c) 2022 Espresso Systems (espressosys.com)
     // This file is part of the HotShot Query Service library.
     //
    @@ -363,8 +384,9 @@
     
     use crate::{
         availability::{
    -        BlockId, BlockQueryData, LeafId, LeafQueryData, PayloadQueryData, QueryableHeader,
    -        QueryablePayload, TransactionHash, TransactionQueryData, VidCommonQueryData,
    +        BlockId, BlockQueryData, LeafId, LeafQueryData, PayloadMetadata, PayloadQueryData,
    +        QueryableHeader, QueryablePayload, TransactionHash, TransactionQueryData,
    +        VidCommonMetadata, VidCommonQueryData,
         },
         explorer::{
             query_data::{
    @@ -427,10 +449,18 @@
         async fn get_block(&mut self, id: BlockId<Types>) -> QueryResult<BlockQueryData<Types>>;
         async fn get_header(&mut self, id: BlockId<Types>) -> QueryResult<Header<Types>>;
         async fn get_payload(&mut self, id: BlockId<Types>) -> QueryResult<PayloadQueryData<Types>>;
    +    async fn get_payload_metadata(
    +        &mut self,
    +        id: BlockId<Types>,
    +    ) -> QueryResult<PayloadMetadata<Types>>;
         async fn get_vid_common(
             &mut self,
             id: BlockId<Types>,
         ) -> QueryResult<VidCommonQueryData<Types>>;
    +    async fn get_vid_common_metadata(
    +        &mut self,
    +        id: BlockId<Types>,
    +    ) -> QueryResult<VidCommonMetadata<Types>>;
     
         async fn get_leaf_range<R>(
             &mut self,
    @@ -448,12 +478,24 @@
             &mut self,
             range: R,
         ) -> QueryResult<Vec<QueryResult<PayloadQueryData<Types>>>>
    +    where
    +        R: RangeBounds<usize> + Send + 'static;
    +    async fn get_payload_metadata_range<R>(
    +        &mut self,
    +        range: R,
    +    ) -> QueryResult<Vec<QueryResult<PayloadMetadata<Types>>>>
         where
             R: RangeBounds<usize> + Send + 'static;
         async fn get_vid_common_range<R>(
             &mut self,
             range: R,
         ) -> QueryResult<Vec<QueryResult<VidCommonQueryData<Types>>>>
    +    where
    +        R: RangeBounds<usize> + Send + 'static;
    +    async fn get_vid_common_metadata_range<R>(
    +        &mut self,
    +        range: R,
    +    ) -> QueryResult<Vec<QueryResult<VidCommonMetadata<Types>>>>
         where
             R: RangeBounds<usize> + Send + 'static;
     
    @@ -518,7 +560,7 @@
         /// Update aggregate statistics based on a new block.
         fn update_aggregates(
             &mut self,
    -        block: &BlockQueryData<Types>,
    +        blocks: &[PayloadMetadata<Types>],
         ) -> impl Future<Output = anyhow::Result<()>> + Send;
     }
     
    diff --git a/src/hotshot_query_service/data_source/storage/fail_storage.rs.html b/src/hotshot_query_service/data_source/storage/fail_storage.rs.html
    index 620f91afd..ca581cacf 100644
    --- a/src/hotshot_query_service/data_source/storage/fail_storage.rs.html
    +++ b/src/hotshot_query_service/data_source/storage/fail_storage.rs.html
    @@ -499,6 +499,55 @@
     499
     500
     501
    +502
    +503
    +504
    +505
    +506
    +507
    +508
    +509
    +510
    +511
    +512
    +513
    +514
    +515
    +516
    +517
    +518
    +519
    +520
    +521
    +522
    +523
    +524
    +525
    +526
    +527
    +528
    +529
    +530
    +531
    +532
    +533
    +534
    +535
    +536
    +537
    +538
    +539
    +540
    +541
    +542
    +543
    +544
    +545
    +546
    +547
    +548
    +549
    +550
     
    // Copyright (c) 2022 Espresso Systems (espressosys.com)
     // This file is part of the HotShot Query Service library.
     //
    @@ -523,7 +572,10 @@
             BlockId, BlockQueryData, LeafId, LeafQueryData, PayloadQueryData, QueryablePayload,
             TransactionHash, TransactionQueryData, VidCommonQueryData,
         },
    -    data_source::{update, VersionedDataSource},
    +    data_source::{
    +        storage::{PayloadMetadata, VidCommonMetadata},
    +        update, VersionedDataSource,
    +    },
         metrics::PrometheusMetrics,
         node::{SyncStatus, TimeWindowQueryData, WindowStart},
         status::HasMetrics,
    @@ -545,12 +597,16 @@
         GetLeaf,
         GetBlock,
         GetPayload,
    +    GetPayloadMetadata,
         GetVidCommon,
    +    GetVidCommonMetadata,
         GetHeaderRange,
         GetLeafRange,
         GetBlockRange,
         GetPayloadRange,
    +    GetPayloadMetadataRange,
         GetVidCommonRange,
    +    GetVidCommonMetadataRange,
         GetTransaction,
     
         /// Target any action for failure.
    @@ -830,6 +886,15 @@
             self.inner.get_payload(id).await
         }
     
    +    async fn get_payload_metadata(
    +        &mut self,
    +        id: BlockId<Types>,
    +    ) -> QueryResult<PayloadMetadata<Types>> {
    +        self.maybe_fail_read(FailableAction::GetPayloadMetadata)
    +            .await?;
    +        self.inner.get_payload_metadata(id).await
    +    }
    +
         async fn get_vid_common(
             &mut self,
             id: BlockId<Types>,
    @@ -838,6 +903,15 @@
             self.inner.get_vid_common(id).await
         }
     
    +    async fn get_vid_common_metadata(
    +        &mut self,
    +        id: BlockId<Types>,
    +    ) -> QueryResult<VidCommonMetadata<Types>> {
    +        self.maybe_fail_read(FailableAction::GetVidCommonMetadata)
    +            .await?;
    +        self.inner.get_vid_common_metadata(id).await
    +    }
    +
         async fn get_leaf_range<R>(
             &mut self,
             range: R,
    @@ -872,6 +946,18 @@
             self.inner.get_payload_range(range).await
         }
     
    +    async fn get_payload_metadata_range<R>(
    +        &mut self,
    +        range: R,
    +    ) -> QueryResult<Vec<QueryResult<PayloadMetadata<Types>>>>
    +    where
    +        R: RangeBounds<usize> + Send + 'static,
    +    {
    +        self.maybe_fail_read(FailableAction::GetPayloadMetadataRange)
    +            .await?;
    +        self.inner.get_payload_metadata_range(range).await
    +    }
    +
         async fn get_vid_common_range<R>(
             &mut self,
             range: R,
    @@ -884,6 +970,18 @@
             self.inner.get_vid_common_range(range).await
         }
     
    +    async fn get_vid_common_metadata_range<R>(
    +        &mut self,
    +        range: R,
    +    ) -> QueryResult<Vec<QueryResult<VidCommonMetadata<Types>>>>
    +    where
    +        R: RangeBounds<usize> + Send + 'static,
    +    {
    +        self.maybe_fail_read(FailableAction::GetVidCommonMetadataRange)
    +            .await?;
    +        self.inner.get_vid_common_metadata_range(range).await
    +    }
    +
         async fn get_transaction(
             &mut self,
             hash: TransactionHash<Types>,
    @@ -995,9 +1093,9 @@
         Types: NodeType,
         T: UpdateAggregatesStorage<Types> + Send + Sync,
     {
    -    async fn update_aggregates(&mut self, block: &BlockQueryData<Types>) -> anyhow::Result<()> {
    +    async fn update_aggregates(&mut self, blocks: &[PayloadMetadata<Types>]) -> anyhow::Result<()> {
             self.maybe_fail_write(FailableAction::Any).await?;
    -        self.inner.update_aggregates(block).await
    +        self.inner.update_aggregates(blocks).await
         }
     }
     
    \ No newline at end of file diff --git a/src/hotshot_query_service/data_source/storage/fs.rs.html b/src/hotshot_query_service/data_source/storage/fs.rs.html index f421905b4..715eaee82 100644 --- a/src/hotshot_query_service/data_source/storage/fs.rs.html +++ b/src/hotshot_query_service/data_source/storage/fs.rs.html @@ -766,6 +766,47 @@ 766 767 768 +769 +770 +771 +772 +773 +774 +775 +776 +777 +778 +779 +780 +781 +782 +783 +784 +785 +786 +787 +788 +789 +790 +791 +792 +793 +794 +795 +796 +797 +798 +799 +800 +801 +802 +803 +804 +805 +806 +807 +808 +809
    // Copyright (c) 2022 Espresso Systems (espressosys.com)
     // This file is part of the HotShot Query Service library.
     //
    @@ -783,8 +824,8 @@
     use super::{
         ledger_log::{Iter, LedgerLog},
         pruning::{PruneStorage, PrunedHeightStorage, PrunerConfig},
    -    AggregatesStorage, AvailabilityStorage, NodeStorage, UpdateAggregatesStorage,
    -    UpdateAvailabilityStorage,
    +    AggregatesStorage, AvailabilityStorage, NodeStorage, PayloadMetadata, UpdateAggregatesStorage,
    +    UpdateAvailabilityStorage, VidCommonMetadata,
     };
     
     use crate::{
    @@ -1223,6 +1264,13 @@
             self.get_block(id).await.map(PayloadQueryData::from)
         }
     
    +    async fn get_payload_metadata(
    +        &mut self,
    +        id: BlockId<Types>,
    +    ) -> QueryResult<PayloadMetadata<Types>> {
    +        self.get_block(id).await.map(PayloadMetadata::from)
    +    }
    +
         async fn get_vid_common(
             &mut self,
             id: BlockId<Types>,
    @@ -1237,6 +1285,13 @@
                 .0)
         }
     
    +    async fn get_vid_common_metadata(
    +        &mut self,
    +        id: BlockId<Types>,
    +    ) -> QueryResult<VidCommonMetadata<Types>> {
    +        self.get_vid_common(id).await.map(VidCommonMetadata::from)
    +    }
    +
         async fn get_leaf_range<R>(
             &mut self,
             range: R,
    @@ -1269,6 +1324,18 @@
                 .collect())
         }
     
    +    async fn get_payload_metadata_range<R>(
    +        &mut self,
    +        range: R,
    +    ) -> QueryResult<Vec<QueryResult<PayloadMetadata<Types>>>>
    +    where
    +        R: RangeBounds<usize> + Send + 'static,
    +    {
    +        Ok(range_iter(self.inner.block_storage.iter(), range)
    +            .map(|res| res.map(PayloadMetadata::from))
    +            .collect())
    +    }
    +
         async fn get_vid_common_range<R>(
             &mut self,
             range: R,
    @@ -1281,6 +1348,18 @@
                 .collect())
         }
     
    +    async fn get_vid_common_metadata_range<R>(
    +        &mut self,
    +        range: R,
    +    ) -> QueryResult<Vec<QueryResult<VidCommonMetadata<Types>>>>
    +    where
    +        R: RangeBounds<usize> + Send,
    +    {
    +        Ok(range_iter(self.inner.vid_storage.iter(), range)
    +            .map(|res| res.map(|(common, _)| common.into()))
    +            .collect())
    +    }
    +
         async fn get_transaction(
             &mut self,
             hash: TransactionHash<Types>,
    @@ -1518,7 +1597,10 @@
     where
         Types: NodeType,
     {
    -    async fn update_aggregates(&mut self, _block: &BlockQueryData<Types>) -> anyhow::Result<()> {
    +    async fn update_aggregates(
    +        &mut self,
    +        _blocks: &[PayloadMetadata<Types>],
    +    ) -> anyhow::Result<()> {
             Ok(())
         }
     }
    diff --git a/src/hotshot_query_service/data_source/storage/no_storage.rs.html b/src/hotshot_query_service/data_source/storage/no_storage.rs.html
    index 7b1c4ebd9..572b89c74 100644
    --- a/src/hotshot_query_service/data_source/storage/no_storage.rs.html
    +++ b/src/hotshot_query_service/data_source/storage/no_storage.rs.html
    @@ -783,6 +783,102 @@
     783
     784
     785
    +786
    +787
    +788
    +789
    +790
    +791
    +792
    +793
    +794
    +795
    +796
    +797
    +798
    +799
    +800
    +801
    +802
    +803
    +804
    +805
    +806
    +807
    +808
    +809
    +810
    +811
    +812
    +813
    +814
    +815
    +816
    +817
    +818
    +819
    +820
    +821
    +822
    +823
    +824
    +825
    +826
    +827
    +828
    +829
    +830
    +831
    +832
    +833
    +834
    +835
    +836
    +837
    +838
    +839
    +840
    +841
    +842
    +843
    +844
    +845
    +846
    +847
    +848
    +849
    +850
    +851
    +852
    +853
    +854
    +855
    +856
    +857
    +858
    +859
    +860
    +861
    +862
    +863
    +864
    +865
    +866
    +867
    +868
    +869
    +870
    +871
    +872
    +873
    +874
    +875
    +876
    +877
    +878
    +879
    +880
    +881
     
    // Copyright (c) 2022 Espresso Systems (espressosys.com)
     // This file is part of the HotShot Query Service library.
     //
    @@ -799,8 +895,8 @@
     
     use super::{
         pruning::{PruneStorage, PrunedHeightStorage, PrunerConfig},
    -    AggregatesStorage, AvailabilityStorage, NodeStorage, UpdateAggregatesStorage,
    -    UpdateAvailabilityStorage,
    +    AggregatesStorage, AvailabilityStorage, NodeStorage, PayloadMetadata, UpdateAggregatesStorage,
    +    UpdateAvailabilityStorage, VidCommonMetadata,
     };
     use crate::{
         availability::{
    @@ -911,6 +1007,13 @@
             Err(QueryError::Missing)
         }
     
    +    async fn get_payload_metadata(
    +        &mut self,
    +        _id: BlockId<Types>,
    +    ) -> QueryResult<PayloadMetadata<Types>> {
    +        Err(QueryError::Missing)
    +    }
    +
         async fn get_vid_common(
             &mut self,
             _id: BlockId<Types>,
    @@ -918,6 +1021,13 @@
             Err(QueryError::Missing)
         }
     
    +    async fn get_vid_common_metadata(
    +        &mut self,
    +        _id: BlockId<Types>,
    +    ) -> QueryResult<VidCommonMetadata<Types>> {
    +        Err(QueryError::Missing)
    +    }
    +
         async fn get_leaf_range<R>(
             &mut self,
             _range: R,
    @@ -948,6 +1058,16 @@
             Ok(vec![])
         }
     
    +    async fn get_payload_metadata_range<R>(
    +        &mut self,
    +        _range: R,
    +    ) -> QueryResult<Vec<QueryResult<PayloadMetadata<Types>>>>
    +    where
    +        R: RangeBounds<usize> + Send,
    +    {
    +        Ok(vec![])
    +    }
    +
         async fn get_vid_common_range<R>(
             &mut self,
             _range: R,
    @@ -958,6 +1078,16 @@
             Ok(vec![])
         }
     
    +    async fn get_vid_common_metadata_range<R>(
    +        &mut self,
    +        _range: R,
    +    ) -> QueryResult<Vec<QueryResult<VidCommonMetadata<Types>>>>
    +    where
    +        R: RangeBounds<usize> + Send,
    +    {
    +        Ok(vec![])
    +    }
    +
         async fn get_transaction(
             &mut self,
             _hash: TransactionHash<Types>,
    @@ -1043,7 +1173,10 @@
     where
         Types: NodeType,
     {
    -    async fn update_aggregates(&mut self, _block: &BlockQueryData<Types>) -> anyhow::Result<()> {
    +    async fn update_aggregates(
    +        &mut self,
    +        _blocks: &[PayloadMetadata<Types>],
    +    ) -> anyhow::Result<()> {
             Ok(())
         }
     }
    @@ -1303,9 +1436,15 @@
             where
                 R: RangeBounds<usize> + Send;
             type PayloadRange<R> = BoxStream<'static, Fetch<PayloadQueryData<MockTypes>>>
    +        where
    +            R: RangeBounds<usize> + Send;
    +        type PayloadMetadataRange<R> = BoxStream<'static, Fetch<PayloadMetadata<MockTypes>>>
             where
                 R: RangeBounds<usize> + Send;
             type VidCommonRange<R> = BoxStream<'static, Fetch<VidCommonQueryData<MockTypes>>>
    +        where
    +            R: RangeBounds<usize> + Send;
    +        type VidCommonMetadataRange<R> = BoxStream<'static, Fetch<VidCommonMetadata<MockTypes>>>
             where
                 R: RangeBounds<usize> + Send;
     
    @@ -1339,6 +1478,16 @@
                 }
             }
     
    +        async fn get_payload_metadata<ID>(&self, id: ID) -> Fetch<PayloadMetadata<MockTypes>>
    +        where
    +            ID: Into<BlockId<MockTypes>> + Send + Sync,
    +        {
    +            match self {
    +                Self::Sql(data_source) => data_source.get_payload_metadata(id).await,
    +                Self::NoStorage(data_source) => data_source.get_payload_metadata(id).await,
    +            }
    +        }
    +
             async fn get_vid_common<ID>(&self, id: ID) -> Fetch<VidCommonQueryData<MockTypes>>
             where
                 ID: Into<BlockId<MockTypes>> + Send + Sync,
    @@ -1349,6 +1498,16 @@
                 }
             }
     
    +        async fn get_vid_common_metadata<ID>(&self, id: ID) -> Fetch<VidCommonMetadata<MockTypes>>
    +        where
    +            ID: Into<BlockId<MockTypes>> + Send + Sync,
    +        {
    +            match self {
    +                Self::Sql(data_source) => data_source.get_vid_common_metadata(id).await,
    +                Self::NoStorage(data_source) => data_source.get_vid_common_metadata(id).await,
    +            }
    +        }
    +
             async fn get_leaf_range<R>(&self, range: R) -> Self::LeafRange<R>
             where
                 R: RangeBounds<usize> + Send + 'static,
    @@ -1379,6 +1538,20 @@
                 }
             }
     
    +        async fn get_payload_metadata_range<R>(&self, range: R) -> Self::PayloadMetadataRange<R>
    +        where
    +            R: RangeBounds<usize> + Send + 'static,
    +        {
    +            match self {
    +                Self::Sql(data_source) => {
    +                    data_source.get_payload_metadata_range(range).await.boxed()
    +                }
    +                Self::NoStorage(data_source) => {
    +                    data_source.get_payload_metadata_range(range).await.boxed()
    +                }
    +            }
    +        }
    +
             async fn get_vid_common_range<R>(&self, range: R) -> Self::VidCommonRange<R>
             where
                 R: RangeBounds<usize> + Send + 'static,
    @@ -1391,6 +1564,25 @@
                 }
             }
     
    +        async fn get_vid_common_metadata_range<R>(
    +            &self,
    +            range: R,
    +        ) -> Self::VidCommonMetadataRange<R>
    +        where
    +            R: RangeBounds<usize> + Send + 'static,
    +        {
    +            match self {
    +                Self::Sql(data_source) => data_source
    +                    .get_vid_common_metadata_range(range)
    +                    .await
    +                    .boxed(),
    +                Self::NoStorage(data_source) => data_source
    +                    .get_vid_common_metadata_range(range)
    +                    .await
    +                    .boxed(),
    +            }
    +        }
    +
             async fn get_transaction(
                 &self,
                 hash: TransactionHash<MockTypes>,
    diff --git a/src/hotshot_query_service/data_source/storage/sql/queries.rs.html b/src/hotshot_query_service/data_source/storage/sql/queries.rs.html
    index f222deaae..8102e1ebf 100644
    --- a/src/hotshot_query_service/data_source/storage/sql/queries.rs.html
    +++ b/src/hotshot_query_service/data_source/storage/sql/queries.rs.html
    @@ -327,6 +327,55 @@
     327
     328
     329
    +330
    +331
    +332
    +333
    +334
    +335
    +336
    +337
    +338
    +339
    +340
    +341
    +342
    +343
    +344
    +345
    +346
    +347
    +348
    +349
    +350
    +351
    +352
    +353
    +354
    +355
    +356
    +357
    +358
    +359
    +360
    +361
    +362
    +363
    +364
    +365
    +366
    +367
    +368
    +369
    +370
    +371
    +372
    +373
    +374
    +375
    +376
    +377
    +378
     
    // Copyright (c) 2022 Espresso Systems (espressosys.com)
     // This file is part of the HotShot Query Service library.
     //
    @@ -347,6 +396,7 @@
             BlockId, BlockQueryData, LeafQueryData, PayloadQueryData, QueryablePayload,
             VidCommonQueryData,
         },
    +    data_source::storage::{PayloadMetadata, VidCommonMetadata},
         Header, Leaf, Payload, QueryError, QueryResult,
     };
     use anyhow::Context;
    @@ -556,6 +606,30 @@
         }
     }
     
    +const PAYLOAD_METADATA_COLUMNS: &str =
    +    "h.height AS height, h.hash AS hash, h.payload_hash AS payload_hash, p.size AS payload_size, p.num_transactions AS num_transactions";
    +
    +impl<'r, Types> FromRow<'r, <Db as Database>::Row> for PayloadMetadata<Types>
    +where
    +    Types: NodeType,
    +{
    +    fn from_row(row: &'r <Db as Database>::Row) -> sqlx::Result<Self> {
    +        Ok(Self {
    +            height: row.try_get::<i64, _>("height")? as u64,
    +            block_hash: row
    +                .try_get::<String, _>("hash")?
    +                .parse()
    +                .decode_error("malformed block hash")?,
    +            hash: row
    +                .try_get::<String, _>("payload_hash")?
    +                .parse()
    +                .decode_error("malformed payload hash")?,
    +            size: row.try_get::<i32, _>("payload_size")? as u64,
    +            num_transactions: row.try_get::<i32, _>("num_transactions")? as u64,
    +        })
    +    }
    +}
    +
     const VID_COMMON_COLUMNS: &str = "h.height AS height, h.hash AS block_hash, h.payload_hash AS payload_hash, v.common AS common_data";
     
     impl<'r, Types> FromRow<'r, <Db as Database>::Row> for VidCommonQueryData<Types>
    @@ -583,6 +657,30 @@
         }
     }
     
    +const VID_COMMON_METADATA_COLUMNS: &str =
    +    "h.height AS height, h.hash AS block_hash, h.payload_hash AS payload_hash";
    +
    +impl<'r, Types> FromRow<'r, <Db as Database>::Row> for VidCommonMetadata<Types>
    +where
    +    Types: NodeType,
    +    Payload<Types>: QueryablePayload<Types>,
    +{
    +    fn from_row(row: &'r <Db as Database>::Row) -> sqlx::Result<Self> {
    +        let height = row.try_get::<i64, _>("height")? as u64;
    +        let block_hash: String = row.try_get("block_hash")?;
    +        let block_hash = block_hash.parse().decode_error("malformed block hash")?;
    +        let payload_hash: String = row.try_get("payload_hash")?;
    +        let payload_hash = payload_hash
    +            .parse()
    +            .decode_error("malformed payload hash")?;
    +        Ok(Self {
    +            height,
    +            block_hash,
    +            payload_hash,
    +        })
    +    }
    +}
    +
     const HEADER_COLUMNS: &str = "h.data AS data";
     
     // We can't implement `FromRow` for `Header<Types>` since `Header<Types>` is not actually a type
    diff --git a/src/hotshot_query_service/data_source/storage/sql/queries/availability.rs.html b/src/hotshot_query_service/data_source/storage/sql/queries/availability.rs.html
    index f0618bc5e..f5e9c5433 100644
    --- a/src/hotshot_query_service/data_source/storage/sql/queries/availability.rs.html
    +++ b/src/hotshot_query_service/data_source/storage/sql/queries/availability.rs.html
    @@ -242,6 +242,103 @@
     242
     243
     244
    +245
    +246
    +247
    +248
    +249
    +250
    +251
    +252
    +253
    +254
    +255
    +256
    +257
    +258
    +259
    +260
    +261
    +262
    +263
    +264
    +265
    +266
    +267
    +268
    +269
    +270
    +271
    +272
    +273
    +274
    +275
    +276
    +277
    +278
    +279
    +280
    +281
    +282
    +283
    +284
    +285
    +286
    +287
    +288
    +289
    +290
    +291
    +292
    +293
    +294
    +295
    +296
    +297
    +298
    +299
    +300
    +301
    +302
    +303
    +304
    +305
    +306
    +307
    +308
    +309
    +310
    +311
    +312
    +313
    +314
    +315
    +316
    +317
    +318
    +319
    +320
    +321
    +322
    +323
    +324
    +325
    +326
    +327
    +328
    +329
    +330
    +331
    +332
    +333
    +334
    +335
    +336
    +337
    +338
    +339
    +340
    +341
     
    // Copyright (c) 2022 Espresso Systems (espressosys.com)
     // This file is part of the HotShot Query Service library.
     //
    @@ -258,16 +355,17 @@
     
     use super::{
         super::transaction::{Transaction, TransactionMode},
    -    QueryBuilder, BLOCK_COLUMNS, LEAF_COLUMNS, PAYLOAD_COLUMNS, VID_COMMON_COLUMNS,
    +    QueryBuilder, BLOCK_COLUMNS, LEAF_COLUMNS, PAYLOAD_COLUMNS, PAYLOAD_METADATA_COLUMNS,
    +    VID_COMMON_COLUMNS, VID_COMMON_METADATA_COLUMNS,
     };
     use crate::{
         availability::{
             BlockId, BlockQueryData, LeafId, LeafQueryData, PayloadQueryData, QueryableHeader,
             QueryablePayload, TransactionHash, TransactionQueryData, VidCommonQueryData,
         },
    -    data_source::storage::AvailabilityStorage,
    +    data_source::storage::{AvailabilityStorage, PayloadMetadata, VidCommonMetadata},
         types::HeightIndexed,
    -    ErrorSnafu, Header, Payload, QueryError, QueryResult,
    +    ErrorSnafu, Header, MissingSnafu, Payload, QueryError, QueryResult,
     };
     use async_trait::async_trait;
     use futures::stream::{StreamExt, TryStreamExt};
    @@ -340,6 +438,31 @@
             Ok(payload)
         }
     
    +    async fn get_payload_metadata(
    +        &mut self,
    +        id: BlockId<Types>,
    +    ) -> QueryResult<PayloadMetadata<Types>> {
    +        let mut query = QueryBuilder::default();
    +        let where_clause = query.header_where_clause(id)?;
    +        // ORDER BY h.height ASC ensures that if there are duplicate blocks (this can happen when
    +        // selecting by payload ID, as payloads are not unique), we return the first one.
    +        let sql = format!(
    +            "SELECT {PAYLOAD_METADATA_COLUMNS}
    +              FROM header AS h
    +              JOIN payload AS p ON h.height = p.height
    +              WHERE {where_clause} AND p.num_transactions IS NOT NULL
    +              ORDER BY h.height ASC
    +              LIMIT 1"
    +        );
    +        let row = query
    +            .query(&sql)
    +            .fetch_optional(self.as_mut())
    +            .await?
    +            .context(MissingSnafu)?;
    +        let payload = PayloadMetadata::from_row(&row)?;
    +        Ok(payload)
    +    }
    +
         async fn get_vid_common(
             &mut self,
             id: BlockId<Types>,
    @@ -361,6 +484,27 @@
             Ok(common)
         }
     
    +    async fn get_vid_common_metadata(
    +        &mut self,
    +        id: BlockId<Types>,
    +    ) -> QueryResult<VidCommonMetadata<Types>> {
    +        let mut query = QueryBuilder::default();
    +        let where_clause = query.header_where_clause(id)?;
    +        // ORDER BY h.height ASC ensures that if there are duplicate blocks (this can happen when
    +        // selecting by payload ID, as payloads are not unique), we return the first one.
    +        let sql = format!(
    +            "SELECT {VID_COMMON_METADATA_COLUMNS}
    +              FROM header AS h
    +              JOIN vid AS v ON h.height = v.height
    +              WHERE {where_clause}
    +              ORDER BY h.height ASC
    +              LIMIT 1"
    +        );
    +        let row = query.query(&sql).fetch_one(self.as_mut()).await?;
    +        let common = VidCommonMetadata::from_row(&row)?;
    +        Ok(common)
    +    }
    +
         async fn get_leaf_range<R>(
             &mut self,
             range: R,
    @@ -430,6 +574,31 @@
                 .await)
         }
     
    +    async fn get_payload_metadata_range<R>(
    +        &mut self,
    +        range: R,
    +    ) -> QueryResult<Vec<QueryResult<PayloadMetadata<Types>>>>
    +    where
    +        R: RangeBounds<usize> + Send + 'static,
    +    {
    +        let mut query = QueryBuilder::default();
    +        let where_clause = query.bounds_to_where_clause(range, "h.height")?;
    +        let sql = format!(
    +            "SELECT {PAYLOAD_METADATA_COLUMNS}
    +              FROM header AS h
    +              JOIN payload AS p ON h.height = p.height
    +              {where_clause}
    +              ORDER BY h.height ASC"
    +        );
    +        Ok(query
    +            .query(&sql)
    +            .fetch(self.as_mut())
    +            .map(|res| PayloadMetadata::from_row(&res?))
    +            .map_err(QueryError::from)
    +            .collect()
    +            .await)
    +    }
    +
         async fn get_vid_common_range<R>(
             &mut self,
             range: R,
    @@ -455,6 +624,31 @@
                 .await)
         }
     
    +    async fn get_vid_common_metadata_range<R>(
    +        &mut self,
    +        range: R,
    +    ) -> QueryResult<Vec<QueryResult<VidCommonMetadata<Types>>>>
    +    where
    +        R: RangeBounds<usize> + Send,
    +    {
    +        let mut query = QueryBuilder::default();
    +        let where_clause = query.bounds_to_where_clause(range, "h.height")?;
    +        let sql = format!(
    +            "SELECT {VID_COMMON_METADATA_COLUMNS}
    +              FROM header AS h
    +              JOIN vid AS v ON h.height = v.height
    +              {where_clause}
    +              ORDER BY h.height ASC"
    +        );
    +        Ok(query
    +            .query(&sql)
    +            .fetch(self.as_mut())
    +            .map(|res| VidCommonMetadata::from_row(&res?))
    +            .map_err(QueryError::from)
    +            .collect()
    +            .await)
    +    }
    +
         async fn get_transaction(
             &mut self,
             hash: TransactionHash<Types>,
    diff --git a/src/hotshot_query_service/data_source/storage/sql/queries/explorer.rs.html b/src/hotshot_query_service/data_source/storage/sql/queries/explorer.rs.html
    index 9ba7bf78d..aa238eb79 100644
    --- a/src/hotshot_query_service/data_source/storage/sql/queries/explorer.rs.html
    +++ b/src/hotshot_query_service/data_source/storage/sql/queries/explorer.rs.html
    @@ -570,6 +570,7 @@
     570
     571
     572
    +573
     
    // Copyright (c) 2022 Espresso Systems (espressosys.com)
     // This file is part of the HotShot Query Service library.
     //
    @@ -986,7 +987,7 @@
                         h.timestamp AS timestamp,
                         h.timestamp - lead(timestamp) OVER (ORDER BY h.height DESC) AS time,
                         p.size AS size,
    -                    (SELECT COUNT(*) AS transactions FROM transaction AS t WHERE t.block_height = h.height) as transactions
    +                    p.num_transactions AS transactions
                     FROM header AS h
                     JOIN payload AS p ON
                         p.height = h.height
    @@ -994,7 +995,8 @@
                         h.height IN (SELECT height FROM header ORDER BY height DESC LIMIT 50)
                     ORDER BY h.height ASC 
                     ",
    -            ).fetch(self.as_mut());
    +            )
    +            .fetch(self.as_mut());
     
                 let histograms: Result<ExplorerHistograms, sqlx::Error> = historgram_query_result
                     .map(|row_stream| {
    @@ -1003,7 +1005,7 @@
                             let timestamp: i64 = row.try_get("timestamp")?;
                             let time: Option<i64> = row.try_get("time")?;
                             let size: Option<i32> = row.try_get("size")?;
    -                        let num_transactions: i64 = row.try_get("transactions")?;
    +                        let num_transactions: i32 = row.try_get("transactions")?;
     
                             Ok((height, timestamp, time, size, num_transactions))
                         })
    @@ -1016,7 +1018,7 @@
                             block_heights: Vec::with_capacity(50),
                         },
                         |mut histograms: ExplorerHistograms,
    -                     row: sqlx::Result<(i64, i64, Option<i64>, Option<i32>, i64)>| async {
    +                     row: sqlx::Result<(i64, i64, Option<i64>, Option<i32>, i32)>| async {
                             let (height, _timestamp, time, size, num_transactions) = row?;
                             histograms.block_time.push(time.map(|i| i as u64));
                             histograms.block_size.push(size.map(|i| i as u64));
    diff --git a/src/hotshot_query_service/data_source/storage/sql/queries/node.rs.html b/src/hotshot_query_service/data_source/storage/sql/queries/node.rs.html
    index abb460446..e15adba2b 100644
    --- a/src/hotshot_query_service/data_source/storage/sql/queries/node.rs.html
    +++ b/src/hotshot_query_service/data_source/storage/sql/queries/node.rs.html
    @@ -419,6 +419,27 @@
     419
     420
     421
    +422
    +423
    +424
    +425
    +426
    +427
    +428
    +429
    +430
    +431
    +432
    +433
    +434
    +435
    +436
    +437
    +438
    +439
    +440
    +441
    +442
     
    // Copyright (c) 2022 Espresso Systems (espressosys.com)
     // This file is part of the HotShot Query Service library.
     //
    @@ -438,12 +459,14 @@
         parse_header, DecodeError, QueryBuilder, HEADER_COLUMNS,
     };
     use crate::{
    -    availability::BlockQueryData,
    -    data_source::storage::{AggregatesStorage, NodeStorage, UpdateAggregatesStorage},
    +    data_source::storage::{
    +        AggregatesStorage, NodeStorage, PayloadMetadata, UpdateAggregatesStorage,
    +    },
         node::{BlockId, SyncStatus, TimeWindowQueryData, WindowStart},
         types::HeightIndexed,
         Header, MissingSnafu, NotFoundSnafu, QueryError, QueryResult, VidShare,
     };
    +use anyhow::anyhow;
     use async_trait::async_trait;
     use futures::stream::{StreamExt, TryStreamExt};
     use hotshot_types::traits::{block_contents::BlockHeader, node_implementation::NodeType};
    @@ -696,8 +719,9 @@
     }
     
     impl<Types: NodeType> UpdateAggregatesStorage<Types> for Transaction<Write> {
    -    async fn update_aggregates(&mut self, block: &BlockQueryData<Types>) -> anyhow::Result<()> {
    -        let height = block.height();
    +    async fn update_aggregates(&mut self, blocks: &[PayloadMetadata<Types>]) -> anyhow::Result<()> {
    +        // Get the cumulative statistics up to the block before this chunk.
    +        let height = blocks[0].height();
             let (prev_tx_count, prev_size) = if height == 0 {
                 (0, 0)
             } else {
    @@ -714,15 +738,33 @@
                 (tx_count as u64, size as u64)
             };
     
    +        // Cumulatively sum up new statistics for each block in this chunk.
    +        let rows = blocks
    +            .iter()
    +            .scan(
    +                (height, prev_tx_count, prev_size),
    +                |(height, tx_count, size), block| {
    +                    if *height != block.height {
    +                        return Some(Err(anyhow!(
    +                            "blocks in update_aggregates are not sequential; expected {}, got {}",
    +                            *height,
    +                            block.height()
    +                        )));
    +                    }
    +                    *height += 1;
    +
    +                    *tx_count += block.num_transactions;
    +                    *size += block.size;
    +                    Some(Ok((block.height as i64, *tx_count as i64, *size as i64)))
    +                },
    +            )
    +            .collect::<anyhow::Result<Vec<_>>>()?;
    +
             self.upsert(
                 "aggregate",
                 ["height", "num_transactions", "payload_size"],
                 ["height"],
    -            [(
    -                height as i64,
    -                (prev_tx_count + block.num_transactions()) as i64,
    -                (prev_size + block.size()) as i64,
    -            )],
    +            rows,
             )
             .await
         }
    diff --git a/src/hotshot_query_service/data_source/storage/sql/transaction.rs.html b/src/hotshot_query_service/data_source/storage/sql/transaction.rs.html
    index 8b7ef2ed2..2cd4810a8 100644
    --- a/src/hotshot_query_service/data_source/storage/sql/transaction.rs.html
    +++ b/src/hotshot_query_service/data_source/storage/sql/transaction.rs.html
    @@ -788,6 +788,11 @@
     788
     789
     790
    +791
    +792
    +793
    +794
    +795
     
    // Copyright (c) 2022 Espresso Systems (espressosys.com)
     // This file is part of the HotShot Query Service library.
     //
    @@ -1311,9 +1316,14 @@
             let payload = block.payload.encode();
             self.upsert(
                 "payload",
    -            ["height", "data", "size"],
    +            ["height", "data", "size", "num_transactions"],
                 ["height"],
    -            [(block.height() as i64, payload.as_ref(), block.size() as i32)],
    +            [(
    +                block.height() as i64,
    +                payload.as_ref(),
    +                block.size() as i32,
    +                block.num_transactions() as i32,
    +            )],
             )
             .await?;
     
    diff --git a/src/hotshot_query_service/fetching/provider/query_service.rs.html b/src/hotshot_query_service/fetching/provider/query_service.rs.html
    index d3b7434ab..c2d5db872 100644
    --- a/src/hotshot_query_service/fetching/provider/query_service.rs.html
    +++ b/src/hotshot_query_service/fetching/provider/query_service.rs.html
    @@ -1666,6 +1666,117 @@
     1666
     1667
     1668
    +1669
    +1670
    +1671
    +1672
    +1673
    +1674
    +1675
    +1676
    +1677
    +1678
    +1679
    +1680
    +1681
    +1682
    +1683
    +1684
    +1685
    +1686
    +1687
    +1688
    +1689
    +1690
    +1691
    +1692
    +1693
    +1694
    +1695
    +1696
    +1697
    +1698
    +1699
    +1700
    +1701
    +1702
    +1703
    +1704
    +1705
    +1706
    +1707
    +1708
    +1709
    +1710
    +1711
    +1712
    +1713
    +1714
    +1715
    +1716
    +1717
    +1718
    +1719
    +1720
    +1721
    +1722
    +1723
    +1724
    +1725
    +1726
    +1727
    +1728
    +1729
    +1730
    +1731
    +1732
    +1733
    +1734
    +1735
    +1736
    +1737
    +1738
    +1739
    +1740
    +1741
    +1742
    +1743
    +1744
    +1745
    +1746
    +1747
    +1748
    +1749
    +1750
    +1751
    +1752
    +1753
    +1754
    +1755
    +1756
    +1757
    +1758
    +1759
    +1760
    +1761
    +1762
    +1763
    +1764
    +1765
    +1766
    +1767
    +1768
    +1769
    +1770
    +1771
    +1772
    +1773
    +1774
    +1775
    +1776
    +1777
    +1778
    +1779
     
    // Copyright (c) 2022 Espresso Systems (espressosys.com)
     // This file is part of the HotShot Query Service library.
     //
    @@ -3333,5 +3444,116 @@
                 assert_eq!(block.hash(), leaf.block_hash());
             }
         }
    +
    +    enum MetadataType {
    +        Payload,
    +        Vid,
    +    }
    +
    +    async fn test_metadata_stream_begin_failure_helper(stream: MetadataType) {
    +        setup_test();
    +
    +        // Create the consensus network.
    +        let mut network = MockNetwork::<MockDataSource>::init().await;
    +
    +        // Start a web server that the non-consensus node can use to fetch blocks.
    +        let port = pick_unused_port().unwrap();
    +        let mut app = App::<_, Error>::with_state(ApiState::from(network.data_source()));
    +        app.register_module(
    +            "availability",
    +            define_api(&Default::default(), MockBase::instance()).unwrap(),
    +        )
    +        .unwrap();
    +        network.spawn(
    +            "server",
    +            app.serve(format!("0.0.0.0:{port}"), MockBase::instance()),
    +        );
    +
    +        // Start a data source which is not receiving events from consensus, only from a peer.
    +        let provider = Provider::new(QueryServiceProvider::new(
    +            format!("http://localhost:{port}").parse().unwrap(),
    +            MockBase::instance(),
    +        ));
    +        let db = TmpDb::init().await;
    +        let storage = FailStorage::from(SqlStorage::connect(db.config()).await.unwrap());
    +        let data_source = FetchingDataSource::builder(storage, provider)
    +            .disable_proactive_fetching()
    +            .disable_aggregator()
    +            .with_min_retry_interval(Duration::from_millis(100))
    +            .with_range_chunk_size(3)
    +            .build()
    +            .await
    +            .unwrap();
    +
    +        // Start consensus.
    +        network.start().await;
    +
    +        // Wait until a few blocks are produced.
    +        let leaves = network.data_source().subscribe_leaves(1).await;
    +        let leaves = leaves.take(3).collect::<Vec<_>>().await;
    +
    +        // Send the last leaf to the disconnected data source, so the blocks becomes fetchable.
    +        let last_leaf = leaves.last().unwrap();
    +        let mut tx = data_source.write().await.unwrap();
    +        tx.insert_leaf(last_leaf.clone()).await.unwrap();
    +        tx.commit().await.unwrap();
    +
    +        // Send the first object to the disconnected data source, so we hit all the cases:
    +        // * leaf present but not full object (from the last leaf)
    +        // * full object present but inaccessible due to storage failures (first object)
    +        // * nothing present (middle object)
    +        let leaf = network.data_source().get_leaf(1).await.await;
    +        let block = network.data_source().get_block(1).await.await;
    +        let vid = network.data_source().get_vid_common(1).await.await;
    +        data_source
    +            .append(BlockInfo::new(leaf, Some(block), Some(vid), None))
    +            .await
    +            .unwrap();
    +
    +        // Stream the objects with a period of database failures.
    +        tracing::info!("stream with transaction failure");
    +        data_source
    +            .as_ref()
    +            .fail_begins_read_only(FailableAction::Any)
    +            .await;
    +        match stream {
    +            MetadataType::Payload => {
    +                let payloads = data_source.subscribe_payload_metadata(1).await.take(3);
    +
    +                // Give some time for a few reads to fail before letting them succeed.
    +                sleep(Duration::from_secs(2)).await;
    +                tracing::info!("stop failing transactions");
    +                data_source.as_ref().pass().await;
    +
    +                let payloads = payloads.collect::<Vec<_>>().await;
    +                for (leaf, payload) in leaves.iter().zip(payloads) {
    +                    assert_eq!(payload.block_hash, leaf.block_hash());
    +                }
    +            }
    +            MetadataType::Vid => {
    +                let vids = data_source.subscribe_vid_common_metadata(1).await.take(3);
    +
    +                // Give some time for a few reads to fail before letting them succeed.
    +                sleep(Duration::from_secs(2)).await;
    +                tracing::info!("stop failing transactions");
    +                data_source.as_ref().pass().await;
    +
    +                let vids = vids.collect::<Vec<_>>().await;
    +                for (leaf, vid) in leaves.iter().zip(vids) {
    +                    assert_eq!(vid.block_hash, leaf.block_hash());
    +                }
    +            }
    +        }
    +    }
    +
    +    #[tokio::test(flavor = "multi_thread")]
    +    async fn test_metadata_stream_begin_failure_payload() {
    +        test_metadata_stream_begin_failure_helper(MetadataType::Payload).await
    +    }
    +
    +    #[tokio::test(flavor = "multi_thread")]
    +    async fn test_metadata_stream_begin_failure_vid() {
    +        test_metadata_stream_begin_failure_helper(MetadataType::Vid).await
    +    }
     }
     
    \ No newline at end of file diff --git a/src/hotshot_query_service/lib.rs.html b/src/hotshot_query_service/lib.rs.html index dae166392..0bdae8ef9 100644 --- a/src/hotshot_query_service/lib.rs.html +++ b/src/hotshot_query_service/lib.rs.html @@ -865,6 +865,64 @@ 865 866 867 +868 +869 +870 +871 +872 +873 +874 +875 +876 +877 +878 +879 +880 +881 +882 +883 +884 +885 +886 +887 +888 +889 +890 +891 +892 +893 +894 +895 +896 +897 +898 +899 +900 +901 +902 +903 +904 +905 +906 +907 +908 +909 +910 +911 +912 +913 +914 +915 +916 +917 +918 +919 +920 +921 +922 +923 +924 +925
    // Copyright (c) 2022 Espresso Systems (espressosys.com)
     // This file is part of the HotShot Query Service library.
     //
    @@ -1127,7 +1185,8 @@
     //! # use hotshot_query_service::{Header, QueryResult, VidShare};
     //! # use hotshot_query_service::availability::{
     //! #   AvailabilityDataSource, BlockId, BlockQueryData, Fetch, LeafId, LeafQueryData,
    -//! #   PayloadQueryData, TransactionHash, TransactionQueryData, VidCommonQueryData,
    +//! #   PayloadMetadata, PayloadQueryData, TransactionHash, TransactionQueryData,
    +//! #   VidCommonMetadata, VidCommonQueryData,
     //! # };
     //! # use hotshot_query_service::metrics::PrometheusMetrics;
     //! # use hotshot_query_service::node::{
    @@ -1158,9 +1217,15 @@
     //!     type PayloadRange<R> = D::PayloadRange<R>
     //!     where
     //!         R: RangeBounds<usize> + Send;
    +//!     type PayloadMetadataRange<R> = D::PayloadMetadataRange<R>
    +//!     where
    +//!         R: RangeBounds<usize> + Send;
     //!     type VidCommonRange<R> = D::VidCommonRange<R>
     //!     where
     //!         R: RangeBounds<usize> + Send;
    +//!     type VidCommonMetadataRange<R> = D::VidCommonMetadataRange<R>
    +//!     where
    +//!         R: RangeBounds<usize> + Send;
     //!
     //!     async fn get_leaf<ID>(&self, id: ID) -> Fetch<LeafQueryData<AppTypes>>
     //!     where
    @@ -1176,9 +1241,15 @@
     //! #   async fn get_payload<ID>(&self, id: ID) -> Fetch<PayloadQueryData<AppTypes>>
     //! #   where
     //! #       ID: Into<BlockId<AppTypes>> + Send + Sync { todo!() }
    +//! #   async fn get_payload_metadata<ID>(&self, id: ID) -> Fetch<PayloadMetadata<AppTypes>>
    +//! #   where
    +//! #       ID: Into<BlockId<AppTypes>> + Send + Sync { todo!() }
     //! #   async fn get_vid_common<ID>(&self, id: ID) -> Fetch<VidCommonQueryData<AppTypes>>
     //! #   where
     //! #       ID: Into<BlockId<AppTypes>> + Send + Sync { todo!() }
    +//! #   async fn get_vid_common_metadata<ID>(&self, id: ID) -> Fetch<VidCommonMetadata<AppTypes>>
    +//! #   where
    +//! #       ID: Into<BlockId<AppTypes>> + Send + Sync { todo!() }
     //! #   async fn get_transaction(&self, hash: TransactionHash<AppTypes>) -> Fetch<TransactionQueryData<AppTypes>> { todo!() }
     //! #   async fn get_leaf_range<R>(&self, range: R) -> Self::LeafRange<R>
     //! #   where
    @@ -1189,9 +1260,15 @@
     //! #   async fn get_payload_range<R>(&self, range: R) -> Self::PayloadRange<R>
     //! #   where
     //! #       R: RangeBounds<usize> + Send { todo!() }
    +//! #   async fn get_payload_metadata_range<R>(&self, range: R) -> Self::PayloadMetadataRange<R>
    +//! #   where
    +//! #       R: RangeBounds<usize> + Send { todo!() }
     //! #   async fn get_vid_common_range<R>(&self, range: R) -> Self::VidCommonRange<R>
     //! #   where
     //! #       R: RangeBounds<usize> + Send { todo!() }
    +//! #   async fn get_vid_common_metadata_range<R>(&self, range: R) -> Self::VidCommonMetadataRange<R>
    +//! #   where
    +//! #       R: RangeBounds<usize> + Send { todo!() }
     //! }
     //!
     //! // Implement data source trait for node API by delegating to the underlying data source.
    @@ -1441,8 +1518,8 @@
         use crate::{
             availability::{
                 AvailabilityDataSource, BlockId, BlockInfo, BlockQueryData, Fetch, LeafId,
    -            LeafQueryData, PayloadQueryData, TransactionHash, TransactionQueryData,
    -            UpdateAvailabilityData, VidCommonQueryData,
    +            LeafQueryData, PayloadMetadata, PayloadQueryData, TransactionHash,
    +            TransactionQueryData, UpdateAvailabilityData, VidCommonMetadata, VidCommonQueryData,
             },
             metrics::PrometheusMetrics,
             node::{NodeDataSource, SyncStatus, TimeWindowQueryData, WindowStart},
    @@ -1492,12 +1569,24 @@
                 >>::PayloadRange<R>
             where
                 R: RangeBounds<usize> + Send;
    +        type PayloadMetadataRange<R> =
    +            <MockDataSource as AvailabilityDataSource<
    +                MockTypes,
    +            >>::PayloadMetadataRange<R>
    +        where
    +            R: RangeBounds<usize> + Send;
             type VidCommonRange<R> =
                 <MockDataSource as AvailabilityDataSource<
                     MockTypes,
                 >>::VidCommonRange<R>
             where
                 R: RangeBounds<usize> + Send;
    +        type VidCommonMetadataRange<R> =
    +            <MockDataSource as AvailabilityDataSource<
    +                MockTypes,
    +            >>::VidCommonMetadataRange<R>
    +        where
    +            R: RangeBounds<usize> + Send;
     
             async fn get_leaf<ID>(&self, id: ID) -> Fetch<LeafQueryData<MockTypes>>
             where
    @@ -1517,12 +1606,24 @@
             {
                 self.hotshot_qs.get_payload(id).await
             }
    +        async fn get_payload_metadata<ID>(&self, id: ID) -> Fetch<PayloadMetadata<MockTypes>>
    +        where
    +            ID: Into<BlockId<MockTypes>> + Send + Sync,
    +        {
    +            self.hotshot_qs.get_payload_metadata(id).await
    +        }
             async fn get_vid_common<ID>(&self, id: ID) -> Fetch<VidCommonQueryData<MockTypes>>
             where
                 ID: Into<BlockId<MockTypes>> + Send + Sync,
             {
                 self.hotshot_qs.get_vid_common(id).await
             }
    +        async fn get_vid_common_metadata<ID>(&self, id: ID) -> Fetch<VidCommonMetadata<MockTypes>>
    +        where
    +            ID: Into<BlockId<MockTypes>> + Send + Sync,
    +        {
    +            self.hotshot_qs.get_vid_common_metadata(id).await
    +        }
             async fn get_leaf_range<R>(&self, range: R) -> Self::LeafRange<R>
             where
                 R: RangeBounds<usize> + Send + 'static,
    @@ -1541,12 +1642,27 @@
             {
                 self.hotshot_qs.get_payload_range(range).await
             }
    +        async fn get_payload_metadata_range<R>(&self, range: R) -> Self::PayloadMetadataRange<R>
    +        where
    +            R: RangeBounds<usize> + Send + 'static,
    +        {
    +            self.hotshot_qs.get_payload_metadata_range(range).await
    +        }
             async fn get_vid_common_range<R>(&self, range: R) -> Self::VidCommonRange<R>
             where
                 R: RangeBounds<usize> + Send + 'static,
             {
                 self.hotshot_qs.get_vid_common_range(range).await
             }
    +        async fn get_vid_common_metadata_range<R>(
    +            &self,
    +            range: R,
    +        ) -> Self::VidCommonMetadataRange<R>
    +        where
    +            R: RangeBounds<usize> + Send + 'static,
    +        {
    +            self.hotshot_qs.get_vid_common_metadata_range(range).await
    +        }
             async fn get_transaction(
                 &self,
                 hash: TransactionHash<MockTypes>,
    diff --git a/trait.impl/core/clone/trait.Clone.js b/trait.impl/core/clone/trait.Clone.js
    index 8e43bb8a2..4e5980914 100644
    --- a/trait.impl/core/clone/trait.Clone.js
    +++ b/trait.impl/core/clone/trait.Clone.js
    @@ -1,9 +1,9 @@
     (function() {
    -    var implementors = Object.fromEntries([["hotshot_query_service",[["impl Clone for Error"],["impl Clone for FailableAction"],["impl Clone for DataSource"],["impl Clone for Error"],["impl Clone for QueryError"],["impl Clone for CurrencyCode"],["impl Clone for Error"],["impl Clone for GetBlockDetailError"],["impl Clone for GetBlockSummariesError"],["impl Clone for GetExplorerSummaryError"],["impl Clone for GetSearchResultsError"],["impl Clone for GetTransactionDetailError"],["impl Clone for GetTransactionSummariesError"],["impl Clone for Error"],["impl Clone for Error"],["impl Clone for Error"],["impl Clone for RequestSnafu"],["impl Clone for NoStorage"],["impl Clone for PrunerCfg"],["impl Clone for Config"],["impl Clone for Read"],["impl Clone for Write"],["impl Clone for MetricsDataSource"],["impl Clone for CurrencyMismatchError"],["impl Clone for InvalidCurrencyCodeError"],["impl Clone for MonetaryValue"],["impl Clone for Timestamp"],["impl Clone for NoFetching"],["impl Clone for LeafRequest"],["impl Clone for PayloadRequest"],["impl Clone for VidCommonRequest"],["impl Clone for Counter"],["impl Clone for CounterFamily"],["impl Clone for Gauge"],["impl Clone for GaugeFamily"],["impl Clone for Histogram"],["impl Clone for HistogramFamily"],["impl Clone for PrometheusMetrics"],["impl Clone for TextFamily"],["impl Clone for QuerySnafu"],["impl Clone for RequestSnafu"],["impl Clone for SyncStatus"],["impl Clone for MissingSnafu"],["impl Clone for NotFoundSnafu"],["impl Clone for BackgroundTask"],["impl Clone for MockNodeImpl"],["impl Clone for MockTypes"],["impl Clone for MockVersions"],["impl<D: Clone> Clone for ApiState<D>"],["impl<D: Clone, U: Clone> Clone for ExtensibleDataSource<D, U>"],["impl<P> Clone for TestProvider<P>"],["impl<S: Clone> Clone for FailStorage<S>"],["impl<T, C> Clone for Fetcher<T, C>"],["impl<T: MerklizedState<Types, ARITY>, Types: NodeType, const ARITY: usize> Clone for Snapshot<Types, T, ARITY>"],["impl<T: Clone> Clone for TimeWindowQueryData<T>"],["impl<Types> Clone for AnyProvider<Types>
    where\n Types: NodeType,
    "],["impl<Types, S, P> Clone for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,
    "],["impl<Types, S, P> Clone for Pruner<Types, S, P>
    where\n Types: NodeType,
    "],["impl<Types: Clone + NodeType> Clone for BlockIdentifier<Types>"],["impl<Types: Clone + NodeType> Clone for TransactionIdentifier<Types>"],["impl<Types: Clone + NodeType> Clone for BlockInfo<Types>"],["impl<Types: Clone + NodeType> Clone for BlockQueryData<Types>"],["impl<Types: Clone + NodeType> Clone for BlockSummaryQueryData<Types>"],["impl<Types: Clone + NodeType> Clone for InconsistentLeafError<Types>"],["impl<Types: Clone + NodeType> Clone for LeafQueryData<Types>"],["impl<Types: Clone + NodeType> Clone for PayloadQueryData<Types>"],["impl<Types: Clone + NodeType> Clone for TransactionQueryData<Types>
    where\n Payload<Types>: QueryablePayload<Types>,
    "],["impl<Types: Clone + NodeType> Clone for TransactionSummaryQueryData<Types>"],["impl<Types: Clone + NodeType> Clone for VidCommonQueryData<Types>"],["impl<Types: Clone + NodeType> Clone for BlockRange<Types>"],["impl<Types: Clone + NodeType> Clone for TransactionRange<Types>"],["impl<Types: NodeType> Clone for BlockId<Types>"],["impl<Types: NodeType> Clone for LeafId<Types>"],["impl<Types: NodeType> Clone for WindowStart<Types>"],["impl<Ver: Clone + StaticVersionType> Clone for QueryServiceProvider<Ver>"],["impl<__T0: Clone> Clone for FetchBlockSnafu<__T0>"],["impl<__T0: Clone> Clone for FetchLeafSnafu<__T0>"],["impl<__T0: Clone> Clone for FetchTransactionSnafu<__T0>"],["impl<__T0: Clone> Clone for QueryVidSnafu<__T0>"],["impl<__T0: Clone> Clone for ErrorSnafu<__T0>"],["impl<__T0: Clone, __T1: Clone> Clone for CustomSnafu<__T0, __T1>"],["impl<__T0: Clone, __T1: Clone> Clone for InvalidTransactionIndexSnafu<__T0, __T1>"],["impl<__T0: Clone, __T1: Clone> Clone for CustomSnafu<__T0, __T1>"],["impl<__T0: Clone, __T1: Clone> Clone for QueryWindowSnafu<__T0, __T1>"]]]]); + var implementors = Object.fromEntries([["hotshot_query_service",[["impl Clone for Error"],["impl Clone for FailableAction"],["impl Clone for DataSource"],["impl Clone for Error"],["impl Clone for QueryError"],["impl Clone for CurrencyCode"],["impl Clone for Error"],["impl Clone for GetBlockDetailError"],["impl Clone for GetBlockSummariesError"],["impl Clone for GetExplorerSummaryError"],["impl Clone for GetSearchResultsError"],["impl Clone for GetTransactionDetailError"],["impl Clone for GetTransactionSummariesError"],["impl Clone for Error"],["impl Clone for Error"],["impl Clone for Error"],["impl Clone for RequestSnafu"],["impl Clone for NoStorage"],["impl Clone for PrunerCfg"],["impl Clone for Config"],["impl Clone for Read"],["impl Clone for Write"],["impl Clone for MetricsDataSource"],["impl Clone for CurrencyMismatchError"],["impl Clone for InvalidCurrencyCodeError"],["impl Clone for MonetaryValue"],["impl Clone for Timestamp"],["impl Clone for NoFetching"],["impl Clone for LeafRequest"],["impl Clone for PayloadRequest"],["impl Clone for VidCommonRequest"],["impl Clone for Counter"],["impl Clone for CounterFamily"],["impl Clone for Gauge"],["impl Clone for GaugeFamily"],["impl Clone for Histogram"],["impl Clone for HistogramFamily"],["impl Clone for PrometheusMetrics"],["impl Clone for TextFamily"],["impl Clone for QuerySnafu"],["impl Clone for RequestSnafu"],["impl Clone for SyncStatus"],["impl Clone for MissingSnafu"],["impl Clone for NotFoundSnafu"],["impl Clone for BackgroundTask"],["impl Clone for MockNodeImpl"],["impl Clone for MockTypes"],["impl Clone for MockVersions"],["impl<D: Clone> Clone for ApiState<D>"],["impl<D: Clone, U: Clone> Clone for ExtensibleDataSource<D, U>"],["impl<P> Clone for TestProvider<P>"],["impl<S: Clone> Clone for FailStorage<S>"],["impl<T, C> Clone for Fetcher<T, C>"],["impl<T: MerklizedState<Types, ARITY>, Types: NodeType, const ARITY: usize> Clone for Snapshot<Types, T, ARITY>"],["impl<T: Clone> Clone for TimeWindowQueryData<T>"],["impl<Types> Clone for PayloadMetadata<Types>
    where\n Types: NodeType + Clone,
    "],["impl<Types> Clone for VidCommonMetadata<Types>
    where\n Types: NodeType + Clone,
    "],["impl<Types> Clone for AnyProvider<Types>
    where\n Types: NodeType,
    "],["impl<Types, S, P> Clone for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,
    "],["impl<Types, S, P> Clone for Pruner<Types, S, P>
    where\n Types: NodeType,
    "],["impl<Types: Clone + NodeType> Clone for BlockIdentifier<Types>"],["impl<Types: Clone + NodeType> Clone for TransactionIdentifier<Types>"],["impl<Types: Clone + NodeType> Clone for BlockInfo<Types>"],["impl<Types: Clone + NodeType> Clone for BlockQueryData<Types>"],["impl<Types: Clone + NodeType> Clone for BlockSummaryQueryData<Types>"],["impl<Types: Clone + NodeType> Clone for InconsistentLeafError<Types>"],["impl<Types: Clone + NodeType> Clone for LeafQueryData<Types>"],["impl<Types: Clone + NodeType> Clone for PayloadQueryData<Types>"],["impl<Types: Clone + NodeType> Clone for TransactionQueryData<Types>
    where\n Payload<Types>: QueryablePayload<Types>,
    "],["impl<Types: Clone + NodeType> Clone for TransactionSummaryQueryData<Types>"],["impl<Types: Clone + NodeType> Clone for VidCommonQueryData<Types>"],["impl<Types: Clone + NodeType> Clone for BlockRange<Types>"],["impl<Types: Clone + NodeType> Clone for TransactionRange<Types>"],["impl<Types: NodeType> Clone for BlockId<Types>"],["impl<Types: NodeType> Clone for LeafId<Types>"],["impl<Types: NodeType> Clone for WindowStart<Types>"],["impl<Ver: Clone + StaticVersionType> Clone for QueryServiceProvider<Ver>"],["impl<__T0: Clone> Clone for FetchBlockSnafu<__T0>"],["impl<__T0: Clone> Clone for FetchLeafSnafu<__T0>"],["impl<__T0: Clone> Clone for FetchTransactionSnafu<__T0>"],["impl<__T0: Clone> Clone for QueryVidSnafu<__T0>"],["impl<__T0: Clone> Clone for ErrorSnafu<__T0>"],["impl<__T0: Clone, __T1: Clone> Clone for CustomSnafu<__T0, __T1>"],["impl<__T0: Clone, __T1: Clone> Clone for InvalidTransactionIndexSnafu<__T0, __T1>"],["impl<__T0: Clone, __T1: Clone> Clone for CustomSnafu<__T0, __T1>"],["impl<__T0: Clone, __T1: Clone> Clone for QueryWindowSnafu<__T0, __T1>"]]]]); if (window.register_implementors) { window.register_implementors(implementors); } else { window.pending_implementors = implementors; } })() -//{"start":57,"fragment_lengths":[33268]} \ No newline at end of file +//{"start":57,"fragment_lengths":[34364]} \ No newline at end of file diff --git a/trait.impl/core/cmp/trait.Eq.js b/trait.impl/core/cmp/trait.Eq.js index b1d18250f..0b5330a56 100644 --- a/trait.impl/core/cmp/trait.Eq.js +++ b/trait.impl/core/cmp/trait.Eq.js @@ -1,9 +1,9 @@ (function() { - var implementors = Object.fromEntries([["hotshot_query_service",[["impl Eq for FailableAction"],["impl Eq for CurrencyCode"],["impl Eq for TimestampConversionError"],["impl Eq for FeeAttribution"],["impl Eq for MonetaryValue"],["impl Eq for Timestamp"],["impl Eq for LeafRequest"],["impl Eq for PayloadRequest"],["impl Eq for VidCommonRequest"],["impl Eq for SyncStatus"],["impl Eq for MockNodeImpl"],["impl Eq for MockTypes"],["impl<T: Eq> Eq for TimeWindowQueryData<T>"],["impl<Types: Eq + NodeType> Eq for BlockIdentifier<Types>"],["impl<Types: Eq + NodeType> Eq for TransactionIdentifier<Types>"],["impl<Types: Eq + NodeType> Eq for BlockQueryData<Types>"],["impl<Types: Eq + NodeType> Eq for BlockSummaryQueryData<Types>"],["impl<Types: Eq + NodeType> Eq for LeafQueryData<Types>"],["impl<Types: Eq + NodeType> Eq for PayloadQueryData<Types>"],["impl<Types: Eq + NodeType> Eq for TransactionQueryData<Types>
    where\n Payload<Types>: QueryablePayload<Types>,
    "],["impl<Types: Eq + NodeType> Eq for TransactionSummaryQueryData<Types>"],["impl<Types: Eq + NodeType> Eq for VidCommonQueryData<Types>"],["impl<Types: Eq + NodeType> Eq for BlockDetail<Types>
    where\n Header<Types>: ExplorerHeader<Types>,
    "],["impl<Types: Eq + NodeType> Eq for BlockRange<Types>"],["impl<Types: Eq + NodeType> Eq for BlockSummary<Types>
    where\n Header<Types>: ExplorerHeader<Types>,
    "],["impl<Types: Eq + NodeType> Eq for GetBlockSummariesRequest<Types>"],["impl<Types: Eq + NodeType> Eq for TransactionDetail<Types>"],["impl<Types: Eq + NodeType> Eq for TransactionRange<Types>"],["impl<Types: Eq + NodeType> Eq for TransactionSummary<Types>
    where\n Header<Types>: ExplorerHeader<Types>,\n Transaction<Types>: ExplorerTransaction,
    "],["impl<Types: NodeType> Eq for BlockId<Types>"],["impl<Types: NodeType> Eq for LeafId<Types>"],["impl<Types: NodeType, T: MerklizedState<Types, ARITY>, const ARITY: usize> Eq for Snapshot<Types, T, ARITY>"]]]]); + var implementors = Object.fromEntries([["hotshot_query_service",[["impl Eq for FailableAction"],["impl Eq for CurrencyCode"],["impl Eq for TimestampConversionError"],["impl Eq for FeeAttribution"],["impl Eq for MonetaryValue"],["impl Eq for Timestamp"],["impl Eq for LeafRequest"],["impl Eq for PayloadRequest"],["impl Eq for VidCommonRequest"],["impl Eq for SyncStatus"],["impl Eq for MockNodeImpl"],["impl Eq for MockTypes"],["impl<T: Eq> Eq for TimeWindowQueryData<T>"],["impl<Types> Eq for PayloadMetadata<Types>
    where\n Types: NodeType + Eq,
    "],["impl<Types> Eq for VidCommonMetadata<Types>
    where\n Types: NodeType + Eq,
    "],["impl<Types: Eq + NodeType> Eq for BlockIdentifier<Types>"],["impl<Types: Eq + NodeType> Eq for TransactionIdentifier<Types>"],["impl<Types: Eq + NodeType> Eq for BlockQueryData<Types>"],["impl<Types: Eq + NodeType> Eq for BlockSummaryQueryData<Types>"],["impl<Types: Eq + NodeType> Eq for LeafQueryData<Types>"],["impl<Types: Eq + NodeType> Eq for PayloadQueryData<Types>"],["impl<Types: Eq + NodeType> Eq for TransactionQueryData<Types>
    where\n Payload<Types>: QueryablePayload<Types>,
    "],["impl<Types: Eq + NodeType> Eq for TransactionSummaryQueryData<Types>"],["impl<Types: Eq + NodeType> Eq for VidCommonQueryData<Types>"],["impl<Types: Eq + NodeType> Eq for BlockDetail<Types>
    where\n Header<Types>: ExplorerHeader<Types>,
    "],["impl<Types: Eq + NodeType> Eq for BlockRange<Types>"],["impl<Types: Eq + NodeType> Eq for BlockSummary<Types>
    where\n Header<Types>: ExplorerHeader<Types>,
    "],["impl<Types: Eq + NodeType> Eq for GetBlockSummariesRequest<Types>"],["impl<Types: Eq + NodeType> Eq for TransactionDetail<Types>"],["impl<Types: Eq + NodeType> Eq for TransactionRange<Types>"],["impl<Types: Eq + NodeType> Eq for TransactionSummary<Types>
    where\n Header<Types>: ExplorerHeader<Types>,\n Transaction<Types>: ExplorerTransaction,
    "],["impl<Types: NodeType> Eq for BlockId<Types>"],["impl<Types: NodeType> Eq for LeafId<Types>"],["impl<Types: NodeType, T: MerklizedState<Types, ARITY>, const ARITY: usize> Eq for Snapshot<Types, T, ARITY>"]]]]); if (window.register_implementors) { window.register_implementors(implementors); } else { window.pending_implementors = implementors; } })() -//{"start":57,"fragment_lengths":[14900]} \ No newline at end of file +//{"start":57,"fragment_lengths":[15944]} \ No newline at end of file diff --git a/trait.impl/core/cmp/trait.PartialEq.js b/trait.impl/core/cmp/trait.PartialEq.js index c40d9a88e..d545752ed 100644 --- a/trait.impl/core/cmp/trait.PartialEq.js +++ b/trait.impl/core/cmp/trait.PartialEq.js @@ -1,9 +1,9 @@ (function() { - var implementors = Object.fromEntries([["hotshot_query_service",[["impl PartialEq for FailableAction"],["impl PartialEq for CurrencyCode"],["impl PartialEq for TimestampConversionError"],["impl PartialEq for FeeAttribution"],["impl PartialEq for MonetaryValue"],["impl PartialEq for Timestamp"],["impl PartialEq for LeafRequest"],["impl PartialEq for PayloadRequest"],["impl PartialEq for VidCommonRequest"],["impl PartialEq for SyncStatus"],["impl PartialEq for MockNodeImpl"],["impl PartialEq for MockTypes"],["impl<T: PartialEq> PartialEq for TimeWindowQueryData<T>"],["impl<Types: PartialEq + NodeType> PartialEq for BlockIdentifier<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for TransactionIdentifier<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for BlockQueryData<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for BlockSummaryQueryData<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for LeafQueryData<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for PayloadQueryData<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for TransactionQueryData<Types>
    where\n Payload<Types>: QueryablePayload<Types>,
    "],["impl<Types: PartialEq + NodeType> PartialEq for TransactionSummaryQueryData<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for VidCommonQueryData<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for BlockDetail<Types>
    where\n Header<Types>: ExplorerHeader<Types>,
    "],["impl<Types: PartialEq + NodeType> PartialEq for BlockRange<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for BlockSummary<Types>
    where\n Header<Types>: ExplorerHeader<Types>,
    "],["impl<Types: PartialEq + NodeType> PartialEq for GetBlockSummariesRequest<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for TransactionDetail<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for TransactionRange<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for TransactionSummary<Types>
    where\n Header<Types>: ExplorerHeader<Types>,\n Transaction<Types>: ExplorerTransaction,
    "],["impl<Types: NodeType> PartialEq for BlockId<Types>"],["impl<Types: NodeType> PartialEq for LeafId<Types>"],["impl<Types: NodeType, T: MerklizedState<Types, ARITY>, const ARITY: usize> PartialEq for Snapshot<Types, T, ARITY>"]]]]); + var implementors = Object.fromEntries([["hotshot_query_service",[["impl PartialEq for FailableAction"],["impl PartialEq for CurrencyCode"],["impl PartialEq for TimestampConversionError"],["impl PartialEq for FeeAttribution"],["impl PartialEq for MonetaryValue"],["impl PartialEq for Timestamp"],["impl PartialEq for LeafRequest"],["impl PartialEq for PayloadRequest"],["impl PartialEq for VidCommonRequest"],["impl PartialEq for SyncStatus"],["impl PartialEq for MockNodeImpl"],["impl PartialEq for MockTypes"],["impl<T: PartialEq> PartialEq for TimeWindowQueryData<T>"],["impl<Types> PartialEq for PayloadMetadata<Types>
    where\n Types: NodeType + PartialEq,
    "],["impl<Types> PartialEq for VidCommonMetadata<Types>
    where\n Types: NodeType + PartialEq,
    "],["impl<Types: PartialEq + NodeType> PartialEq for BlockIdentifier<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for TransactionIdentifier<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for BlockQueryData<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for BlockSummaryQueryData<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for LeafQueryData<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for PayloadQueryData<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for TransactionQueryData<Types>
    where\n Payload<Types>: QueryablePayload<Types>,
    "],["impl<Types: PartialEq + NodeType> PartialEq for TransactionSummaryQueryData<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for VidCommonQueryData<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for BlockDetail<Types>
    where\n Header<Types>: ExplorerHeader<Types>,
    "],["impl<Types: PartialEq + NodeType> PartialEq for BlockRange<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for BlockSummary<Types>
    where\n Header<Types>: ExplorerHeader<Types>,
    "],["impl<Types: PartialEq + NodeType> PartialEq for GetBlockSummariesRequest<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for TransactionDetail<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for TransactionRange<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for TransactionSummary<Types>
    where\n Header<Types>: ExplorerHeader<Types>,\n Transaction<Types>: ExplorerTransaction,
    "],["impl<Types: NodeType> PartialEq for BlockId<Types>"],["impl<Types: NodeType> PartialEq for LeafId<Types>"],["impl<Types: NodeType, T: MerklizedState<Types, ARITY>, const ARITY: usize> PartialEq for Snapshot<Types, T, ARITY>"]]]]); if (window.register_implementors) { window.register_implementors(implementors); } else { window.pending_implementors = implementors; } })() -//{"start":57,"fragment_lengths":[15929]} \ No newline at end of file +//{"start":57,"fragment_lengths":[17057]} \ No newline at end of file diff --git a/trait.impl/core/convert/trait.From.js b/trait.impl/core/convert/trait.From.js index a3b247046..e410d6d26 100644 --- a/trait.impl/core/convert/trait.From.js +++ b/trait.impl/core/convert/trait.From.js @@ -1,9 +1,9 @@ (function() { - var implementors = Object.fromEntries([["hotshot_query_service",[["impl From<(String, StatusCode)> for Error"],["impl From<(String, StatusCode)> for Error"],["impl From<(String, StatusCode)> for Error"],["impl From<(String, StatusCode)> for Error"],["impl From<Error> for Error"],["impl From<QueryError> for GetBlockDetailError"],["impl From<QueryError> for GetBlockSummariesError"],["impl From<QueryError> for GetExplorerSummaryError"],["impl From<QueryError> for GetSearchResultsError"],["impl From<QueryError> for GetTransactionDetailError"],["impl From<QueryError> for GetTransactionSummariesError"],["impl From<QueryError> for Error"],["impl From<QueryError> for Error"],["impl From<CurrencyCode> for u16"],["impl From<CurrencyCode> for String"],["impl From<Error> for Error"],["impl From<GetBlockDetailError> for GetExplorerSummaryError"],["impl From<GetBlockSummariesError> for GetExplorerSummaryError"],["impl From<GetTransactionSummariesError> for GetExplorerSummaryError"],["impl From<TimestampConversionError> for QueryError"],["impl From<TimestampConversionError> for GetTransactionDetailError"],["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<i128> for MonetaryValue"],["impl From<usize> for LeafRequest"],["impl From<LeafRequest> for usize"],["impl From<String> for Error"],["impl From<TryFromIntError> for TimestampConversionError"],["impl From<ComponentRange> for TimestampConversionError"],["impl From<Error> for QueryError"],["impl From<Error> for GetBlockDetailError"],["impl From<Error> for GetBlockSummariesError"],["impl From<Error> for GetExplorerSummaryError"],["impl From<Error> for GetSearchResultsError"],["impl From<Error> for GetTransactionDetailError"],["impl From<Error> for GetTransactionSummariesError"],["impl From<Error> for MetricsError"],["impl From<PgConnectOptions> for Config"],["impl From<RequestError> for Error"],["impl From<RequestError> for Error"],["impl From<RequestError> for Error"],["impl From<RequestError> for Error"],["impl<D> From<ApiState<D>> for Arc<D>"],["impl<D> From<Arc<D>> for ApiState<D>"],["impl<D> From<D> for ApiState<D>"],["impl<S> From<S> for FailStorage<S>"],["impl<Types: NodeType> From<usize> for BlockId<Types>"],["impl<Types: NodeType> From<usize> for LeafId<Types>"],["impl<Types: NodeType> From<BlockQueryData<Types>> for BlockSummaryQueryData<Types>
    where\n Payload<Types>: QueryablePayload<Types>,
    "],["impl<Types: NodeType> From<BlockQueryData<Types>> for PayloadQueryData<Types>"],["impl<Types: NodeType> From<LeafQueryData<Types>> for BlockInfo<Types>"],["impl<Types: NodeType> From<BlockDetail<Types>> for BlockDetailResponse<Types>
    where\n Header<Types>: ExplorerHeader<Types>,
    "],["impl<Types: NodeType> From<ExplorerSummary<Types>> for ExplorerSummaryResponse<Types>
    where\n Header<Types>: ExplorerHeader<Types>,\n Transaction<Types>: ExplorerTransaction,
    "],["impl<Types: NodeType> From<SearchResult<Types>> for SearchResultResponse<Types>
    where\n Header<Types>: ExplorerHeader<Types>,\n Transaction<Types>: ExplorerTransaction,
    "],["impl<Types: NodeType> From<Vec<BlockSummary<Types>>> for BlockSummaryResponse<Types>
    where\n Header<Types>: ExplorerHeader<Types>,
    "],["impl<Types: NodeType> From<Vec<TransactionSummary<Types>>> for TransactionSummariesResponse<Types>
    where\n Header<Types>: ExplorerHeader<Types>,\n Transaction<Types>: ExplorerTransaction,
    "],["impl<Types: NodeType> From<Commitment<<Types as NodeType>::BlockHeader>> for BlockId<Types>"],["impl<Types: NodeType> From<Commitment<<Types as NodeType>::BlockHeader>> for WindowStart<Types>"],["impl<Types: NodeType> From<Commitment<Leaf<Types>>> for LeafId<Types>"]]]]); + var implementors = Object.fromEntries([["hotshot_query_service",[["impl From<(String, StatusCode)> for Error"],["impl From<(String, StatusCode)> for Error"],["impl From<(String, StatusCode)> for Error"],["impl From<(String, StatusCode)> for Error"],["impl From<Error> for Error"],["impl From<QueryError> for GetBlockDetailError"],["impl From<QueryError> for GetBlockSummariesError"],["impl From<QueryError> for GetExplorerSummaryError"],["impl From<QueryError> for GetSearchResultsError"],["impl From<QueryError> for GetTransactionDetailError"],["impl From<QueryError> for GetTransactionSummariesError"],["impl From<QueryError> for Error"],["impl From<QueryError> for Error"],["impl From<CurrencyCode> for u16"],["impl From<CurrencyCode> for String"],["impl From<Error> for Error"],["impl From<GetBlockDetailError> for GetExplorerSummaryError"],["impl From<GetBlockSummariesError> for GetExplorerSummaryError"],["impl From<GetTransactionSummariesError> for GetExplorerSummaryError"],["impl From<TimestampConversionError> for QueryError"],["impl From<TimestampConversionError> for GetTransactionDetailError"],["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<i128> for MonetaryValue"],["impl From<usize> for LeafRequest"],["impl From<LeafRequest> for usize"],["impl From<String> for Error"],["impl From<TryFromIntError> for TimestampConversionError"],["impl From<ComponentRange> for TimestampConversionError"],["impl From<Error> for QueryError"],["impl From<Error> for GetBlockDetailError"],["impl From<Error> for GetBlockSummariesError"],["impl From<Error> for GetExplorerSummaryError"],["impl From<Error> for GetSearchResultsError"],["impl From<Error> for GetTransactionDetailError"],["impl From<Error> for GetTransactionSummariesError"],["impl From<Error> for MetricsError"],["impl From<PgConnectOptions> for Config"],["impl From<RequestError> for Error"],["impl From<RequestError> for Error"],["impl From<RequestError> for Error"],["impl From<RequestError> for Error"],["impl<D> From<ApiState<D>> for Arc<D>"],["impl<D> From<Arc<D>> for ApiState<D>"],["impl<D> From<D> for ApiState<D>"],["impl<S> From<S> for FailStorage<S>"],["impl<Types> From<BlockQueryData<Types>> for PayloadMetadata<Types>
    where\n Types: NodeType,
    "],["impl<Types> From<VidCommonQueryData<Types>> for VidCommonMetadata<Types>
    where\n Types: NodeType,
    "],["impl<Types: NodeType> From<usize> for BlockId<Types>"],["impl<Types: NodeType> From<usize> for LeafId<Types>"],["impl<Types: NodeType> From<BlockQueryData<Types>> for BlockSummaryQueryData<Types>
    where\n Payload<Types>: QueryablePayload<Types>,
    "],["impl<Types: NodeType> From<BlockQueryData<Types>> for PayloadQueryData<Types>"],["impl<Types: NodeType> From<LeafQueryData<Types>> for BlockInfo<Types>"],["impl<Types: NodeType> From<BlockDetail<Types>> for BlockDetailResponse<Types>
    where\n Header<Types>: ExplorerHeader<Types>,
    "],["impl<Types: NodeType> From<ExplorerSummary<Types>> for ExplorerSummaryResponse<Types>
    where\n Header<Types>: ExplorerHeader<Types>,\n Transaction<Types>: ExplorerTransaction,
    "],["impl<Types: NodeType> From<SearchResult<Types>> for SearchResultResponse<Types>
    where\n Header<Types>: ExplorerHeader<Types>,\n Transaction<Types>: ExplorerTransaction,
    "],["impl<Types: NodeType> From<Vec<BlockSummary<Types>>> for BlockSummaryResponse<Types>
    where\n Header<Types>: ExplorerHeader<Types>,
    "],["impl<Types: NodeType> From<Vec<TransactionSummary<Types>>> for TransactionSummariesResponse<Types>
    where\n Header<Types>: ExplorerHeader<Types>,\n Transaction<Types>: ExplorerTransaction,
    "],["impl<Types: NodeType> From<Commitment<<Types as NodeType>::BlockHeader>> for BlockId<Types>"],["impl<Types: NodeType> From<Commitment<<Types as NodeType>::BlockHeader>> for WindowStart<Types>"],["impl<Types: NodeType> From<Commitment<Leaf<Types>>> for LeafId<Types>"]]]]); if (window.register_implementors) { window.register_implementors(implementors); } else { window.pending_implementors = implementors; } })() -//{"start":57,"fragment_lengths":[29828]} \ No newline at end of file +//{"start":57,"fragment_lengths":[31064]} \ No newline at end of file diff --git a/trait.impl/core/fmt/trait.Debug.js b/trait.impl/core/fmt/trait.Debug.js index a876b0f5c..5eadc4bbe 100644 --- a/trait.impl/core/fmt/trait.Debug.js +++ b/trait.impl/core/fmt/trait.Debug.js @@ -1,9 +1,9 @@ (function() { - var implementors = Object.fromEntries([["hotshot_query_service",[["impl Debug for Error"],["impl Debug for FailableAction"],["impl Debug for DataSource"],["impl Debug for Error"],["impl Debug for QueryError"],["impl Debug for CurrencyCode"],["impl Debug for Error"],["impl Debug for GetBlockDetailError"],["impl Debug for GetBlockSummariesError"],["impl Debug for GetExplorerSummaryError"],["impl Debug for GetSearchResultsError"],["impl Debug for GetTransactionDetailError"],["impl Debug for GetTransactionSummariesError"],["impl Debug for TimestampConversionError"],["impl Debug for TransactionSummaryFilter"],["impl Debug for Error"],["impl Debug for MetricsError"],["impl Debug for Error"],["impl Debug for Error"],["impl Debug for RequestSnafu"],["impl Debug for NoStorage"],["impl Debug for PrunerCfg"],["impl Debug for Config"],["impl Debug for Pruner"],["impl Debug for Read"],["impl Debug for SqlStorage"],["impl Debug for Write"],["impl Debug for TmpDb"],["impl Debug for MetricsDataSource"],["impl Debug for CurrencyMismatchError"],["impl Debug for ExplorerHistograms"],["impl Debug for FeeAttribution"],["impl Debug for GenesisOverview"],["impl Debug for InvalidCurrencyCodeError"],["impl Debug for MonetaryValue"],["impl Debug for Timestamp"],["impl Debug for NoFetching"],["impl Debug for LeafRequest"],["impl Debug for PayloadRequest"],["impl Debug for VidCommonRequest"],["impl Debug for Counter"],["impl Debug for CounterFamily"],["impl Debug for Gauge"],["impl Debug for GaugeFamily"],["impl Debug for Histogram"],["impl Debug for HistogramFamily"],["impl Debug for PrometheusMetrics"],["impl Debug for TextFamily"],["impl Debug for QuerySnafu"],["impl Debug for RequestSnafu"],["impl Debug for SyncStatus"],["impl Debug for MissingSnafu"],["impl Debug for NotFoundSnafu"],["impl Debug for BackgroundTask"],["impl Debug for MockNodeImpl"],["impl Debug for MockTypes"],["impl Debug for MockVersions"],["impl<'q> Debug for QueryBuilder<'q>"],["impl<D: Debug> Debug for ApiState<D>"],["impl<D: Debug, U: Debug> Debug for ExtensibleDataSource<D, U>"],["impl<Mode: Debug> Debug for Transaction<Mode>"],["impl<P> Debug for TestProvider<P>
    where\n P: Debug,
    "],["impl<S: Debug> Debug for FailStorage<S>"],["impl<T, C> Debug for Fetcher<T, C>"],["impl<T: Debug + Revert> Debug for Transaction<T>"],["impl<T: Debug> Debug for Transaction<T>"],["impl<T: Debug> Debug for TimeWindowQueryData<T>"],["impl<T: Send + 'static> Debug for Task<T>"],["impl<Types> Debug for FileSystemStorageInner<Types>
    where\n Types: NodeType,\n Payload<Types>: QueryablePayload<Types>,\n HashMap<LeafHash<Types>, u64>: Debug,\n HashMap<BlockHash<Types>, u64>: Debug,\n HashMap<TransactionHash<Types>, u64>: Debug,\n LedgerLog<LeafQueryData<Types>>: Debug,\n LedgerLog<BlockQueryData<Types>>: Debug,\n LedgerLog<(VidCommonQueryData<Types>, Option<VidShare>)>: Debug,
    "],["impl<Types> Debug for AnyProvider<Types>
    where\n Types: NodeType,
    "],["impl<Types, S, P> Debug for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n S: Debug,\n P: Debug,
    "],["impl<Types, S, P> Debug for Pruner<Types, S, P>
    where\n Types: NodeType,\n S: Debug,\n P: Debug,
    "],["impl<Types: Debug + NodeType> Debug for BlockIdentifier<Types>"],["impl<Types: Debug + NodeType> Debug for TransactionIdentifier<Types>"],["impl<Types: Debug + NodeType> Debug for BlockInfo<Types>"],["impl<Types: Debug + NodeType> Debug for BlockQueryData<Types>"],["impl<Types: Debug + NodeType> Debug for BlockSummaryQueryData<Types>"],["impl<Types: Debug + NodeType> Debug for InconsistentLeafError<Types>"],["impl<Types: Debug + NodeType> Debug for LeafQueryData<Types>"],["impl<Types: Debug + NodeType> Debug for PayloadQueryData<Types>"],["impl<Types: Debug + NodeType> Debug for TransactionQueryData<Types>
    where\n Payload<Types>: QueryablePayload<Types>,
    "],["impl<Types: Debug + NodeType> Debug for TransactionSummaryQueryData<Types>"],["impl<Types: Debug + NodeType> Debug for VidCommonQueryData<Types>"],["impl<Types: Debug + NodeType> Debug for FileSystemStorage<Types>
    where\n Payload<Types>: QueryablePayload<Types>,
    "],["impl<Types: Debug + NodeType> Debug for BlockDetail<Types>
    where\n Header<Types>: ExplorerHeader<Types>,
    "],["impl<Types: Debug + NodeType> Debug for BlockDetailResponse<Types>
    where\n Header<Types>: ExplorerHeader<Types>,
    "],["impl<Types: Debug + NodeType> Debug for BlockRange<Types>"],["impl<Types: Debug + NodeType> Debug for BlockSummary<Types>
    where\n Header<Types>: ExplorerHeader<Types>,
    "],["impl<Types: Debug + NodeType> Debug for BlockSummaryResponse<Types>
    where\n Header<Types>: ExplorerHeader<Types>,
    "],["impl<Types: Debug + NodeType> Debug for ExplorerSummary<Types>
    where\n Header<Types>: ExplorerHeader<Types>,\n Transaction<Types>: ExplorerTransaction,
    "],["impl<Types: Debug + NodeType> Debug for ExplorerSummaryResponse<Types>
    where\n Header<Types>: ExplorerHeader<Types>,\n Transaction<Types>: ExplorerTransaction,
    "],["impl<Types: Debug + NodeType> Debug for GetBlockSummariesRequest<Types>"],["impl<Types: Debug + NodeType> Debug for GetTransactionSummariesRequest<Types>"],["impl<Types: Debug + NodeType> Debug for SearchResult<Types>
    where\n Header<Types>: ExplorerHeader<Types>,\n Transaction<Types>: ExplorerTransaction,
    "],["impl<Types: Debug + NodeType> Debug for SearchResultResponse<Types>
    where\n Header<Types>: ExplorerHeader<Types>,\n Transaction<Types>: ExplorerTransaction,
    "],["impl<Types: Debug + NodeType> Debug for TransactionDetail<Types>"],["impl<Types: Debug + NodeType> Debug for TransactionDetailResponse<Types>"],["impl<Types: Debug + NodeType> Debug for TransactionRange<Types>"],["impl<Types: Debug + NodeType> Debug for TransactionSummariesResponse<Types>
    where\n Header<Types>: ExplorerHeader<Types>,\n Transaction<Types>: ExplorerTransaction,
    "],["impl<Types: Debug + NodeType> Debug for TransactionSummary<Types>
    where\n Header<Types>: ExplorerHeader<Types>,\n Transaction<Types>: ExplorerTransaction,
    "],["impl<Types: NodeType> Debug for BlockId<Types>"],["impl<Types: NodeType> Debug for LeafId<Types>"],["impl<Types: NodeType> Debug for WindowStart<Types>"],["impl<Types: NodeType, T: MerklizedState<Types, ARITY>, const ARITY: usize> Debug for Snapshot<Types, T, ARITY>"],["impl<Ver: Debug + StaticVersionType> Debug for QueryServiceProvider<Ver>"],["impl<__T0: Debug> Debug for FetchBlockSnafu<__T0>"],["impl<__T0: Debug> Debug for FetchLeafSnafu<__T0>"],["impl<__T0: Debug> Debug for FetchTransactionSnafu<__T0>"],["impl<__T0: Debug> Debug for QueryVidSnafu<__T0>"],["impl<__T0: Debug> Debug for ErrorSnafu<__T0>"],["impl<__T0: Debug, __T1: Debug> Debug for CustomSnafu<__T0, __T1>"],["impl<__T0: Debug, __T1: Debug> Debug for InvalidTransactionIndexSnafu<__T0, __T1>"],["impl<__T0: Debug, __T1: Debug> Debug for CustomSnafu<__T0, __T1>"],["impl<__T0: Debug, __T1: Debug> Debug for QueryWindowSnafu<__T0, __T1>"]]]]); + var implementors = Object.fromEntries([["hotshot_query_service",[["impl Debug for Error"],["impl Debug for FailableAction"],["impl Debug for DataSource"],["impl Debug for Error"],["impl Debug for QueryError"],["impl Debug for CurrencyCode"],["impl Debug for Error"],["impl Debug for GetBlockDetailError"],["impl Debug for GetBlockSummariesError"],["impl Debug for GetExplorerSummaryError"],["impl Debug for GetSearchResultsError"],["impl Debug for GetTransactionDetailError"],["impl Debug for GetTransactionSummariesError"],["impl Debug for TimestampConversionError"],["impl Debug for TransactionSummaryFilter"],["impl Debug for Error"],["impl Debug for MetricsError"],["impl Debug for Error"],["impl Debug for Error"],["impl Debug for RequestSnafu"],["impl Debug for NoStorage"],["impl Debug for PrunerCfg"],["impl Debug for Config"],["impl Debug for Pruner"],["impl Debug for Read"],["impl Debug for SqlStorage"],["impl Debug for Write"],["impl Debug for TmpDb"],["impl Debug for MetricsDataSource"],["impl Debug for CurrencyMismatchError"],["impl Debug for ExplorerHistograms"],["impl Debug for FeeAttribution"],["impl Debug for GenesisOverview"],["impl Debug for InvalidCurrencyCodeError"],["impl Debug for MonetaryValue"],["impl Debug for Timestamp"],["impl Debug for NoFetching"],["impl Debug for LeafRequest"],["impl Debug for PayloadRequest"],["impl Debug for VidCommonRequest"],["impl Debug for Counter"],["impl Debug for CounterFamily"],["impl Debug for Gauge"],["impl Debug for GaugeFamily"],["impl Debug for Histogram"],["impl Debug for HistogramFamily"],["impl Debug for PrometheusMetrics"],["impl Debug for TextFamily"],["impl Debug for QuerySnafu"],["impl Debug for RequestSnafu"],["impl Debug for SyncStatus"],["impl Debug for MissingSnafu"],["impl Debug for NotFoundSnafu"],["impl Debug for BackgroundTask"],["impl Debug for MockNodeImpl"],["impl Debug for MockTypes"],["impl Debug for MockVersions"],["impl<'q> Debug for QueryBuilder<'q>"],["impl<D: Debug> Debug for ApiState<D>"],["impl<D: Debug, U: Debug> Debug for ExtensibleDataSource<D, U>"],["impl<Mode: Debug> Debug for Transaction<Mode>"],["impl<P> Debug for TestProvider<P>
    where\n P: Debug,
    "],["impl<S: Debug> Debug for FailStorage<S>"],["impl<T, C> Debug for Fetcher<T, C>"],["impl<T: Debug + Revert> Debug for Transaction<T>"],["impl<T: Debug> Debug for Transaction<T>"],["impl<T: Debug> Debug for TimeWindowQueryData<T>"],["impl<T: Send + 'static> Debug for Task<T>"],["impl<Types> Debug for PayloadMetadata<Types>
    where\n Types: NodeType + Debug,
    "],["impl<Types> Debug for VidCommonMetadata<Types>
    where\n Types: NodeType + Debug,
    "],["impl<Types> Debug for FileSystemStorageInner<Types>
    where\n Types: NodeType,\n Payload<Types>: QueryablePayload<Types>,\n HashMap<LeafHash<Types>, u64>: Debug,\n HashMap<BlockHash<Types>, u64>: Debug,\n HashMap<TransactionHash<Types>, u64>: Debug,\n LedgerLog<LeafQueryData<Types>>: Debug,\n LedgerLog<BlockQueryData<Types>>: Debug,\n LedgerLog<(VidCommonQueryData<Types>, Option<VidShare>)>: Debug,
    "],["impl<Types> Debug for AnyProvider<Types>
    where\n Types: NodeType,
    "],["impl<Types, S, P> Debug for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n S: Debug,\n P: Debug,
    "],["impl<Types, S, P> Debug for Pruner<Types, S, P>
    where\n Types: NodeType,\n S: Debug,\n P: Debug,
    "],["impl<Types: Debug + NodeType> Debug for BlockIdentifier<Types>"],["impl<Types: Debug + NodeType> Debug for TransactionIdentifier<Types>"],["impl<Types: Debug + NodeType> Debug for BlockInfo<Types>"],["impl<Types: Debug + NodeType> Debug for BlockQueryData<Types>"],["impl<Types: Debug + NodeType> Debug for BlockSummaryQueryData<Types>"],["impl<Types: Debug + NodeType> Debug for InconsistentLeafError<Types>"],["impl<Types: Debug + NodeType> Debug for LeafQueryData<Types>"],["impl<Types: Debug + NodeType> Debug for PayloadQueryData<Types>"],["impl<Types: Debug + NodeType> Debug for TransactionQueryData<Types>
    where\n Payload<Types>: QueryablePayload<Types>,
    "],["impl<Types: Debug + NodeType> Debug for TransactionSummaryQueryData<Types>"],["impl<Types: Debug + NodeType> Debug for VidCommonQueryData<Types>"],["impl<Types: Debug + NodeType> Debug for FileSystemStorage<Types>
    where\n Payload<Types>: QueryablePayload<Types>,
    "],["impl<Types: Debug + NodeType> Debug for BlockDetail<Types>
    where\n Header<Types>: ExplorerHeader<Types>,
    "],["impl<Types: Debug + NodeType> Debug for BlockDetailResponse<Types>
    where\n Header<Types>: ExplorerHeader<Types>,
    "],["impl<Types: Debug + NodeType> Debug for BlockRange<Types>"],["impl<Types: Debug + NodeType> Debug for BlockSummary<Types>
    where\n Header<Types>: ExplorerHeader<Types>,
    "],["impl<Types: Debug + NodeType> Debug for BlockSummaryResponse<Types>
    where\n Header<Types>: ExplorerHeader<Types>,
    "],["impl<Types: Debug + NodeType> Debug for ExplorerSummary<Types>
    where\n Header<Types>: ExplorerHeader<Types>,\n Transaction<Types>: ExplorerTransaction,
    "],["impl<Types: Debug + NodeType> Debug for ExplorerSummaryResponse<Types>
    where\n Header<Types>: ExplorerHeader<Types>,\n Transaction<Types>: ExplorerTransaction,
    "],["impl<Types: Debug + NodeType> Debug for GetBlockSummariesRequest<Types>"],["impl<Types: Debug + NodeType> Debug for GetTransactionSummariesRequest<Types>"],["impl<Types: Debug + NodeType> Debug for SearchResult<Types>
    where\n Header<Types>: ExplorerHeader<Types>,\n Transaction<Types>: ExplorerTransaction,
    "],["impl<Types: Debug + NodeType> Debug for SearchResultResponse<Types>
    where\n Header<Types>: ExplorerHeader<Types>,\n Transaction<Types>: ExplorerTransaction,
    "],["impl<Types: Debug + NodeType> Debug for TransactionDetail<Types>"],["impl<Types: Debug + NodeType> Debug for TransactionDetailResponse<Types>"],["impl<Types: Debug + NodeType> Debug for TransactionRange<Types>"],["impl<Types: Debug + NodeType> Debug for TransactionSummariesResponse<Types>
    where\n Header<Types>: ExplorerHeader<Types>,\n Transaction<Types>: ExplorerTransaction,
    "],["impl<Types: Debug + NodeType> Debug for TransactionSummary<Types>
    where\n Header<Types>: ExplorerHeader<Types>,\n Transaction<Types>: ExplorerTransaction,
    "],["impl<Types: NodeType> Debug for BlockId<Types>"],["impl<Types: NodeType> Debug for LeafId<Types>"],["impl<Types: NodeType> Debug for WindowStart<Types>"],["impl<Types: NodeType, T: MerklizedState<Types, ARITY>, const ARITY: usize> Debug for Snapshot<Types, T, ARITY>"],["impl<Ver: Debug + StaticVersionType> Debug for QueryServiceProvider<Ver>"],["impl<__T0: Debug> Debug for FetchBlockSnafu<__T0>"],["impl<__T0: Debug> Debug for FetchLeafSnafu<__T0>"],["impl<__T0: Debug> Debug for FetchTransactionSnafu<__T0>"],["impl<__T0: Debug> Debug for QueryVidSnafu<__T0>"],["impl<__T0: Debug> Debug for ErrorSnafu<__T0>"],["impl<__T0: Debug, __T1: Debug> Debug for CustomSnafu<__T0, __T1>"],["impl<__T0: Debug, __T1: Debug> Debug for InvalidTransactionIndexSnafu<__T0, __T1>"],["impl<__T0: Debug, __T1: Debug> Debug for CustomSnafu<__T0, __T1>"],["impl<__T0: Debug, __T1: Debug> Debug for QueryWindowSnafu<__T0, __T1>"]]]]); if (window.register_implementors) { window.register_implementors(implementors); } else { window.pending_implementors = implementors; } })() -//{"start":57,"fragment_lengths":[56254]} \ No newline at end of file +//{"start":57,"fragment_lengths":[57334]} \ No newline at end of file diff --git a/trait.impl/core/marker/trait.Copy.js b/trait.impl/core/marker/trait.Copy.js index 458d3e5ef..870d1fbad 100644 --- a/trait.impl/core/marker/trait.Copy.js +++ b/trait.impl/core/marker/trait.Copy.js @@ -1,9 +1,9 @@ (function() { - var implementors = Object.fromEntries([["hotshot_query_service",[["impl Copy for FailableAction"],["impl Copy for CurrencyCode"],["impl Copy for RequestSnafu"],["impl Copy for Read"],["impl Copy for Write"],["impl Copy for Timestamp"],["impl Copy for NoFetching"],["impl Copy for LeafRequest"],["impl Copy for PayloadRequest"],["impl Copy for VidCommonRequest"],["impl Copy for QuerySnafu"],["impl Copy for RequestSnafu"],["impl Copy for MissingSnafu"],["impl Copy for NotFoundSnafu"],["impl Copy for MockNodeImpl"],["impl Copy for MockTypes"],["impl Copy for MockVersions"],["impl<D: Copy, U: Copy> Copy for ExtensibleDataSource<D, U>"],["impl<Types: NodeType> Copy for BlockId<Types>"],["impl<Types: NodeType> Copy for LeafId<Types>"],["impl<Types: NodeType> Copy for WindowStart<Types>"],["impl<Types: NodeType, T: MerklizedState<Types, ARITY>, const ARITY: usize> Copy for Snapshot<Types, T, ARITY>"],["impl<__T0: Copy> Copy for FetchBlockSnafu<__T0>"],["impl<__T0: Copy> Copy for FetchLeafSnafu<__T0>"],["impl<__T0: Copy> Copy for FetchTransactionSnafu<__T0>"],["impl<__T0: Copy> Copy for QueryVidSnafu<__T0>"],["impl<__T0: Copy> Copy for ErrorSnafu<__T0>"],["impl<__T0: Copy, __T1: Copy> Copy for CustomSnafu<__T0, __T1>"],["impl<__T0: Copy, __T1: Copy> Copy for InvalidTransactionIndexSnafu<__T0, __T1>"],["impl<__T0: Copy, __T1: Copy> Copy for CustomSnafu<__T0, __T1>"],["impl<__T0: Copy, __T1: Copy> Copy for QueryWindowSnafu<__T0, __T1>"]]]]); + var implementors = Object.fromEntries([["hotshot_query_service",[["impl Copy for FailableAction"],["impl Copy for CurrencyCode"],["impl Copy for RequestSnafu"],["impl Copy for Read"],["impl Copy for Write"],["impl Copy for Timestamp"],["impl Copy for NoFetching"],["impl Copy for LeafRequest"],["impl Copy for PayloadRequest"],["impl Copy for VidCommonRequest"],["impl Copy for QuerySnafu"],["impl Copy for RequestSnafu"],["impl Copy for MissingSnafu"],["impl Copy for NotFoundSnafu"],["impl Copy for MockNodeImpl"],["impl Copy for MockTypes"],["impl Copy for MockVersions"],["impl<D: Copy, U: Copy> Copy for ExtensibleDataSource<D, U>"],["impl<Types> Copy for PayloadMetadata<Types>
    where\n Types: NodeType + Copy,
    "],["impl<Types> Copy for VidCommonMetadata<Types>
    where\n Types: NodeType + Copy,
    "],["impl<Types: NodeType> Copy for BlockId<Types>"],["impl<Types: NodeType> Copy for LeafId<Types>"],["impl<Types: NodeType> Copy for WindowStart<Types>"],["impl<Types: NodeType, T: MerklizedState<Types, ARITY>, const ARITY: usize> Copy for Snapshot<Types, T, ARITY>"],["impl<__T0: Copy> Copy for FetchBlockSnafu<__T0>"],["impl<__T0: Copy> Copy for FetchLeafSnafu<__T0>"],["impl<__T0: Copy> Copy for FetchTransactionSnafu<__T0>"],["impl<__T0: Copy> Copy for QueryVidSnafu<__T0>"],["impl<__T0: Copy> Copy for ErrorSnafu<__T0>"],["impl<__T0: Copy, __T1: Copy> Copy for CustomSnafu<__T0, __T1>"],["impl<__T0: Copy, __T1: Copy> Copy for InvalidTransactionIndexSnafu<__T0, __T1>"],["impl<__T0: Copy, __T1: Copy> Copy for CustomSnafu<__T0, __T1>"],["impl<__T0: Copy, __T1: Copy> Copy for QueryWindowSnafu<__T0, __T1>"]]]]); if (window.register_implementors) { window.register_implementors(implementors); } else { window.pending_implementors = implementors; } })() -//{"start":57,"fragment_lengths":[12618]} \ No newline at end of file +//{"start":57,"fragment_lengths":[13710]} \ No newline at end of file diff --git a/trait.impl/core/marker/trait.Freeze.js b/trait.impl/core/marker/trait.Freeze.js index 6d8494990..8f6c687ed 100644 --- a/trait.impl/core/marker/trait.Freeze.js +++ b/trait.impl/core/marker/trait.Freeze.js @@ -1,9 +1,9 @@ (function() { - var implementors = Object.fromEntries([["hotshot_query_service",[["impl Freeze for Error",1,["hotshot_query_service::availability::Error"]],["impl Freeze for FailableAction",1,["hotshot_query_service::data_source::storage::fail_storage::FailableAction"]],["impl Freeze for DataSource",1,["hotshot_query_service::data_source::storage::no_storage::testing::DataSource"]],["impl Freeze for Storage",1,["hotshot_query_service::data_source::storage::no_storage::testing::Storage"]],["impl Freeze for Error",1,["hotshot_query_service::error::Error"]],["impl Freeze for QueryError",1,["hotshot_query_service::QueryError"]],["impl Freeze for CurrencyCode",1,["hotshot_query_service::explorer::currency::CurrencyCode"]],["impl Freeze for Error",1,["hotshot_query_service::explorer::Error"]],["impl Freeze for GetBlockDetailError",1,["hotshot_query_service::explorer::query_data::GetBlockDetailError"]],["impl Freeze for GetBlockSummariesError",1,["hotshot_query_service::explorer::query_data::GetBlockSummariesError"]],["impl Freeze for GetExplorerSummaryError",1,["hotshot_query_service::explorer::query_data::GetExplorerSummaryError"]],["impl Freeze for GetSearchResultsError",1,["hotshot_query_service::explorer::query_data::GetSearchResultsError"]],["impl Freeze for GetTransactionDetailError",1,["hotshot_query_service::explorer::query_data::GetTransactionDetailError"]],["impl Freeze for GetTransactionSummariesError",1,["hotshot_query_service::explorer::query_data::GetTransactionSummariesError"]],["impl Freeze for TimestampConversionError",1,["hotshot_query_service::explorer::query_data::TimestampConversionError"]],["impl Freeze for TransactionSummaryFilter",1,["hotshot_query_service::explorer::query_data::TransactionSummaryFilter"]],["impl Freeze for Error",1,["hotshot_query_service::merklized_state::Error"]],["impl Freeze for MetricsError",1,["hotshot_query_service::metrics::MetricsError"]],["impl Freeze for Error",1,["hotshot_query_service::node::Error"]],["impl Freeze for Error",1,["hotshot_query_service::status::Error"]],["impl Freeze for Options",1,["hotshot_query_service::availability::Options"]],["impl Freeze for RequestSnafu",1,["hotshot_query_service::availability::RequestSnafu"]],["impl Freeze for NoStorage",1,["hotshot_query_service::data_source::storage::no_storage::NoStorage"]],["impl Freeze for PrunerCfg",1,["hotshot_query_service::data_source::storage::pruning::PrunerCfg"]],["impl Freeze for Config",1,["hotshot_query_service::data_source::storage::sql::Config"]],["impl Freeze for Pruner",1,["hotshot_query_service::data_source::storage::sql::Pruner"]],["impl Freeze for Read",1,["hotshot_query_service::data_source::storage::sql::transaction::Read"]],["impl Freeze for SqlStorage",1,["hotshot_query_service::data_source::storage::sql::SqlStorage"]],["impl Freeze for Write",1,["hotshot_query_service::data_source::storage::sql::transaction::Write"]],["impl Freeze for TestMerkleTreeMigration",1,["hotshot_query_service::data_source::storage::sql::testing::TestMerkleTreeMigration"]],["impl Freeze for TmpDb",1,["hotshot_query_service::data_source::storage::sql::testing::TmpDb"]],["impl Freeze for MetricsDataSource",1,["hotshot_query_service::data_source::metrics::MetricsDataSource"]],["impl Freeze for CurrencyMismatchError",1,["hotshot_query_service::explorer::currency::CurrencyMismatchError"]],["impl Freeze for ExplorerHistograms",1,["hotshot_query_service::explorer::query_data::ExplorerHistograms"]],["impl Freeze for FeeAttribution",1,["hotshot_query_service::explorer::query_data::FeeAttribution"]],["impl Freeze for GenesisOverview",1,["hotshot_query_service::explorer::query_data::GenesisOverview"]],["impl Freeze for InvalidCurrencyCodeError",1,["hotshot_query_service::explorer::currency::InvalidCurrencyCodeError"]],["impl Freeze for MonetaryValue",1,["hotshot_query_service::explorer::monetary_value::MonetaryValue"]],["impl Freeze for Timestamp",1,["hotshot_query_service::explorer::query_data::Timestamp"]],["impl Freeze for NoFetching",1,["hotshot_query_service::fetching::provider::NoFetching"]],["impl Freeze for LeafRequest",1,["hotshot_query_service::fetching::request::LeafRequest"]],["impl Freeze for PayloadRequest",1,["hotshot_query_service::fetching::request::PayloadRequest"]],["impl Freeze for VidCommonRequest",1,["hotshot_query_service::fetching::request::VidCommonRequest"]],["impl Freeze for Options",1,["hotshot_query_service::merklized_state::Options"]],["impl Freeze for Counter",1,["hotshot_query_service::metrics::Counter"]],["impl Freeze for CounterFamily",1,["hotshot_query_service::metrics::CounterFamily"]],["impl Freeze for Gauge",1,["hotshot_query_service::metrics::Gauge"]],["impl Freeze for GaugeFamily",1,["hotshot_query_service::metrics::GaugeFamily"]],["impl Freeze for Histogram",1,["hotshot_query_service::metrics::Histogram"]],["impl Freeze for HistogramFamily",1,["hotshot_query_service::metrics::HistogramFamily"]],["impl Freeze for PrometheusMetrics",1,["hotshot_query_service::metrics::PrometheusMetrics"]],["impl Freeze for TextFamily",1,["hotshot_query_service::metrics::TextFamily"]],["impl Freeze for Options",1,["hotshot_query_service::node::Options"]],["impl Freeze for QuerySnafu",1,["hotshot_query_service::node::QuerySnafu"]],["impl Freeze for RequestSnafu",1,["hotshot_query_service::node::RequestSnafu"]],["impl Freeze for SyncStatus",1,["hotshot_query_service::node::query_data::SyncStatus"]],["impl Freeze for Options",1,["hotshot_query_service::status::Options"]],["impl Freeze for MissingSnafu",1,["hotshot_query_service::MissingSnafu"]],["impl Freeze for NotFoundSnafu",1,["hotshot_query_service::NotFoundSnafu"]],["impl Freeze for Options",1,["hotshot_query_service::Options"]],["impl Freeze for BackgroundTask",1,["hotshot_query_service::task::BackgroundTask"]],["impl Freeze for MockNodeImpl",1,["hotshot_query_service::testing::mocks::MockNodeImpl"]],["impl Freeze for MockTypes",1,["hotshot_query_service::testing::mocks::MockTypes"]],["impl Freeze for MockVersions",1,["hotshot_query_service::testing::mocks::MockVersions"]],["impl<'a> Freeze for Transaction<'a>",1,["hotshot_query_service::data_source::storage::no_storage::Transaction"]],["impl<'a, T> Freeze for Transaction<'a, T>
    where\n T: Freeze,
    ",1,["hotshot_query_service::data_source::storage::no_storage::testing::Transaction"]],["impl<'q> Freeze for QueryBuilder<'q>",1,["hotshot_query_service::data_source::storage::sql::queries::QueryBuilder"]],["impl<D> Freeze for ApiState<D>",1,["hotshot_query_service::ApiState"]],["impl<D> Freeze for MockNetwork<D>",1,["hotshot_query_service::testing::consensus::MockNetwork"]],["impl<D, U> Freeze for ExtensibleDataSource<D, U>
    where\n D: Freeze,\n U: Freeze,
    ",1,["hotshot_query_service::data_source::extension::ExtensibleDataSource"]],["impl<Mode> Freeze for Transaction<Mode>",1,["hotshot_query_service::data_source::storage::sql::transaction::Transaction"]],["impl<P> Freeze for TestProvider<P>",1,["hotshot_query_service::fetching::provider::testing::TestProvider"]],["impl<S> Freeze for FailStorage<S>
    where\n S: Freeze,
    ",1,["hotshot_query_service::data_source::storage::fail_storage::FailStorage"]],["impl<T> Freeze for Fetch<T>
    where\n T: Freeze,
    ",1,["hotshot_query_service::availability::fetch::Fetch"]],["impl<T> Freeze for Transaction<T>
    where\n T: Freeze,
    ",1,["hotshot_query_service::data_source::storage::fail_storage::Transaction"]],["impl<T> Freeze for Transaction<T>
    where\n T: Freeze,
    ",1,["hotshot_query_service::data_source::storage::fs::Transaction"]],["impl<T> Freeze for TimeWindowQueryData<T>
    where\n T: Freeze,
    ",1,["hotshot_query_service::node::query_data::TimeWindowQueryData"]],["impl<T> Freeze for Task<T>",1,["hotshot_query_service::task::Task"]],["impl<T, C> Freeze for Fetcher<T, C>",1,["hotshot_query_service::fetching::Fetcher"]],["impl<Types> !Freeze for FileSystemStorage<Types>",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorage"]],["impl<Types> Freeze for BlockId<Types>",1,["hotshot_query_service::availability::data_source::BlockId"]],["impl<Types> Freeze for LeafId<Types>",1,["hotshot_query_service::availability::data_source::LeafId"]],["impl<Types> Freeze for BlockIdentifier<Types>",1,["hotshot_query_service::explorer::query_data::BlockIdentifier"]],["impl<Types> Freeze for TransactionIdentifier<Types>",1,["hotshot_query_service::explorer::query_data::TransactionIdentifier"]],["impl<Types> Freeze for WindowStart<Types>",1,["hotshot_query_service::node::data_source::WindowStart"]],["impl<Types> Freeze for BlockInfo<Types>
    where\n <Types as NodeType>::View: Freeze,\n <Types as NodeType>::BlockHeader: Freeze,\n <Types as NodeType>::BlockPayload: Freeze,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QcType: Freeze,
    ",1,["hotshot_query_service::availability::data_source::BlockInfo"]],["impl<Types> Freeze for BlockQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: Freeze,\n <Types as NodeType>::BlockPayload: Freeze,
    ",1,["hotshot_query_service::availability::query_data::BlockQueryData"]],["impl<Types> Freeze for BlockSummaryQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: Freeze,
    ",1,["hotshot_query_service::availability::query_data::BlockSummaryQueryData"]],["impl<Types> Freeze for InconsistentLeafError<Types>",1,["hotshot_query_service::availability::query_data::InconsistentLeafError"]],["impl<Types> Freeze for LeafQueryData<Types>
    where\n <Types as NodeType>::View: Freeze,\n <Types as NodeType>::BlockHeader: Freeze,\n <Types as NodeType>::BlockPayload: Freeze,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QcType: Freeze,
    ",1,["hotshot_query_service::availability::query_data::LeafQueryData"]],["impl<Types> Freeze for PayloadQueryData<Types>
    where\n <Types as NodeType>::BlockPayload: Freeze,
    ",1,["hotshot_query_service::availability::query_data::PayloadQueryData"]],["impl<Types> Freeze for TransactionQueryData<Types>
    where\n <Types as NodeType>::BlockPayload: for<'de> Sized,\n <Types as NodeType>::Transaction: Freeze,\n <<Types as NodeType>::BlockPayload as QueryablePayload<Types>>::InclusionProof: Freeze,
    ",1,["hotshot_query_service::availability::query_data::TransactionQueryData"]],["impl<Types> Freeze for TransactionSummaryQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: Freeze,\n <Types as NodeType>::Transaction: Freeze,
    ",1,["hotshot_query_service::availability::query_data::TransactionSummaryQueryData"]],["impl<Types> Freeze for VidCommonQueryData<Types>",1,["hotshot_query_service::availability::query_data::VidCommonQueryData"]],["impl<Types> Freeze for FileSystemStorageInner<Types>
    where\n <Types as NodeType>::BlockPayload: for<'de> Sized,
    ",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorageInner"]],["impl<Types> Freeze for BlockDetail<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: Freeze,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::WalletAddress: Freeze,
    ",1,["hotshot_query_service::explorer::query_data::BlockDetail"]],["impl<Types> Freeze for BlockDetailResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: Freeze,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::WalletAddress: Freeze,
    ",1,["hotshot_query_service::explorer::BlockDetailResponse"]],["impl<Types> Freeze for BlockRange<Types>",1,["hotshot_query_service::explorer::query_data::BlockRange"]],["impl<Types> Freeze for BlockSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: Freeze,
    ",1,["hotshot_query_service::explorer::query_data::BlockSummary"]],["impl<Types> Freeze for BlockSummaryResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::BlockSummaryResponse"]],["impl<Types> Freeze for ExplorerSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: Freeze,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::WalletAddress: Freeze,
    ",1,["hotshot_query_service::explorer::query_data::ExplorerSummary"]],["impl<Types> Freeze for ExplorerSummaryResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: Freeze,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::WalletAddress: Freeze,
    ",1,["hotshot_query_service::explorer::ExplorerSummaryResponse"]],["impl<Types> Freeze for GetBlockSummariesRequest<Types>",1,["hotshot_query_service::explorer::query_data::GetBlockSummariesRequest"]],["impl<Types> Freeze for GetTransactionSummariesRequest<Types>",1,["hotshot_query_service::explorer::query_data::GetTransactionSummariesRequest"]],["impl<Types> Freeze for SearchResult<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::query_data::SearchResult"]],["impl<Types> Freeze for SearchResultResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::SearchResultResponse"]],["impl<Types> Freeze for TransactionDetail<Types>",1,["hotshot_query_service::explorer::query_data::TransactionDetail"]],["impl<Types> Freeze for TransactionDetailResponse<Types>",1,["hotshot_query_service::explorer::TransactionDetailResponse"]],["impl<Types> Freeze for TransactionRange<Types>",1,["hotshot_query_service::explorer::query_data::TransactionRange"]],["impl<Types> Freeze for TransactionSummariesResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::TransactionSummariesResponse"]],["impl<Types> Freeze for TransactionSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::query_data::TransactionSummary"]],["impl<Types> Freeze for AnyProvider<Types>",1,["hotshot_query_service::fetching::provider::any::AnyProvider"]],["impl<Types, S, P> Freeze for Builder<Types, S, P>
    where\n S: Freeze,\n P: Freeze,
    ",1,["hotshot_query_service::data_source::fetching::Builder"]],["impl<Types, S, P> Freeze for FetchingDataSource<Types, S, P>",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["impl<Types, S, P> Freeze for Pruner<Types, S, P>",1,["hotshot_query_service::data_source::fetching::Pruner"]],["impl<Types, T, const ARITY: usize> Freeze for Snapshot<Types, T, ARITY>
    where\n <T as MerklizedState<Types, ARITY>>::Commit: Freeze,
    ",1,["hotshot_query_service::merklized_state::data_source::Snapshot"]],["impl<Ver> Freeze for QueryServiceProvider<Ver>",1,["hotshot_query_service::fetching::provider::query_service::QueryServiceProvider"]],["impl<__T0> Freeze for FetchBlockSnafu<__T0>
    where\n __T0: Freeze,
    ",1,["hotshot_query_service::availability::FetchBlockSnafu"]],["impl<__T0> Freeze for FetchLeafSnafu<__T0>
    where\n __T0: Freeze,
    ",1,["hotshot_query_service::availability::FetchLeafSnafu"]],["impl<__T0> Freeze for FetchTransactionSnafu<__T0>
    where\n __T0: Freeze,
    ",1,["hotshot_query_service::availability::FetchTransactionSnafu"]],["impl<__T0> Freeze for QueryVidSnafu<__T0>
    where\n __T0: Freeze,
    ",1,["hotshot_query_service::node::QueryVidSnafu"]],["impl<__T0> Freeze for ErrorSnafu<__T0>
    where\n __T0: Freeze,
    ",1,["hotshot_query_service::ErrorSnafu"]],["impl<__T0, __T1> Freeze for CustomSnafu<__T0, __T1>
    where\n __T0: Freeze,\n __T1: Freeze,
    ",1,["hotshot_query_service::availability::CustomSnafu"]],["impl<__T0, __T1> Freeze for InvalidTransactionIndexSnafu<__T0, __T1>
    where\n __T0: Freeze,\n __T1: Freeze,
    ",1,["hotshot_query_service::availability::InvalidTransactionIndexSnafu"]],["impl<__T0, __T1> Freeze for CustomSnafu<__T0, __T1>
    where\n __T0: Freeze,\n __T1: Freeze,
    ",1,["hotshot_query_service::node::CustomSnafu"]],["impl<__T0, __T1> Freeze for QueryWindowSnafu<__T0, __T1>
    where\n __T0: Freeze,\n __T1: Freeze,
    ",1,["hotshot_query_service::node::QueryWindowSnafu"]]]]]); + var implementors = Object.fromEntries([["hotshot_query_service",[["impl Freeze for Error",1,["hotshot_query_service::availability::Error"]],["impl Freeze for FailableAction",1,["hotshot_query_service::data_source::storage::fail_storage::FailableAction"]],["impl Freeze for DataSource",1,["hotshot_query_service::data_source::storage::no_storage::testing::DataSource"]],["impl Freeze for Storage",1,["hotshot_query_service::data_source::storage::no_storage::testing::Storage"]],["impl Freeze for Error",1,["hotshot_query_service::error::Error"]],["impl Freeze for QueryError",1,["hotshot_query_service::QueryError"]],["impl Freeze for CurrencyCode",1,["hotshot_query_service::explorer::currency::CurrencyCode"]],["impl Freeze for Error",1,["hotshot_query_service::explorer::Error"]],["impl Freeze for GetBlockDetailError",1,["hotshot_query_service::explorer::query_data::GetBlockDetailError"]],["impl Freeze for GetBlockSummariesError",1,["hotshot_query_service::explorer::query_data::GetBlockSummariesError"]],["impl Freeze for GetExplorerSummaryError",1,["hotshot_query_service::explorer::query_data::GetExplorerSummaryError"]],["impl Freeze for GetSearchResultsError",1,["hotshot_query_service::explorer::query_data::GetSearchResultsError"]],["impl Freeze for GetTransactionDetailError",1,["hotshot_query_service::explorer::query_data::GetTransactionDetailError"]],["impl Freeze for GetTransactionSummariesError",1,["hotshot_query_service::explorer::query_data::GetTransactionSummariesError"]],["impl Freeze for TimestampConversionError",1,["hotshot_query_service::explorer::query_data::TimestampConversionError"]],["impl Freeze for TransactionSummaryFilter",1,["hotshot_query_service::explorer::query_data::TransactionSummaryFilter"]],["impl Freeze for Error",1,["hotshot_query_service::merklized_state::Error"]],["impl Freeze for MetricsError",1,["hotshot_query_service::metrics::MetricsError"]],["impl Freeze for Error",1,["hotshot_query_service::node::Error"]],["impl Freeze for Error",1,["hotshot_query_service::status::Error"]],["impl Freeze for Options",1,["hotshot_query_service::availability::Options"]],["impl Freeze for RequestSnafu",1,["hotshot_query_service::availability::RequestSnafu"]],["impl Freeze for NoStorage",1,["hotshot_query_service::data_source::storage::no_storage::NoStorage"]],["impl Freeze for PrunerCfg",1,["hotshot_query_service::data_source::storage::pruning::PrunerCfg"]],["impl Freeze for Config",1,["hotshot_query_service::data_source::storage::sql::Config"]],["impl Freeze for Pruner",1,["hotshot_query_service::data_source::storage::sql::Pruner"]],["impl Freeze for Read",1,["hotshot_query_service::data_source::storage::sql::transaction::Read"]],["impl Freeze for SqlStorage",1,["hotshot_query_service::data_source::storage::sql::SqlStorage"]],["impl Freeze for Write",1,["hotshot_query_service::data_source::storage::sql::transaction::Write"]],["impl Freeze for TestMerkleTreeMigration",1,["hotshot_query_service::data_source::storage::sql::testing::TestMerkleTreeMigration"]],["impl Freeze for TmpDb",1,["hotshot_query_service::data_source::storage::sql::testing::TmpDb"]],["impl Freeze for MetricsDataSource",1,["hotshot_query_service::data_source::metrics::MetricsDataSource"]],["impl Freeze for CurrencyMismatchError",1,["hotshot_query_service::explorer::currency::CurrencyMismatchError"]],["impl Freeze for ExplorerHistograms",1,["hotshot_query_service::explorer::query_data::ExplorerHistograms"]],["impl Freeze for FeeAttribution",1,["hotshot_query_service::explorer::query_data::FeeAttribution"]],["impl Freeze for GenesisOverview",1,["hotshot_query_service::explorer::query_data::GenesisOverview"]],["impl Freeze for InvalidCurrencyCodeError",1,["hotshot_query_service::explorer::currency::InvalidCurrencyCodeError"]],["impl Freeze for MonetaryValue",1,["hotshot_query_service::explorer::monetary_value::MonetaryValue"]],["impl Freeze for Timestamp",1,["hotshot_query_service::explorer::query_data::Timestamp"]],["impl Freeze for NoFetching",1,["hotshot_query_service::fetching::provider::NoFetching"]],["impl Freeze for LeafRequest",1,["hotshot_query_service::fetching::request::LeafRequest"]],["impl Freeze for PayloadRequest",1,["hotshot_query_service::fetching::request::PayloadRequest"]],["impl Freeze for VidCommonRequest",1,["hotshot_query_service::fetching::request::VidCommonRequest"]],["impl Freeze for Options",1,["hotshot_query_service::merklized_state::Options"]],["impl Freeze for Counter",1,["hotshot_query_service::metrics::Counter"]],["impl Freeze for CounterFamily",1,["hotshot_query_service::metrics::CounterFamily"]],["impl Freeze for Gauge",1,["hotshot_query_service::metrics::Gauge"]],["impl Freeze for GaugeFamily",1,["hotshot_query_service::metrics::GaugeFamily"]],["impl Freeze for Histogram",1,["hotshot_query_service::metrics::Histogram"]],["impl Freeze for HistogramFamily",1,["hotshot_query_service::metrics::HistogramFamily"]],["impl Freeze for PrometheusMetrics",1,["hotshot_query_service::metrics::PrometheusMetrics"]],["impl Freeze for TextFamily",1,["hotshot_query_service::metrics::TextFamily"]],["impl Freeze for Options",1,["hotshot_query_service::node::Options"]],["impl Freeze for QuerySnafu",1,["hotshot_query_service::node::QuerySnafu"]],["impl Freeze for RequestSnafu",1,["hotshot_query_service::node::RequestSnafu"]],["impl Freeze for SyncStatus",1,["hotshot_query_service::node::query_data::SyncStatus"]],["impl Freeze for Options",1,["hotshot_query_service::status::Options"]],["impl Freeze for MissingSnafu",1,["hotshot_query_service::MissingSnafu"]],["impl Freeze for NotFoundSnafu",1,["hotshot_query_service::NotFoundSnafu"]],["impl Freeze for Options",1,["hotshot_query_service::Options"]],["impl Freeze for BackgroundTask",1,["hotshot_query_service::task::BackgroundTask"]],["impl Freeze for MockNodeImpl",1,["hotshot_query_service::testing::mocks::MockNodeImpl"]],["impl Freeze for MockTypes",1,["hotshot_query_service::testing::mocks::MockTypes"]],["impl Freeze for MockVersions",1,["hotshot_query_service::testing::mocks::MockVersions"]],["impl<'a> Freeze for Transaction<'a>",1,["hotshot_query_service::data_source::storage::no_storage::Transaction"]],["impl<'a, T> Freeze for Transaction<'a, T>
    where\n T: Freeze,
    ",1,["hotshot_query_service::data_source::storage::no_storage::testing::Transaction"]],["impl<'q> Freeze for QueryBuilder<'q>",1,["hotshot_query_service::data_source::storage::sql::queries::QueryBuilder"]],["impl<D> Freeze for ApiState<D>",1,["hotshot_query_service::ApiState"]],["impl<D> Freeze for MockNetwork<D>",1,["hotshot_query_service::testing::consensus::MockNetwork"]],["impl<D, U> Freeze for ExtensibleDataSource<D, U>
    where\n D: Freeze,\n U: Freeze,
    ",1,["hotshot_query_service::data_source::extension::ExtensibleDataSource"]],["impl<Mode> Freeze for Transaction<Mode>",1,["hotshot_query_service::data_source::storage::sql::transaction::Transaction"]],["impl<P> Freeze for TestProvider<P>",1,["hotshot_query_service::fetching::provider::testing::TestProvider"]],["impl<S> Freeze for FailStorage<S>
    where\n S: Freeze,
    ",1,["hotshot_query_service::data_source::storage::fail_storage::FailStorage"]],["impl<T> Freeze for Fetch<T>
    where\n T: Freeze,
    ",1,["hotshot_query_service::availability::fetch::Fetch"]],["impl<T> Freeze for Transaction<T>
    where\n T: Freeze,
    ",1,["hotshot_query_service::data_source::storage::fail_storage::Transaction"]],["impl<T> Freeze for Transaction<T>
    where\n T: Freeze,
    ",1,["hotshot_query_service::data_source::storage::fs::Transaction"]],["impl<T> Freeze for TimeWindowQueryData<T>
    where\n T: Freeze,
    ",1,["hotshot_query_service::node::query_data::TimeWindowQueryData"]],["impl<T> Freeze for Task<T>",1,["hotshot_query_service::task::Task"]],["impl<T, C> Freeze for Fetcher<T, C>",1,["hotshot_query_service::fetching::Fetcher"]],["impl<Types> !Freeze for FileSystemStorage<Types>",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorage"]],["impl<Types> Freeze for BlockId<Types>",1,["hotshot_query_service::availability::data_source::BlockId"]],["impl<Types> Freeze for LeafId<Types>",1,["hotshot_query_service::availability::data_source::LeafId"]],["impl<Types> Freeze for BlockIdentifier<Types>",1,["hotshot_query_service::explorer::query_data::BlockIdentifier"]],["impl<Types> Freeze for TransactionIdentifier<Types>",1,["hotshot_query_service::explorer::query_data::TransactionIdentifier"]],["impl<Types> Freeze for WindowStart<Types>",1,["hotshot_query_service::node::data_source::WindowStart"]],["impl<Types> Freeze for BlockInfo<Types>
    where\n <Types as NodeType>::View: Freeze,\n <Types as NodeType>::BlockHeader: Freeze,\n <Types as NodeType>::BlockPayload: Freeze,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QcType: Freeze,
    ",1,["hotshot_query_service::availability::data_source::BlockInfo"]],["impl<Types> Freeze for BlockQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: Freeze,\n <Types as NodeType>::BlockPayload: Freeze,
    ",1,["hotshot_query_service::availability::query_data::BlockQueryData"]],["impl<Types> Freeze for BlockSummaryQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: Freeze,
    ",1,["hotshot_query_service::availability::query_data::BlockSummaryQueryData"]],["impl<Types> Freeze for InconsistentLeafError<Types>",1,["hotshot_query_service::availability::query_data::InconsistentLeafError"]],["impl<Types> Freeze for LeafQueryData<Types>
    where\n <Types as NodeType>::View: Freeze,\n <Types as NodeType>::BlockHeader: Freeze,\n <Types as NodeType>::BlockPayload: Freeze,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QcType: Freeze,
    ",1,["hotshot_query_service::availability::query_data::LeafQueryData"]],["impl<Types> Freeze for PayloadMetadata<Types>",1,["hotshot_query_service::availability::query_data::PayloadMetadata"]],["impl<Types> Freeze for PayloadQueryData<Types>
    where\n <Types as NodeType>::BlockPayload: Freeze,
    ",1,["hotshot_query_service::availability::query_data::PayloadQueryData"]],["impl<Types> Freeze for TransactionQueryData<Types>
    where\n <Types as NodeType>::BlockPayload: for<'de> Sized,\n <Types as NodeType>::Transaction: Freeze,\n <<Types as NodeType>::BlockPayload as QueryablePayload<Types>>::InclusionProof: Freeze,
    ",1,["hotshot_query_service::availability::query_data::TransactionQueryData"]],["impl<Types> Freeze for TransactionSummaryQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: Freeze,\n <Types as NodeType>::Transaction: Freeze,
    ",1,["hotshot_query_service::availability::query_data::TransactionSummaryQueryData"]],["impl<Types> Freeze for VidCommonMetadata<Types>",1,["hotshot_query_service::availability::query_data::VidCommonMetadata"]],["impl<Types> Freeze for VidCommonQueryData<Types>",1,["hotshot_query_service::availability::query_data::VidCommonQueryData"]],["impl<Types> Freeze for FileSystemStorageInner<Types>
    where\n <Types as NodeType>::BlockPayload: for<'de> Sized,
    ",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorageInner"]],["impl<Types> Freeze for BlockDetail<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: Freeze,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::WalletAddress: Freeze,
    ",1,["hotshot_query_service::explorer::query_data::BlockDetail"]],["impl<Types> Freeze for BlockDetailResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: Freeze,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::WalletAddress: Freeze,
    ",1,["hotshot_query_service::explorer::BlockDetailResponse"]],["impl<Types> Freeze for BlockRange<Types>",1,["hotshot_query_service::explorer::query_data::BlockRange"]],["impl<Types> Freeze for BlockSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: Freeze,
    ",1,["hotshot_query_service::explorer::query_data::BlockSummary"]],["impl<Types> Freeze for BlockSummaryResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::BlockSummaryResponse"]],["impl<Types> Freeze for ExplorerSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: Freeze,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::WalletAddress: Freeze,
    ",1,["hotshot_query_service::explorer::query_data::ExplorerSummary"]],["impl<Types> Freeze for ExplorerSummaryResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: Freeze,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::WalletAddress: Freeze,
    ",1,["hotshot_query_service::explorer::ExplorerSummaryResponse"]],["impl<Types> Freeze for GetBlockSummariesRequest<Types>",1,["hotshot_query_service::explorer::query_data::GetBlockSummariesRequest"]],["impl<Types> Freeze for GetTransactionSummariesRequest<Types>",1,["hotshot_query_service::explorer::query_data::GetTransactionSummariesRequest"]],["impl<Types> Freeze for SearchResult<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::query_data::SearchResult"]],["impl<Types> Freeze for SearchResultResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::SearchResultResponse"]],["impl<Types> Freeze for TransactionDetail<Types>",1,["hotshot_query_service::explorer::query_data::TransactionDetail"]],["impl<Types> Freeze for TransactionDetailResponse<Types>",1,["hotshot_query_service::explorer::TransactionDetailResponse"]],["impl<Types> Freeze for TransactionRange<Types>",1,["hotshot_query_service::explorer::query_data::TransactionRange"]],["impl<Types> Freeze for TransactionSummariesResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::TransactionSummariesResponse"]],["impl<Types> Freeze for TransactionSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::query_data::TransactionSummary"]],["impl<Types> Freeze for AnyProvider<Types>",1,["hotshot_query_service::fetching::provider::any::AnyProvider"]],["impl<Types, S, P> Freeze for Builder<Types, S, P>
    where\n S: Freeze,\n P: Freeze,
    ",1,["hotshot_query_service::data_source::fetching::Builder"]],["impl<Types, S, P> Freeze for FetchingDataSource<Types, S, P>",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["impl<Types, S, P> Freeze for Pruner<Types, S, P>",1,["hotshot_query_service::data_source::fetching::Pruner"]],["impl<Types, T, const ARITY: usize> Freeze for Snapshot<Types, T, ARITY>
    where\n <T as MerklizedState<Types, ARITY>>::Commit: Freeze,
    ",1,["hotshot_query_service::merklized_state::data_source::Snapshot"]],["impl<Ver> Freeze for QueryServiceProvider<Ver>",1,["hotshot_query_service::fetching::provider::query_service::QueryServiceProvider"]],["impl<__T0> Freeze for FetchBlockSnafu<__T0>
    where\n __T0: Freeze,
    ",1,["hotshot_query_service::availability::FetchBlockSnafu"]],["impl<__T0> Freeze for FetchLeafSnafu<__T0>
    where\n __T0: Freeze,
    ",1,["hotshot_query_service::availability::FetchLeafSnafu"]],["impl<__T0> Freeze for FetchTransactionSnafu<__T0>
    where\n __T0: Freeze,
    ",1,["hotshot_query_service::availability::FetchTransactionSnafu"]],["impl<__T0> Freeze for QueryVidSnafu<__T0>
    where\n __T0: Freeze,
    ",1,["hotshot_query_service::node::QueryVidSnafu"]],["impl<__T0> Freeze for ErrorSnafu<__T0>
    where\n __T0: Freeze,
    ",1,["hotshot_query_service::ErrorSnafu"]],["impl<__T0, __T1> Freeze for CustomSnafu<__T0, __T1>
    where\n __T0: Freeze,\n __T1: Freeze,
    ",1,["hotshot_query_service::availability::CustomSnafu"]],["impl<__T0, __T1> Freeze for InvalidTransactionIndexSnafu<__T0, __T1>
    where\n __T0: Freeze,\n __T1: Freeze,
    ",1,["hotshot_query_service::availability::InvalidTransactionIndexSnafu"]],["impl<__T0, __T1> Freeze for CustomSnafu<__T0, __T1>
    where\n __T0: Freeze,\n __T1: Freeze,
    ",1,["hotshot_query_service::node::CustomSnafu"]],["impl<__T0, __T1> Freeze for QueryWindowSnafu<__T0, __T1>
    where\n __T0: Freeze,\n __T1: Freeze,
    ",1,["hotshot_query_service::node::QueryWindowSnafu"]]]]]); if (window.register_implementors) { window.register_implementors(implementors); } else { window.pending_implementors = implementors; } })() -//{"start":57,"fragment_lengths":[67475]} \ No newline at end of file +//{"start":57,"fragment_lengths":[68345]} \ No newline at end of file diff --git a/trait.impl/core/marker/trait.Send.js b/trait.impl/core/marker/trait.Send.js index 3b5e7be57..7fec32c10 100644 --- a/trait.impl/core/marker/trait.Send.js +++ b/trait.impl/core/marker/trait.Send.js @@ -1,9 +1,9 @@ (function() { - var implementors = Object.fromEntries([["hotshot_query_service",[["impl Send for Error",1,["hotshot_query_service::availability::Error"]],["impl Send for FailableAction",1,["hotshot_query_service::data_source::storage::fail_storage::FailableAction"]],["impl Send for DataSource",1,["hotshot_query_service::data_source::storage::no_storage::testing::DataSource"]],["impl Send for Storage",1,["hotshot_query_service::data_source::storage::no_storage::testing::Storage"]],["impl Send for Error",1,["hotshot_query_service::error::Error"]],["impl Send for QueryError",1,["hotshot_query_service::QueryError"]],["impl Send for CurrencyCode",1,["hotshot_query_service::explorer::currency::CurrencyCode"]],["impl Send for Error",1,["hotshot_query_service::explorer::Error"]],["impl Send for GetBlockDetailError",1,["hotshot_query_service::explorer::query_data::GetBlockDetailError"]],["impl Send for GetBlockSummariesError",1,["hotshot_query_service::explorer::query_data::GetBlockSummariesError"]],["impl Send for GetExplorerSummaryError",1,["hotshot_query_service::explorer::query_data::GetExplorerSummaryError"]],["impl Send for GetSearchResultsError",1,["hotshot_query_service::explorer::query_data::GetSearchResultsError"]],["impl Send for GetTransactionDetailError",1,["hotshot_query_service::explorer::query_data::GetTransactionDetailError"]],["impl Send for GetTransactionSummariesError",1,["hotshot_query_service::explorer::query_data::GetTransactionSummariesError"]],["impl Send for TimestampConversionError",1,["hotshot_query_service::explorer::query_data::TimestampConversionError"]],["impl Send for TransactionSummaryFilter",1,["hotshot_query_service::explorer::query_data::TransactionSummaryFilter"]],["impl Send for Error",1,["hotshot_query_service::merklized_state::Error"]],["impl Send for MetricsError",1,["hotshot_query_service::metrics::MetricsError"]],["impl Send for Error",1,["hotshot_query_service::node::Error"]],["impl Send for Error",1,["hotshot_query_service::status::Error"]],["impl Send for Options",1,["hotshot_query_service::availability::Options"]],["impl Send for RequestSnafu",1,["hotshot_query_service::availability::RequestSnafu"]],["impl Send for NoStorage",1,["hotshot_query_service::data_source::storage::no_storage::NoStorage"]],["impl Send for PrunerCfg",1,["hotshot_query_service::data_source::storage::pruning::PrunerCfg"]],["impl Send for Config",1,["hotshot_query_service::data_source::storage::sql::Config"]],["impl Send for Pruner",1,["hotshot_query_service::data_source::storage::sql::Pruner"]],["impl Send for Read",1,["hotshot_query_service::data_source::storage::sql::transaction::Read"]],["impl Send for SqlStorage",1,["hotshot_query_service::data_source::storage::sql::SqlStorage"]],["impl Send for Write",1,["hotshot_query_service::data_source::storage::sql::transaction::Write"]],["impl Send for TestMerkleTreeMigration",1,["hotshot_query_service::data_source::storage::sql::testing::TestMerkleTreeMigration"]],["impl Send for TmpDb",1,["hotshot_query_service::data_source::storage::sql::testing::TmpDb"]],["impl Send for MetricsDataSource",1,["hotshot_query_service::data_source::metrics::MetricsDataSource"]],["impl Send for CurrencyMismatchError",1,["hotshot_query_service::explorer::currency::CurrencyMismatchError"]],["impl Send for ExplorerHistograms",1,["hotshot_query_service::explorer::query_data::ExplorerHistograms"]],["impl Send for FeeAttribution",1,["hotshot_query_service::explorer::query_data::FeeAttribution"]],["impl Send for GenesisOverview",1,["hotshot_query_service::explorer::query_data::GenesisOverview"]],["impl Send for InvalidCurrencyCodeError",1,["hotshot_query_service::explorer::currency::InvalidCurrencyCodeError"]],["impl Send for MonetaryValue",1,["hotshot_query_service::explorer::monetary_value::MonetaryValue"]],["impl Send for Timestamp",1,["hotshot_query_service::explorer::query_data::Timestamp"]],["impl Send for NoFetching",1,["hotshot_query_service::fetching::provider::NoFetching"]],["impl Send for LeafRequest",1,["hotshot_query_service::fetching::request::LeafRequest"]],["impl Send for PayloadRequest",1,["hotshot_query_service::fetching::request::PayloadRequest"]],["impl Send for VidCommonRequest",1,["hotshot_query_service::fetching::request::VidCommonRequest"]],["impl Send for Options",1,["hotshot_query_service::merklized_state::Options"]],["impl Send for Counter",1,["hotshot_query_service::metrics::Counter"]],["impl Send for CounterFamily",1,["hotshot_query_service::metrics::CounterFamily"]],["impl Send for Gauge",1,["hotshot_query_service::metrics::Gauge"]],["impl Send for GaugeFamily",1,["hotshot_query_service::metrics::GaugeFamily"]],["impl Send for Histogram",1,["hotshot_query_service::metrics::Histogram"]],["impl Send for HistogramFamily",1,["hotshot_query_service::metrics::HistogramFamily"]],["impl Send for PrometheusMetrics",1,["hotshot_query_service::metrics::PrometheusMetrics"]],["impl Send for TextFamily",1,["hotshot_query_service::metrics::TextFamily"]],["impl Send for Options",1,["hotshot_query_service::node::Options"]],["impl Send for QuerySnafu",1,["hotshot_query_service::node::QuerySnafu"]],["impl Send for RequestSnafu",1,["hotshot_query_service::node::RequestSnafu"]],["impl Send for SyncStatus",1,["hotshot_query_service::node::query_data::SyncStatus"]],["impl Send for Options",1,["hotshot_query_service::status::Options"]],["impl Send for MissingSnafu",1,["hotshot_query_service::MissingSnafu"]],["impl Send for NotFoundSnafu",1,["hotshot_query_service::NotFoundSnafu"]],["impl Send for Options",1,["hotshot_query_service::Options"]],["impl Send for BackgroundTask",1,["hotshot_query_service::task::BackgroundTask"]],["impl Send for MockNodeImpl",1,["hotshot_query_service::testing::mocks::MockNodeImpl"]],["impl Send for MockTypes",1,["hotshot_query_service::testing::mocks::MockTypes"]],["impl Send for MockVersions",1,["hotshot_query_service::testing::mocks::MockVersions"]],["impl<'a> Send for Transaction<'a>",1,["hotshot_query_service::data_source::storage::no_storage::Transaction"]],["impl<'a, T> Send for Transaction<'a, T>
    where\n T: Send,
    ",1,["hotshot_query_service::data_source::storage::no_storage::testing::Transaction"]],["impl<'q> Send for QueryBuilder<'q>",1,["hotshot_query_service::data_source::storage::sql::queries::QueryBuilder"]],["impl<D> Send for ApiState<D>
    where\n D: Sync + Send,
    ",1,["hotshot_query_service::ApiState"]],["impl<D> Send for MockNetwork<D>",1,["hotshot_query_service::testing::consensus::MockNetwork"]],["impl<D, U> Send for ExtensibleDataSource<D, U>
    where\n D: Send,\n U: Send,
    ",1,["hotshot_query_service::data_source::extension::ExtensibleDataSource"]],["impl<Mode> Send for Transaction<Mode>
    where\n Mode: Send,
    ",1,["hotshot_query_service::data_source::storage::sql::transaction::Transaction"]],["impl<P> Send for TestProvider<P>
    where\n P: Sync + Send,
    ",1,["hotshot_query_service::fetching::provider::testing::TestProvider"]],["impl<S> Send for FailStorage<S>
    where\n S: Send,
    ",1,["hotshot_query_service::data_source::storage::fail_storage::FailStorage"]],["impl<T> Send for Fetch<T>
    where\n T: Send,
    ",1,["hotshot_query_service::availability::fetch::Fetch"]],["impl<T> Send for Transaction<T>
    where\n T: Send,
    ",1,["hotshot_query_service::data_source::storage::fail_storage::Transaction"]],["impl<T> Send for Transaction<T>
    where\n T: Send,
    ",1,["hotshot_query_service::data_source::storage::fs::Transaction"]],["impl<T> Send for TimeWindowQueryData<T>
    where\n T: Send,
    ",1,["hotshot_query_service::node::query_data::TimeWindowQueryData"]],["impl<T> Send for Task<T>",1,["hotshot_query_service::task::Task"]],["impl<T, C> Send for Fetcher<T, C>
    where\n T: Send,\n C: Send,
    ",1,["hotshot_query_service::fetching::Fetcher"]],["impl<Types> Send for BlockId<Types>",1,["hotshot_query_service::availability::data_source::BlockId"]],["impl<Types> Send for LeafId<Types>",1,["hotshot_query_service::availability::data_source::LeafId"]],["impl<Types> Send for BlockIdentifier<Types>",1,["hotshot_query_service::explorer::query_data::BlockIdentifier"]],["impl<Types> Send for TransactionIdentifier<Types>",1,["hotshot_query_service::explorer::query_data::TransactionIdentifier"]],["impl<Types> Send for WindowStart<Types>",1,["hotshot_query_service::node::data_source::WindowStart"]],["impl<Types> Send for BlockInfo<Types>",1,["hotshot_query_service::availability::data_source::BlockInfo"]],["impl<Types> Send for BlockQueryData<Types>",1,["hotshot_query_service::availability::query_data::BlockQueryData"]],["impl<Types> Send for BlockSummaryQueryData<Types>",1,["hotshot_query_service::availability::query_data::BlockSummaryQueryData"]],["impl<Types> Send for InconsistentLeafError<Types>",1,["hotshot_query_service::availability::query_data::InconsistentLeafError"]],["impl<Types> Send for LeafQueryData<Types>",1,["hotshot_query_service::availability::query_data::LeafQueryData"]],["impl<Types> Send for PayloadQueryData<Types>",1,["hotshot_query_service::availability::query_data::PayloadQueryData"]],["impl<Types> Send for TransactionQueryData<Types>
    where\n <Types as NodeType>::BlockPayload: for<'de> Sized,
    ",1,["hotshot_query_service::availability::query_data::TransactionQueryData"]],["impl<Types> Send for TransactionSummaryQueryData<Types>",1,["hotshot_query_service::availability::query_data::TransactionSummaryQueryData"]],["impl<Types> Send for VidCommonQueryData<Types>",1,["hotshot_query_service::availability::query_data::VidCommonQueryData"]],["impl<Types> Send for FileSystemStorage<Types>
    where\n <Types as NodeType>::BlockPayload: for<'de> Sized,
    ",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorage"]],["impl<Types> Send for FileSystemStorageInner<Types>
    where\n <Types as NodeType>::BlockPayload: for<'de> Sized,
    ",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorageInner"]],["impl<Types> Send for BlockDetail<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::query_data::BlockDetail"]],["impl<Types> Send for BlockDetailResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::BlockDetailResponse"]],["impl<Types> Send for BlockRange<Types>",1,["hotshot_query_service::explorer::query_data::BlockRange"]],["impl<Types> Send for BlockSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::query_data::BlockSummary"]],["impl<Types> Send for BlockSummaryResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::BlockSummaryResponse"]],["impl<Types> Send for ExplorerSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::query_data::ExplorerSummary"]],["impl<Types> Send for ExplorerSummaryResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::ExplorerSummaryResponse"]],["impl<Types> Send for GetBlockSummariesRequest<Types>",1,["hotshot_query_service::explorer::query_data::GetBlockSummariesRequest"]],["impl<Types> Send for GetTransactionSummariesRequest<Types>",1,["hotshot_query_service::explorer::query_data::GetTransactionSummariesRequest"]],["impl<Types> Send for SearchResult<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::query_data::SearchResult"]],["impl<Types> Send for SearchResultResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::SearchResultResponse"]],["impl<Types> Send for TransactionDetail<Types>",1,["hotshot_query_service::explorer::query_data::TransactionDetail"]],["impl<Types> Send for TransactionDetailResponse<Types>",1,["hotshot_query_service::explorer::TransactionDetailResponse"]],["impl<Types> Send for TransactionRange<Types>",1,["hotshot_query_service::explorer::query_data::TransactionRange"]],["impl<Types> Send for TransactionSummariesResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::TransactionSummariesResponse"]],["impl<Types> Send for TransactionSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::query_data::TransactionSummary"]],["impl<Types> Send for AnyProvider<Types>",1,["hotshot_query_service::fetching::provider::any::AnyProvider"]],["impl<Types, S, P> Send for Builder<Types, S, P>
    where\n S: Send,\n P: Send,\n Types: Send,
    ",1,["hotshot_query_service::data_source::fetching::Builder"]],["impl<Types, S, P> Send for FetchingDataSource<Types, S, P>
    where\n S: Sync + Send,\n P: Sync + Send,
    ",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["impl<Types, S, P> Send for Pruner<Types, S, P>
    where\n S: Send,\n P: Send,
    ",1,["hotshot_query_service::data_source::fetching::Pruner"]],["impl<Types, T, const ARITY: usize> Send for Snapshot<Types, T, ARITY>",1,["hotshot_query_service::merklized_state::data_source::Snapshot"]],["impl<Ver> Send for QueryServiceProvider<Ver>",1,["hotshot_query_service::fetching::provider::query_service::QueryServiceProvider"]],["impl<__T0> Send for FetchBlockSnafu<__T0>
    where\n __T0: Send,
    ",1,["hotshot_query_service::availability::FetchBlockSnafu"]],["impl<__T0> Send for FetchLeafSnafu<__T0>
    where\n __T0: Send,
    ",1,["hotshot_query_service::availability::FetchLeafSnafu"]],["impl<__T0> Send for FetchTransactionSnafu<__T0>
    where\n __T0: Send,
    ",1,["hotshot_query_service::availability::FetchTransactionSnafu"]],["impl<__T0> Send for QueryVidSnafu<__T0>
    where\n __T0: Send,
    ",1,["hotshot_query_service::node::QueryVidSnafu"]],["impl<__T0> Send for ErrorSnafu<__T0>
    where\n __T0: Send,
    ",1,["hotshot_query_service::ErrorSnafu"]],["impl<__T0, __T1> Send for CustomSnafu<__T0, __T1>
    where\n __T0: Send,\n __T1: Send,
    ",1,["hotshot_query_service::availability::CustomSnafu"]],["impl<__T0, __T1> Send for InvalidTransactionIndexSnafu<__T0, __T1>
    where\n __T0: Send,\n __T1: Send,
    ",1,["hotshot_query_service::availability::InvalidTransactionIndexSnafu"]],["impl<__T0, __T1> Send for CustomSnafu<__T0, __T1>
    where\n __T0: Send,\n __T1: Send,
    ",1,["hotshot_query_service::node::CustomSnafu"]],["impl<__T0, __T1> Send for QueryWindowSnafu<__T0, __T1>
    where\n __T0: Send,\n __T1: Send,
    ",1,["hotshot_query_service::node::QueryWindowSnafu"]]]]]); + var implementors = Object.fromEntries([["hotshot_query_service",[["impl Send for Error",1,["hotshot_query_service::availability::Error"]],["impl Send for FailableAction",1,["hotshot_query_service::data_source::storage::fail_storage::FailableAction"]],["impl Send for DataSource",1,["hotshot_query_service::data_source::storage::no_storage::testing::DataSource"]],["impl Send for Storage",1,["hotshot_query_service::data_source::storage::no_storage::testing::Storage"]],["impl Send for Error",1,["hotshot_query_service::error::Error"]],["impl Send for QueryError",1,["hotshot_query_service::QueryError"]],["impl Send for CurrencyCode",1,["hotshot_query_service::explorer::currency::CurrencyCode"]],["impl Send for Error",1,["hotshot_query_service::explorer::Error"]],["impl Send for GetBlockDetailError",1,["hotshot_query_service::explorer::query_data::GetBlockDetailError"]],["impl Send for GetBlockSummariesError",1,["hotshot_query_service::explorer::query_data::GetBlockSummariesError"]],["impl Send for GetExplorerSummaryError",1,["hotshot_query_service::explorer::query_data::GetExplorerSummaryError"]],["impl Send for GetSearchResultsError",1,["hotshot_query_service::explorer::query_data::GetSearchResultsError"]],["impl Send for GetTransactionDetailError",1,["hotshot_query_service::explorer::query_data::GetTransactionDetailError"]],["impl Send for GetTransactionSummariesError",1,["hotshot_query_service::explorer::query_data::GetTransactionSummariesError"]],["impl Send for TimestampConversionError",1,["hotshot_query_service::explorer::query_data::TimestampConversionError"]],["impl Send for TransactionSummaryFilter",1,["hotshot_query_service::explorer::query_data::TransactionSummaryFilter"]],["impl Send for Error",1,["hotshot_query_service::merklized_state::Error"]],["impl Send for MetricsError",1,["hotshot_query_service::metrics::MetricsError"]],["impl Send for Error",1,["hotshot_query_service::node::Error"]],["impl Send for Error",1,["hotshot_query_service::status::Error"]],["impl Send for Options",1,["hotshot_query_service::availability::Options"]],["impl Send for RequestSnafu",1,["hotshot_query_service::availability::RequestSnafu"]],["impl Send for NoStorage",1,["hotshot_query_service::data_source::storage::no_storage::NoStorage"]],["impl Send for PrunerCfg",1,["hotshot_query_service::data_source::storage::pruning::PrunerCfg"]],["impl Send for Config",1,["hotshot_query_service::data_source::storage::sql::Config"]],["impl Send for Pruner",1,["hotshot_query_service::data_source::storage::sql::Pruner"]],["impl Send for Read",1,["hotshot_query_service::data_source::storage::sql::transaction::Read"]],["impl Send for SqlStorage",1,["hotshot_query_service::data_source::storage::sql::SqlStorage"]],["impl Send for Write",1,["hotshot_query_service::data_source::storage::sql::transaction::Write"]],["impl Send for TestMerkleTreeMigration",1,["hotshot_query_service::data_source::storage::sql::testing::TestMerkleTreeMigration"]],["impl Send for TmpDb",1,["hotshot_query_service::data_source::storage::sql::testing::TmpDb"]],["impl Send for MetricsDataSource",1,["hotshot_query_service::data_source::metrics::MetricsDataSource"]],["impl Send for CurrencyMismatchError",1,["hotshot_query_service::explorer::currency::CurrencyMismatchError"]],["impl Send for ExplorerHistograms",1,["hotshot_query_service::explorer::query_data::ExplorerHistograms"]],["impl Send for FeeAttribution",1,["hotshot_query_service::explorer::query_data::FeeAttribution"]],["impl Send for GenesisOverview",1,["hotshot_query_service::explorer::query_data::GenesisOverview"]],["impl Send for InvalidCurrencyCodeError",1,["hotshot_query_service::explorer::currency::InvalidCurrencyCodeError"]],["impl Send for MonetaryValue",1,["hotshot_query_service::explorer::monetary_value::MonetaryValue"]],["impl Send for Timestamp",1,["hotshot_query_service::explorer::query_data::Timestamp"]],["impl Send for NoFetching",1,["hotshot_query_service::fetching::provider::NoFetching"]],["impl Send for LeafRequest",1,["hotshot_query_service::fetching::request::LeafRequest"]],["impl Send for PayloadRequest",1,["hotshot_query_service::fetching::request::PayloadRequest"]],["impl Send for VidCommonRequest",1,["hotshot_query_service::fetching::request::VidCommonRequest"]],["impl Send for Options",1,["hotshot_query_service::merklized_state::Options"]],["impl Send for Counter",1,["hotshot_query_service::metrics::Counter"]],["impl Send for CounterFamily",1,["hotshot_query_service::metrics::CounterFamily"]],["impl Send for Gauge",1,["hotshot_query_service::metrics::Gauge"]],["impl Send for GaugeFamily",1,["hotshot_query_service::metrics::GaugeFamily"]],["impl Send for Histogram",1,["hotshot_query_service::metrics::Histogram"]],["impl Send for HistogramFamily",1,["hotshot_query_service::metrics::HistogramFamily"]],["impl Send for PrometheusMetrics",1,["hotshot_query_service::metrics::PrometheusMetrics"]],["impl Send for TextFamily",1,["hotshot_query_service::metrics::TextFamily"]],["impl Send for Options",1,["hotshot_query_service::node::Options"]],["impl Send for QuerySnafu",1,["hotshot_query_service::node::QuerySnafu"]],["impl Send for RequestSnafu",1,["hotshot_query_service::node::RequestSnafu"]],["impl Send for SyncStatus",1,["hotshot_query_service::node::query_data::SyncStatus"]],["impl Send for Options",1,["hotshot_query_service::status::Options"]],["impl Send for MissingSnafu",1,["hotshot_query_service::MissingSnafu"]],["impl Send for NotFoundSnafu",1,["hotshot_query_service::NotFoundSnafu"]],["impl Send for Options",1,["hotshot_query_service::Options"]],["impl Send for BackgroundTask",1,["hotshot_query_service::task::BackgroundTask"]],["impl Send for MockNodeImpl",1,["hotshot_query_service::testing::mocks::MockNodeImpl"]],["impl Send for MockTypes",1,["hotshot_query_service::testing::mocks::MockTypes"]],["impl Send for MockVersions",1,["hotshot_query_service::testing::mocks::MockVersions"]],["impl<'a> Send for Transaction<'a>",1,["hotshot_query_service::data_source::storage::no_storage::Transaction"]],["impl<'a, T> Send for Transaction<'a, T>
    where\n T: Send,
    ",1,["hotshot_query_service::data_source::storage::no_storage::testing::Transaction"]],["impl<'q> Send for QueryBuilder<'q>",1,["hotshot_query_service::data_source::storage::sql::queries::QueryBuilder"]],["impl<D> Send for ApiState<D>
    where\n D: Sync + Send,
    ",1,["hotshot_query_service::ApiState"]],["impl<D> Send for MockNetwork<D>",1,["hotshot_query_service::testing::consensus::MockNetwork"]],["impl<D, U> Send for ExtensibleDataSource<D, U>
    where\n D: Send,\n U: Send,
    ",1,["hotshot_query_service::data_source::extension::ExtensibleDataSource"]],["impl<Mode> Send for Transaction<Mode>
    where\n Mode: Send,
    ",1,["hotshot_query_service::data_source::storage::sql::transaction::Transaction"]],["impl<P> Send for TestProvider<P>
    where\n P: Sync + Send,
    ",1,["hotshot_query_service::fetching::provider::testing::TestProvider"]],["impl<S> Send for FailStorage<S>
    where\n S: Send,
    ",1,["hotshot_query_service::data_source::storage::fail_storage::FailStorage"]],["impl<T> Send for Fetch<T>
    where\n T: Send,
    ",1,["hotshot_query_service::availability::fetch::Fetch"]],["impl<T> Send for Transaction<T>
    where\n T: Send,
    ",1,["hotshot_query_service::data_source::storage::fail_storage::Transaction"]],["impl<T> Send for Transaction<T>
    where\n T: Send,
    ",1,["hotshot_query_service::data_source::storage::fs::Transaction"]],["impl<T> Send for TimeWindowQueryData<T>
    where\n T: Send,
    ",1,["hotshot_query_service::node::query_data::TimeWindowQueryData"]],["impl<T> Send for Task<T>",1,["hotshot_query_service::task::Task"]],["impl<T, C> Send for Fetcher<T, C>
    where\n T: Send,\n C: Send,
    ",1,["hotshot_query_service::fetching::Fetcher"]],["impl<Types> Send for BlockId<Types>",1,["hotshot_query_service::availability::data_source::BlockId"]],["impl<Types> Send for LeafId<Types>",1,["hotshot_query_service::availability::data_source::LeafId"]],["impl<Types> Send for BlockIdentifier<Types>",1,["hotshot_query_service::explorer::query_data::BlockIdentifier"]],["impl<Types> Send for TransactionIdentifier<Types>",1,["hotshot_query_service::explorer::query_data::TransactionIdentifier"]],["impl<Types> Send for WindowStart<Types>",1,["hotshot_query_service::node::data_source::WindowStart"]],["impl<Types> Send for BlockInfo<Types>",1,["hotshot_query_service::availability::data_source::BlockInfo"]],["impl<Types> Send for BlockQueryData<Types>",1,["hotshot_query_service::availability::query_data::BlockQueryData"]],["impl<Types> Send for BlockSummaryQueryData<Types>",1,["hotshot_query_service::availability::query_data::BlockSummaryQueryData"]],["impl<Types> Send for InconsistentLeafError<Types>",1,["hotshot_query_service::availability::query_data::InconsistentLeafError"]],["impl<Types> Send for LeafQueryData<Types>",1,["hotshot_query_service::availability::query_data::LeafQueryData"]],["impl<Types> Send for PayloadMetadata<Types>",1,["hotshot_query_service::availability::query_data::PayloadMetadata"]],["impl<Types> Send for PayloadQueryData<Types>",1,["hotshot_query_service::availability::query_data::PayloadQueryData"]],["impl<Types> Send for TransactionQueryData<Types>
    where\n <Types as NodeType>::BlockPayload: for<'de> Sized,
    ",1,["hotshot_query_service::availability::query_data::TransactionQueryData"]],["impl<Types> Send for TransactionSummaryQueryData<Types>",1,["hotshot_query_service::availability::query_data::TransactionSummaryQueryData"]],["impl<Types> Send for VidCommonMetadata<Types>",1,["hotshot_query_service::availability::query_data::VidCommonMetadata"]],["impl<Types> Send for VidCommonQueryData<Types>",1,["hotshot_query_service::availability::query_data::VidCommonQueryData"]],["impl<Types> Send for FileSystemStorage<Types>
    where\n <Types as NodeType>::BlockPayload: for<'de> Sized,
    ",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorage"]],["impl<Types> Send for FileSystemStorageInner<Types>
    where\n <Types as NodeType>::BlockPayload: for<'de> Sized,
    ",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorageInner"]],["impl<Types> Send for BlockDetail<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::query_data::BlockDetail"]],["impl<Types> Send for BlockDetailResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::BlockDetailResponse"]],["impl<Types> Send for BlockRange<Types>",1,["hotshot_query_service::explorer::query_data::BlockRange"]],["impl<Types> Send for BlockSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::query_data::BlockSummary"]],["impl<Types> Send for BlockSummaryResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::BlockSummaryResponse"]],["impl<Types> Send for ExplorerSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::query_data::ExplorerSummary"]],["impl<Types> Send for ExplorerSummaryResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::ExplorerSummaryResponse"]],["impl<Types> Send for GetBlockSummariesRequest<Types>",1,["hotshot_query_service::explorer::query_data::GetBlockSummariesRequest"]],["impl<Types> Send for GetTransactionSummariesRequest<Types>",1,["hotshot_query_service::explorer::query_data::GetTransactionSummariesRequest"]],["impl<Types> Send for SearchResult<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::query_data::SearchResult"]],["impl<Types> Send for SearchResultResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::SearchResultResponse"]],["impl<Types> Send for TransactionDetail<Types>",1,["hotshot_query_service::explorer::query_data::TransactionDetail"]],["impl<Types> Send for TransactionDetailResponse<Types>",1,["hotshot_query_service::explorer::TransactionDetailResponse"]],["impl<Types> Send for TransactionRange<Types>",1,["hotshot_query_service::explorer::query_data::TransactionRange"]],["impl<Types> Send for TransactionSummariesResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::TransactionSummariesResponse"]],["impl<Types> Send for TransactionSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::query_data::TransactionSummary"]],["impl<Types> Send for AnyProvider<Types>",1,["hotshot_query_service::fetching::provider::any::AnyProvider"]],["impl<Types, S, P> Send for Builder<Types, S, P>
    where\n S: Send,\n P: Send,\n Types: Send,
    ",1,["hotshot_query_service::data_source::fetching::Builder"]],["impl<Types, S, P> Send for FetchingDataSource<Types, S, P>
    where\n S: Sync + Send,\n P: Sync + Send,
    ",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["impl<Types, S, P> Send for Pruner<Types, S, P>
    where\n S: Send,\n P: Send,
    ",1,["hotshot_query_service::data_source::fetching::Pruner"]],["impl<Types, T, const ARITY: usize> Send for Snapshot<Types, T, ARITY>",1,["hotshot_query_service::merklized_state::data_source::Snapshot"]],["impl<Ver> Send for QueryServiceProvider<Ver>",1,["hotshot_query_service::fetching::provider::query_service::QueryServiceProvider"]],["impl<__T0> Send for FetchBlockSnafu<__T0>
    where\n __T0: Send,
    ",1,["hotshot_query_service::availability::FetchBlockSnafu"]],["impl<__T0> Send for FetchLeafSnafu<__T0>
    where\n __T0: Send,
    ",1,["hotshot_query_service::availability::FetchLeafSnafu"]],["impl<__T0> Send for FetchTransactionSnafu<__T0>
    where\n __T0: Send,
    ",1,["hotshot_query_service::availability::FetchTransactionSnafu"]],["impl<__T0> Send for QueryVidSnafu<__T0>
    where\n __T0: Send,
    ",1,["hotshot_query_service::node::QueryVidSnafu"]],["impl<__T0> Send for ErrorSnafu<__T0>
    where\n __T0: Send,
    ",1,["hotshot_query_service::ErrorSnafu"]],["impl<__T0, __T1> Send for CustomSnafu<__T0, __T1>
    where\n __T0: Send,\n __T1: Send,
    ",1,["hotshot_query_service::availability::CustomSnafu"]],["impl<__T0, __T1> Send for InvalidTransactionIndexSnafu<__T0, __T1>
    where\n __T0: Send,\n __T1: Send,
    ",1,["hotshot_query_service::availability::InvalidTransactionIndexSnafu"]],["impl<__T0, __T1> Send for CustomSnafu<__T0, __T1>
    where\n __T0: Send,\n __T1: Send,
    ",1,["hotshot_query_service::node::CustomSnafu"]],["impl<__T0, __T1> Send for QueryWindowSnafu<__T0, __T1>
    where\n __T0: Send,\n __T1: Send,
    ",1,["hotshot_query_service::node::QueryWindowSnafu"]]]]]); if (window.register_implementors) { window.register_implementors(implementors); } else { window.pending_implementors = implementors; } })() -//{"start":57,"fragment_lengths":[59385]} \ No newline at end of file +//{"start":57,"fragment_lengths":[60243]} \ No newline at end of file diff --git a/trait.impl/core/marker/trait.StructuralPartialEq.js b/trait.impl/core/marker/trait.StructuralPartialEq.js index 402d83ba9..335bd9fde 100644 --- a/trait.impl/core/marker/trait.StructuralPartialEq.js +++ b/trait.impl/core/marker/trait.StructuralPartialEq.js @@ -1,9 +1,9 @@ (function() { - var implementors = Object.fromEntries([["hotshot_query_service",[["impl StructuralPartialEq for FailableAction"],["impl StructuralPartialEq for CurrencyCode"],["impl StructuralPartialEq for TimestampConversionError"],["impl StructuralPartialEq for FeeAttribution"],["impl StructuralPartialEq for MonetaryValue"],["impl StructuralPartialEq for Timestamp"],["impl StructuralPartialEq for LeafRequest"],["impl StructuralPartialEq for PayloadRequest"],["impl StructuralPartialEq for VidCommonRequest"],["impl StructuralPartialEq for SyncStatus"],["impl StructuralPartialEq for MockNodeImpl"],["impl StructuralPartialEq for MockTypes"],["impl<T> StructuralPartialEq for TimeWindowQueryData<T>"],["impl<Types: NodeType> StructuralPartialEq for BlockIdentifier<Types>"],["impl<Types: NodeType> StructuralPartialEq for TransactionIdentifier<Types>"],["impl<Types: NodeType> StructuralPartialEq for BlockQueryData<Types>"],["impl<Types: NodeType> StructuralPartialEq for BlockSummaryQueryData<Types>"],["impl<Types: NodeType> StructuralPartialEq for LeafQueryData<Types>"],["impl<Types: NodeType> StructuralPartialEq for PayloadQueryData<Types>"],["impl<Types: NodeType> StructuralPartialEq for TransactionQueryData<Types>
    where\n Payload<Types>: QueryablePayload<Types>,
    "],["impl<Types: NodeType> StructuralPartialEq for TransactionSummaryQueryData<Types>"],["impl<Types: NodeType> StructuralPartialEq for VidCommonQueryData<Types>"],["impl<Types: NodeType> StructuralPartialEq for BlockDetail<Types>
    where\n Header<Types>: ExplorerHeader<Types>,
    "],["impl<Types: NodeType> StructuralPartialEq for BlockRange<Types>"],["impl<Types: NodeType> StructuralPartialEq for BlockSummary<Types>
    where\n Header<Types>: ExplorerHeader<Types>,
    "],["impl<Types: NodeType> StructuralPartialEq for GetBlockSummariesRequest<Types>"],["impl<Types: NodeType> StructuralPartialEq for TransactionDetail<Types>"],["impl<Types: NodeType> StructuralPartialEq for TransactionRange<Types>"],["impl<Types: NodeType> StructuralPartialEq for TransactionSummary<Types>
    where\n Header<Types>: ExplorerHeader<Types>,\n Transaction<Types>: ExplorerTransaction,
    "]]]]); + var implementors = Object.fromEntries([["hotshot_query_service",[["impl StructuralPartialEq for FailableAction"],["impl StructuralPartialEq for CurrencyCode"],["impl StructuralPartialEq for TimestampConversionError"],["impl StructuralPartialEq for FeeAttribution"],["impl StructuralPartialEq for MonetaryValue"],["impl StructuralPartialEq for Timestamp"],["impl StructuralPartialEq for LeafRequest"],["impl StructuralPartialEq for PayloadRequest"],["impl StructuralPartialEq for VidCommonRequest"],["impl StructuralPartialEq for SyncStatus"],["impl StructuralPartialEq for MockNodeImpl"],["impl StructuralPartialEq for MockTypes"],["impl<T> StructuralPartialEq for TimeWindowQueryData<T>"],["impl<Types> StructuralPartialEq for PayloadMetadata<Types>
    where\n Types: NodeType,
    "],["impl<Types> StructuralPartialEq for VidCommonMetadata<Types>
    where\n Types: NodeType,
    "],["impl<Types: NodeType> StructuralPartialEq for BlockIdentifier<Types>"],["impl<Types: NodeType> StructuralPartialEq for TransactionIdentifier<Types>"],["impl<Types: NodeType> StructuralPartialEq for BlockQueryData<Types>"],["impl<Types: NodeType> StructuralPartialEq for BlockSummaryQueryData<Types>"],["impl<Types: NodeType> StructuralPartialEq for LeafQueryData<Types>"],["impl<Types: NodeType> StructuralPartialEq for PayloadQueryData<Types>"],["impl<Types: NodeType> StructuralPartialEq for TransactionQueryData<Types>
    where\n Payload<Types>: QueryablePayload<Types>,
    "],["impl<Types: NodeType> StructuralPartialEq for TransactionSummaryQueryData<Types>"],["impl<Types: NodeType> StructuralPartialEq for VidCommonQueryData<Types>"],["impl<Types: NodeType> StructuralPartialEq for BlockDetail<Types>
    where\n Header<Types>: ExplorerHeader<Types>,
    "],["impl<Types: NodeType> StructuralPartialEq for BlockRange<Types>"],["impl<Types: NodeType> StructuralPartialEq for BlockSummary<Types>
    where\n Header<Types>: ExplorerHeader<Types>,
    "],["impl<Types: NodeType> StructuralPartialEq for GetBlockSummariesRequest<Types>"],["impl<Types: NodeType> StructuralPartialEq for TransactionDetail<Types>"],["impl<Types: NodeType> StructuralPartialEq for TransactionRange<Types>"],["impl<Types: NodeType> StructuralPartialEq for TransactionSummary<Types>
    where\n Header<Types>: ExplorerHeader<Types>,\n Transaction<Types>: ExplorerTransaction,
    "]]]]); if (window.register_implementors) { window.register_implementors(implementors); } else { window.pending_implementors = implementors; } })() -//{"start":57,"fragment_lengths":[13161]} \ No newline at end of file +//{"start":57,"fragment_lengths":[14073]} \ No newline at end of file diff --git a/trait.impl/core/marker/trait.Sync.js b/trait.impl/core/marker/trait.Sync.js index a603742d0..1ac8ac87e 100644 --- a/trait.impl/core/marker/trait.Sync.js +++ b/trait.impl/core/marker/trait.Sync.js @@ -1,9 +1,9 @@ (function() { - var implementors = Object.fromEntries([["hotshot_query_service",[["impl Sync for Error",1,["hotshot_query_service::availability::Error"]],["impl Sync for FailableAction",1,["hotshot_query_service::data_source::storage::fail_storage::FailableAction"]],["impl Sync for DataSource",1,["hotshot_query_service::data_source::storage::no_storage::testing::DataSource"]],["impl Sync for Storage",1,["hotshot_query_service::data_source::storage::no_storage::testing::Storage"]],["impl Sync for Error",1,["hotshot_query_service::error::Error"]],["impl Sync for QueryError",1,["hotshot_query_service::QueryError"]],["impl Sync for CurrencyCode",1,["hotshot_query_service::explorer::currency::CurrencyCode"]],["impl Sync for Error",1,["hotshot_query_service::explorer::Error"]],["impl Sync for GetBlockDetailError",1,["hotshot_query_service::explorer::query_data::GetBlockDetailError"]],["impl Sync for GetBlockSummariesError",1,["hotshot_query_service::explorer::query_data::GetBlockSummariesError"]],["impl Sync for GetExplorerSummaryError",1,["hotshot_query_service::explorer::query_data::GetExplorerSummaryError"]],["impl Sync for GetSearchResultsError",1,["hotshot_query_service::explorer::query_data::GetSearchResultsError"]],["impl Sync for GetTransactionDetailError",1,["hotshot_query_service::explorer::query_data::GetTransactionDetailError"]],["impl Sync for GetTransactionSummariesError",1,["hotshot_query_service::explorer::query_data::GetTransactionSummariesError"]],["impl Sync for TimestampConversionError",1,["hotshot_query_service::explorer::query_data::TimestampConversionError"]],["impl Sync for TransactionSummaryFilter",1,["hotshot_query_service::explorer::query_data::TransactionSummaryFilter"]],["impl Sync for Error",1,["hotshot_query_service::merklized_state::Error"]],["impl Sync for MetricsError",1,["hotshot_query_service::metrics::MetricsError"]],["impl Sync for Error",1,["hotshot_query_service::node::Error"]],["impl Sync for Error",1,["hotshot_query_service::status::Error"]],["impl Sync for Options",1,["hotshot_query_service::availability::Options"]],["impl Sync for RequestSnafu",1,["hotshot_query_service::availability::RequestSnafu"]],["impl Sync for NoStorage",1,["hotshot_query_service::data_source::storage::no_storage::NoStorage"]],["impl Sync for PrunerCfg",1,["hotshot_query_service::data_source::storage::pruning::PrunerCfg"]],["impl Sync for Config",1,["hotshot_query_service::data_source::storage::sql::Config"]],["impl Sync for Pruner",1,["hotshot_query_service::data_source::storage::sql::Pruner"]],["impl Sync for Read",1,["hotshot_query_service::data_source::storage::sql::transaction::Read"]],["impl Sync for SqlStorage",1,["hotshot_query_service::data_source::storage::sql::SqlStorage"]],["impl Sync for Write",1,["hotshot_query_service::data_source::storage::sql::transaction::Write"]],["impl Sync for TestMerkleTreeMigration",1,["hotshot_query_service::data_source::storage::sql::testing::TestMerkleTreeMigration"]],["impl Sync for TmpDb",1,["hotshot_query_service::data_source::storage::sql::testing::TmpDb"]],["impl Sync for MetricsDataSource",1,["hotshot_query_service::data_source::metrics::MetricsDataSource"]],["impl Sync for CurrencyMismatchError",1,["hotshot_query_service::explorer::currency::CurrencyMismatchError"]],["impl Sync for ExplorerHistograms",1,["hotshot_query_service::explorer::query_data::ExplorerHistograms"]],["impl Sync for FeeAttribution",1,["hotshot_query_service::explorer::query_data::FeeAttribution"]],["impl Sync for GenesisOverview",1,["hotshot_query_service::explorer::query_data::GenesisOverview"]],["impl Sync for InvalidCurrencyCodeError",1,["hotshot_query_service::explorer::currency::InvalidCurrencyCodeError"]],["impl Sync for MonetaryValue",1,["hotshot_query_service::explorer::monetary_value::MonetaryValue"]],["impl Sync for Timestamp",1,["hotshot_query_service::explorer::query_data::Timestamp"]],["impl Sync for NoFetching",1,["hotshot_query_service::fetching::provider::NoFetching"]],["impl Sync for LeafRequest",1,["hotshot_query_service::fetching::request::LeafRequest"]],["impl Sync for PayloadRequest",1,["hotshot_query_service::fetching::request::PayloadRequest"]],["impl Sync for VidCommonRequest",1,["hotshot_query_service::fetching::request::VidCommonRequest"]],["impl Sync for Options",1,["hotshot_query_service::merklized_state::Options"]],["impl Sync for Counter",1,["hotshot_query_service::metrics::Counter"]],["impl Sync for CounterFamily",1,["hotshot_query_service::metrics::CounterFamily"]],["impl Sync for Gauge",1,["hotshot_query_service::metrics::Gauge"]],["impl Sync for GaugeFamily",1,["hotshot_query_service::metrics::GaugeFamily"]],["impl Sync for Histogram",1,["hotshot_query_service::metrics::Histogram"]],["impl Sync for HistogramFamily",1,["hotshot_query_service::metrics::HistogramFamily"]],["impl Sync for PrometheusMetrics",1,["hotshot_query_service::metrics::PrometheusMetrics"]],["impl Sync for TextFamily",1,["hotshot_query_service::metrics::TextFamily"]],["impl Sync for Options",1,["hotshot_query_service::node::Options"]],["impl Sync for QuerySnafu",1,["hotshot_query_service::node::QuerySnafu"]],["impl Sync for RequestSnafu",1,["hotshot_query_service::node::RequestSnafu"]],["impl Sync for SyncStatus",1,["hotshot_query_service::node::query_data::SyncStatus"]],["impl Sync for Options",1,["hotshot_query_service::status::Options"]],["impl Sync for MissingSnafu",1,["hotshot_query_service::MissingSnafu"]],["impl Sync for NotFoundSnafu",1,["hotshot_query_service::NotFoundSnafu"]],["impl Sync for Options",1,["hotshot_query_service::Options"]],["impl Sync for BackgroundTask",1,["hotshot_query_service::task::BackgroundTask"]],["impl Sync for MockNodeImpl",1,["hotshot_query_service::testing::mocks::MockNodeImpl"]],["impl Sync for MockTypes",1,["hotshot_query_service::testing::mocks::MockTypes"]],["impl Sync for MockVersions",1,["hotshot_query_service::testing::mocks::MockVersions"]],["impl<'a> Sync for Transaction<'a>",1,["hotshot_query_service::data_source::storage::no_storage::Transaction"]],["impl<'a, T> Sync for Transaction<'a, T>
    where\n T: Sync,
    ",1,["hotshot_query_service::data_source::storage::no_storage::testing::Transaction"]],["impl<'q> Sync for QueryBuilder<'q>",1,["hotshot_query_service::data_source::storage::sql::queries::QueryBuilder"]],["impl<D> Sync for ApiState<D>
    where\n D: Sync + Send,
    ",1,["hotshot_query_service::ApiState"]],["impl<D> Sync for MockNetwork<D>",1,["hotshot_query_service::testing::consensus::MockNetwork"]],["impl<D, U> Sync for ExtensibleDataSource<D, U>
    where\n D: Sync,\n U: Sync,
    ",1,["hotshot_query_service::data_source::extension::ExtensibleDataSource"]],["impl<Mode> Sync for Transaction<Mode>
    where\n Mode: Sync,
    ",1,["hotshot_query_service::data_source::storage::sql::transaction::Transaction"]],["impl<P> Sync for TestProvider<P>
    where\n P: Sync + Send,
    ",1,["hotshot_query_service::fetching::provider::testing::TestProvider"]],["impl<S> Sync for FailStorage<S>
    where\n S: Sync,
    ",1,["hotshot_query_service::data_source::storage::fail_storage::FailStorage"]],["impl<T> !Sync for Fetch<T>",1,["hotshot_query_service::availability::fetch::Fetch"]],["impl<T> Sync for Transaction<T>
    where\n T: Sync,
    ",1,["hotshot_query_service::data_source::storage::fail_storage::Transaction"]],["impl<T> Sync for Transaction<T>
    where\n T: Sync,
    ",1,["hotshot_query_service::data_source::storage::fs::Transaction"]],["impl<T> Sync for TimeWindowQueryData<T>
    where\n T: Sync,
    ",1,["hotshot_query_service::node::query_data::TimeWindowQueryData"]],["impl<T> Sync for Task<T>",1,["hotshot_query_service::task::Task"]],["impl<T, C> Sync for Fetcher<T, C>
    where\n T: Send,\n C: Send,
    ",1,["hotshot_query_service::fetching::Fetcher"]],["impl<Types> Sync for BlockId<Types>",1,["hotshot_query_service::availability::data_source::BlockId"]],["impl<Types> Sync for LeafId<Types>",1,["hotshot_query_service::availability::data_source::LeafId"]],["impl<Types> Sync for BlockIdentifier<Types>",1,["hotshot_query_service::explorer::query_data::BlockIdentifier"]],["impl<Types> Sync for TransactionIdentifier<Types>",1,["hotshot_query_service::explorer::query_data::TransactionIdentifier"]],["impl<Types> Sync for WindowStart<Types>",1,["hotshot_query_service::node::data_source::WindowStart"]],["impl<Types> Sync for BlockInfo<Types>",1,["hotshot_query_service::availability::data_source::BlockInfo"]],["impl<Types> Sync for BlockQueryData<Types>",1,["hotshot_query_service::availability::query_data::BlockQueryData"]],["impl<Types> Sync for BlockSummaryQueryData<Types>",1,["hotshot_query_service::availability::query_data::BlockSummaryQueryData"]],["impl<Types> Sync for InconsistentLeafError<Types>",1,["hotshot_query_service::availability::query_data::InconsistentLeafError"]],["impl<Types> Sync for LeafQueryData<Types>",1,["hotshot_query_service::availability::query_data::LeafQueryData"]],["impl<Types> Sync for PayloadQueryData<Types>",1,["hotshot_query_service::availability::query_data::PayloadQueryData"]],["impl<Types> Sync for TransactionQueryData<Types>
    where\n <Types as NodeType>::BlockPayload: for<'de> Sized,
    ",1,["hotshot_query_service::availability::query_data::TransactionQueryData"]],["impl<Types> Sync for TransactionSummaryQueryData<Types>",1,["hotshot_query_service::availability::query_data::TransactionSummaryQueryData"]],["impl<Types> Sync for VidCommonQueryData<Types>",1,["hotshot_query_service::availability::query_data::VidCommonQueryData"]],["impl<Types> Sync for FileSystemStorage<Types>
    where\n <Types as NodeType>::BlockPayload: for<'de> Sized,
    ",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorage"]],["impl<Types> Sync for FileSystemStorageInner<Types>
    where\n <Types as NodeType>::BlockPayload: for<'de> Sized,
    ",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorageInner"]],["impl<Types> Sync for BlockDetail<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::query_data::BlockDetail"]],["impl<Types> Sync for BlockDetailResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::BlockDetailResponse"]],["impl<Types> Sync for BlockRange<Types>",1,["hotshot_query_service::explorer::query_data::BlockRange"]],["impl<Types> Sync for BlockSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::query_data::BlockSummary"]],["impl<Types> Sync for BlockSummaryResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::BlockSummaryResponse"]],["impl<Types> Sync for ExplorerSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::query_data::ExplorerSummary"]],["impl<Types> Sync for ExplorerSummaryResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::ExplorerSummaryResponse"]],["impl<Types> Sync for GetBlockSummariesRequest<Types>",1,["hotshot_query_service::explorer::query_data::GetBlockSummariesRequest"]],["impl<Types> Sync for GetTransactionSummariesRequest<Types>",1,["hotshot_query_service::explorer::query_data::GetTransactionSummariesRequest"]],["impl<Types> Sync for SearchResult<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::query_data::SearchResult"]],["impl<Types> Sync for SearchResultResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::SearchResultResponse"]],["impl<Types> Sync for TransactionDetail<Types>",1,["hotshot_query_service::explorer::query_data::TransactionDetail"]],["impl<Types> Sync for TransactionDetailResponse<Types>",1,["hotshot_query_service::explorer::TransactionDetailResponse"]],["impl<Types> Sync for TransactionRange<Types>",1,["hotshot_query_service::explorer::query_data::TransactionRange"]],["impl<Types> Sync for TransactionSummariesResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::TransactionSummariesResponse"]],["impl<Types> Sync for TransactionSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::query_data::TransactionSummary"]],["impl<Types> Sync for AnyProvider<Types>",1,["hotshot_query_service::fetching::provider::any::AnyProvider"]],["impl<Types, S, P> Sync for Builder<Types, S, P>
    where\n S: Sync,\n P: Sync,\n Types: Sync,
    ",1,["hotshot_query_service::data_source::fetching::Builder"]],["impl<Types, S, P> Sync for FetchingDataSource<Types, S, P>
    where\n S: Sync + Send,\n P: Sync + Send,
    ",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["impl<Types, S, P> Sync for Pruner<Types, S, P>
    where\n S: Sync,\n P: Sync,
    ",1,["hotshot_query_service::data_source::fetching::Pruner"]],["impl<Types, T, const ARITY: usize> Sync for Snapshot<Types, T, ARITY>",1,["hotshot_query_service::merklized_state::data_source::Snapshot"]],["impl<Ver> Sync for QueryServiceProvider<Ver>",1,["hotshot_query_service::fetching::provider::query_service::QueryServiceProvider"]],["impl<__T0> Sync for FetchBlockSnafu<__T0>
    where\n __T0: Sync,
    ",1,["hotshot_query_service::availability::FetchBlockSnafu"]],["impl<__T0> Sync for FetchLeafSnafu<__T0>
    where\n __T0: Sync,
    ",1,["hotshot_query_service::availability::FetchLeafSnafu"]],["impl<__T0> Sync for FetchTransactionSnafu<__T0>
    where\n __T0: Sync,
    ",1,["hotshot_query_service::availability::FetchTransactionSnafu"]],["impl<__T0> Sync for QueryVidSnafu<__T0>
    where\n __T0: Sync,
    ",1,["hotshot_query_service::node::QueryVidSnafu"]],["impl<__T0> Sync for ErrorSnafu<__T0>
    where\n __T0: Sync,
    ",1,["hotshot_query_service::ErrorSnafu"]],["impl<__T0, __T1> Sync for CustomSnafu<__T0, __T1>
    where\n __T0: Sync,\n __T1: Sync,
    ",1,["hotshot_query_service::availability::CustomSnafu"]],["impl<__T0, __T1> Sync for InvalidTransactionIndexSnafu<__T0, __T1>
    where\n __T0: Sync,\n __T1: Sync,
    ",1,["hotshot_query_service::availability::InvalidTransactionIndexSnafu"]],["impl<__T0, __T1> Sync for CustomSnafu<__T0, __T1>
    where\n __T0: Sync,\n __T1: Sync,
    ",1,["hotshot_query_service::node::CustomSnafu"]],["impl<__T0, __T1> Sync for QueryWindowSnafu<__T0, __T1>
    where\n __T0: Sync,\n __T1: Sync,
    ",1,["hotshot_query_service::node::QueryWindowSnafu"]]]]]); + var implementors = Object.fromEntries([["hotshot_query_service",[["impl Sync for Error",1,["hotshot_query_service::availability::Error"]],["impl Sync for FailableAction",1,["hotshot_query_service::data_source::storage::fail_storage::FailableAction"]],["impl Sync for DataSource",1,["hotshot_query_service::data_source::storage::no_storage::testing::DataSource"]],["impl Sync for Storage",1,["hotshot_query_service::data_source::storage::no_storage::testing::Storage"]],["impl Sync for Error",1,["hotshot_query_service::error::Error"]],["impl Sync for QueryError",1,["hotshot_query_service::QueryError"]],["impl Sync for CurrencyCode",1,["hotshot_query_service::explorer::currency::CurrencyCode"]],["impl Sync for Error",1,["hotshot_query_service::explorer::Error"]],["impl Sync for GetBlockDetailError",1,["hotshot_query_service::explorer::query_data::GetBlockDetailError"]],["impl Sync for GetBlockSummariesError",1,["hotshot_query_service::explorer::query_data::GetBlockSummariesError"]],["impl Sync for GetExplorerSummaryError",1,["hotshot_query_service::explorer::query_data::GetExplorerSummaryError"]],["impl Sync for GetSearchResultsError",1,["hotshot_query_service::explorer::query_data::GetSearchResultsError"]],["impl Sync for GetTransactionDetailError",1,["hotshot_query_service::explorer::query_data::GetTransactionDetailError"]],["impl Sync for GetTransactionSummariesError",1,["hotshot_query_service::explorer::query_data::GetTransactionSummariesError"]],["impl Sync for TimestampConversionError",1,["hotshot_query_service::explorer::query_data::TimestampConversionError"]],["impl Sync for TransactionSummaryFilter",1,["hotshot_query_service::explorer::query_data::TransactionSummaryFilter"]],["impl Sync for Error",1,["hotshot_query_service::merklized_state::Error"]],["impl Sync for MetricsError",1,["hotshot_query_service::metrics::MetricsError"]],["impl Sync for Error",1,["hotshot_query_service::node::Error"]],["impl Sync for Error",1,["hotshot_query_service::status::Error"]],["impl Sync for Options",1,["hotshot_query_service::availability::Options"]],["impl Sync for RequestSnafu",1,["hotshot_query_service::availability::RequestSnafu"]],["impl Sync for NoStorage",1,["hotshot_query_service::data_source::storage::no_storage::NoStorage"]],["impl Sync for PrunerCfg",1,["hotshot_query_service::data_source::storage::pruning::PrunerCfg"]],["impl Sync for Config",1,["hotshot_query_service::data_source::storage::sql::Config"]],["impl Sync for Pruner",1,["hotshot_query_service::data_source::storage::sql::Pruner"]],["impl Sync for Read",1,["hotshot_query_service::data_source::storage::sql::transaction::Read"]],["impl Sync for SqlStorage",1,["hotshot_query_service::data_source::storage::sql::SqlStorage"]],["impl Sync for Write",1,["hotshot_query_service::data_source::storage::sql::transaction::Write"]],["impl Sync for TestMerkleTreeMigration",1,["hotshot_query_service::data_source::storage::sql::testing::TestMerkleTreeMigration"]],["impl Sync for TmpDb",1,["hotshot_query_service::data_source::storage::sql::testing::TmpDb"]],["impl Sync for MetricsDataSource",1,["hotshot_query_service::data_source::metrics::MetricsDataSource"]],["impl Sync for CurrencyMismatchError",1,["hotshot_query_service::explorer::currency::CurrencyMismatchError"]],["impl Sync for ExplorerHistograms",1,["hotshot_query_service::explorer::query_data::ExplorerHistograms"]],["impl Sync for FeeAttribution",1,["hotshot_query_service::explorer::query_data::FeeAttribution"]],["impl Sync for GenesisOverview",1,["hotshot_query_service::explorer::query_data::GenesisOverview"]],["impl Sync for InvalidCurrencyCodeError",1,["hotshot_query_service::explorer::currency::InvalidCurrencyCodeError"]],["impl Sync for MonetaryValue",1,["hotshot_query_service::explorer::monetary_value::MonetaryValue"]],["impl Sync for Timestamp",1,["hotshot_query_service::explorer::query_data::Timestamp"]],["impl Sync for NoFetching",1,["hotshot_query_service::fetching::provider::NoFetching"]],["impl Sync for LeafRequest",1,["hotshot_query_service::fetching::request::LeafRequest"]],["impl Sync for PayloadRequest",1,["hotshot_query_service::fetching::request::PayloadRequest"]],["impl Sync for VidCommonRequest",1,["hotshot_query_service::fetching::request::VidCommonRequest"]],["impl Sync for Options",1,["hotshot_query_service::merklized_state::Options"]],["impl Sync for Counter",1,["hotshot_query_service::metrics::Counter"]],["impl Sync for CounterFamily",1,["hotshot_query_service::metrics::CounterFamily"]],["impl Sync for Gauge",1,["hotshot_query_service::metrics::Gauge"]],["impl Sync for GaugeFamily",1,["hotshot_query_service::metrics::GaugeFamily"]],["impl Sync for Histogram",1,["hotshot_query_service::metrics::Histogram"]],["impl Sync for HistogramFamily",1,["hotshot_query_service::metrics::HistogramFamily"]],["impl Sync for PrometheusMetrics",1,["hotshot_query_service::metrics::PrometheusMetrics"]],["impl Sync for TextFamily",1,["hotshot_query_service::metrics::TextFamily"]],["impl Sync for Options",1,["hotshot_query_service::node::Options"]],["impl Sync for QuerySnafu",1,["hotshot_query_service::node::QuerySnafu"]],["impl Sync for RequestSnafu",1,["hotshot_query_service::node::RequestSnafu"]],["impl Sync for SyncStatus",1,["hotshot_query_service::node::query_data::SyncStatus"]],["impl Sync for Options",1,["hotshot_query_service::status::Options"]],["impl Sync for MissingSnafu",1,["hotshot_query_service::MissingSnafu"]],["impl Sync for NotFoundSnafu",1,["hotshot_query_service::NotFoundSnafu"]],["impl Sync for Options",1,["hotshot_query_service::Options"]],["impl Sync for BackgroundTask",1,["hotshot_query_service::task::BackgroundTask"]],["impl Sync for MockNodeImpl",1,["hotshot_query_service::testing::mocks::MockNodeImpl"]],["impl Sync for MockTypes",1,["hotshot_query_service::testing::mocks::MockTypes"]],["impl Sync for MockVersions",1,["hotshot_query_service::testing::mocks::MockVersions"]],["impl<'a> Sync for Transaction<'a>",1,["hotshot_query_service::data_source::storage::no_storage::Transaction"]],["impl<'a, T> Sync for Transaction<'a, T>
    where\n T: Sync,
    ",1,["hotshot_query_service::data_source::storage::no_storage::testing::Transaction"]],["impl<'q> Sync for QueryBuilder<'q>",1,["hotshot_query_service::data_source::storage::sql::queries::QueryBuilder"]],["impl<D> Sync for ApiState<D>
    where\n D: Sync + Send,
    ",1,["hotshot_query_service::ApiState"]],["impl<D> Sync for MockNetwork<D>",1,["hotshot_query_service::testing::consensus::MockNetwork"]],["impl<D, U> Sync for ExtensibleDataSource<D, U>
    where\n D: Sync,\n U: Sync,
    ",1,["hotshot_query_service::data_source::extension::ExtensibleDataSource"]],["impl<Mode> Sync for Transaction<Mode>
    where\n Mode: Sync,
    ",1,["hotshot_query_service::data_source::storage::sql::transaction::Transaction"]],["impl<P> Sync for TestProvider<P>
    where\n P: Sync + Send,
    ",1,["hotshot_query_service::fetching::provider::testing::TestProvider"]],["impl<S> Sync for FailStorage<S>
    where\n S: Sync,
    ",1,["hotshot_query_service::data_source::storage::fail_storage::FailStorage"]],["impl<T> !Sync for Fetch<T>",1,["hotshot_query_service::availability::fetch::Fetch"]],["impl<T> Sync for Transaction<T>
    where\n T: Sync,
    ",1,["hotshot_query_service::data_source::storage::fail_storage::Transaction"]],["impl<T> Sync for Transaction<T>
    where\n T: Sync,
    ",1,["hotshot_query_service::data_source::storage::fs::Transaction"]],["impl<T> Sync for TimeWindowQueryData<T>
    where\n T: Sync,
    ",1,["hotshot_query_service::node::query_data::TimeWindowQueryData"]],["impl<T> Sync for Task<T>",1,["hotshot_query_service::task::Task"]],["impl<T, C> Sync for Fetcher<T, C>
    where\n T: Send,\n C: Send,
    ",1,["hotshot_query_service::fetching::Fetcher"]],["impl<Types> Sync for BlockId<Types>",1,["hotshot_query_service::availability::data_source::BlockId"]],["impl<Types> Sync for LeafId<Types>",1,["hotshot_query_service::availability::data_source::LeafId"]],["impl<Types> Sync for BlockIdentifier<Types>",1,["hotshot_query_service::explorer::query_data::BlockIdentifier"]],["impl<Types> Sync for TransactionIdentifier<Types>",1,["hotshot_query_service::explorer::query_data::TransactionIdentifier"]],["impl<Types> Sync for WindowStart<Types>",1,["hotshot_query_service::node::data_source::WindowStart"]],["impl<Types> Sync for BlockInfo<Types>",1,["hotshot_query_service::availability::data_source::BlockInfo"]],["impl<Types> Sync for BlockQueryData<Types>",1,["hotshot_query_service::availability::query_data::BlockQueryData"]],["impl<Types> Sync for BlockSummaryQueryData<Types>",1,["hotshot_query_service::availability::query_data::BlockSummaryQueryData"]],["impl<Types> Sync for InconsistentLeafError<Types>",1,["hotshot_query_service::availability::query_data::InconsistentLeafError"]],["impl<Types> Sync for LeafQueryData<Types>",1,["hotshot_query_service::availability::query_data::LeafQueryData"]],["impl<Types> Sync for PayloadMetadata<Types>",1,["hotshot_query_service::availability::query_data::PayloadMetadata"]],["impl<Types> Sync for PayloadQueryData<Types>",1,["hotshot_query_service::availability::query_data::PayloadQueryData"]],["impl<Types> Sync for TransactionQueryData<Types>
    where\n <Types as NodeType>::BlockPayload: for<'de> Sized,
    ",1,["hotshot_query_service::availability::query_data::TransactionQueryData"]],["impl<Types> Sync for TransactionSummaryQueryData<Types>",1,["hotshot_query_service::availability::query_data::TransactionSummaryQueryData"]],["impl<Types> Sync for VidCommonMetadata<Types>",1,["hotshot_query_service::availability::query_data::VidCommonMetadata"]],["impl<Types> Sync for VidCommonQueryData<Types>",1,["hotshot_query_service::availability::query_data::VidCommonQueryData"]],["impl<Types> Sync for FileSystemStorage<Types>
    where\n <Types as NodeType>::BlockPayload: for<'de> Sized,
    ",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorage"]],["impl<Types> Sync for FileSystemStorageInner<Types>
    where\n <Types as NodeType>::BlockPayload: for<'de> Sized,
    ",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorageInner"]],["impl<Types> Sync for BlockDetail<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::query_data::BlockDetail"]],["impl<Types> Sync for BlockDetailResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::BlockDetailResponse"]],["impl<Types> Sync for BlockRange<Types>",1,["hotshot_query_service::explorer::query_data::BlockRange"]],["impl<Types> Sync for BlockSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::query_data::BlockSummary"]],["impl<Types> Sync for BlockSummaryResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::BlockSummaryResponse"]],["impl<Types> Sync for ExplorerSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::query_data::ExplorerSummary"]],["impl<Types> Sync for ExplorerSummaryResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::ExplorerSummaryResponse"]],["impl<Types> Sync for GetBlockSummariesRequest<Types>",1,["hotshot_query_service::explorer::query_data::GetBlockSummariesRequest"]],["impl<Types> Sync for GetTransactionSummariesRequest<Types>",1,["hotshot_query_service::explorer::query_data::GetTransactionSummariesRequest"]],["impl<Types> Sync for SearchResult<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::query_data::SearchResult"]],["impl<Types> Sync for SearchResultResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::SearchResultResponse"]],["impl<Types> Sync for TransactionDetail<Types>",1,["hotshot_query_service::explorer::query_data::TransactionDetail"]],["impl<Types> Sync for TransactionDetailResponse<Types>",1,["hotshot_query_service::explorer::TransactionDetailResponse"]],["impl<Types> Sync for TransactionRange<Types>",1,["hotshot_query_service::explorer::query_data::TransactionRange"]],["impl<Types> Sync for TransactionSummariesResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::TransactionSummariesResponse"]],["impl<Types> Sync for TransactionSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,
    ",1,["hotshot_query_service::explorer::query_data::TransactionSummary"]],["impl<Types> Sync for AnyProvider<Types>",1,["hotshot_query_service::fetching::provider::any::AnyProvider"]],["impl<Types, S, P> Sync for Builder<Types, S, P>
    where\n S: Sync,\n P: Sync,\n Types: Sync,
    ",1,["hotshot_query_service::data_source::fetching::Builder"]],["impl<Types, S, P> Sync for FetchingDataSource<Types, S, P>
    where\n S: Sync + Send,\n P: Sync + Send,
    ",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["impl<Types, S, P> Sync for Pruner<Types, S, P>
    where\n S: Sync,\n P: Sync,
    ",1,["hotshot_query_service::data_source::fetching::Pruner"]],["impl<Types, T, const ARITY: usize> Sync for Snapshot<Types, T, ARITY>",1,["hotshot_query_service::merklized_state::data_source::Snapshot"]],["impl<Ver> Sync for QueryServiceProvider<Ver>",1,["hotshot_query_service::fetching::provider::query_service::QueryServiceProvider"]],["impl<__T0> Sync for FetchBlockSnafu<__T0>
    where\n __T0: Sync,
    ",1,["hotshot_query_service::availability::FetchBlockSnafu"]],["impl<__T0> Sync for FetchLeafSnafu<__T0>
    where\n __T0: Sync,
    ",1,["hotshot_query_service::availability::FetchLeafSnafu"]],["impl<__T0> Sync for FetchTransactionSnafu<__T0>
    where\n __T0: Sync,
    ",1,["hotshot_query_service::availability::FetchTransactionSnafu"]],["impl<__T0> Sync for QueryVidSnafu<__T0>
    where\n __T0: Sync,
    ",1,["hotshot_query_service::node::QueryVidSnafu"]],["impl<__T0> Sync for ErrorSnafu<__T0>
    where\n __T0: Sync,
    ",1,["hotshot_query_service::ErrorSnafu"]],["impl<__T0, __T1> Sync for CustomSnafu<__T0, __T1>
    where\n __T0: Sync,\n __T1: Sync,
    ",1,["hotshot_query_service::availability::CustomSnafu"]],["impl<__T0, __T1> Sync for InvalidTransactionIndexSnafu<__T0, __T1>
    where\n __T0: Sync,\n __T1: Sync,
    ",1,["hotshot_query_service::availability::InvalidTransactionIndexSnafu"]],["impl<__T0, __T1> Sync for CustomSnafu<__T0, __T1>
    where\n __T0: Sync,\n __T1: Sync,
    ",1,["hotshot_query_service::node::CustomSnafu"]],["impl<__T0, __T1> Sync for QueryWindowSnafu<__T0, __T1>
    where\n __T0: Sync,\n __T1: Sync,
    ",1,["hotshot_query_service::node::QueryWindowSnafu"]]]]]); if (window.register_implementors) { window.register_implementors(implementors); } else { window.pending_implementors = implementors; } })() -//{"start":57,"fragment_lengths":[59212]} \ No newline at end of file +//{"start":57,"fragment_lengths":[60070]} \ No newline at end of file diff --git a/trait.impl/core/marker/trait.Unpin.js b/trait.impl/core/marker/trait.Unpin.js index b9727cc49..7846ffd57 100644 --- a/trait.impl/core/marker/trait.Unpin.js +++ b/trait.impl/core/marker/trait.Unpin.js @@ -1,9 +1,9 @@ (function() { - var implementors = Object.fromEntries([["hotshot_query_service",[["impl Unpin for Error",1,["hotshot_query_service::availability::Error"]],["impl Unpin for FailableAction",1,["hotshot_query_service::data_source::storage::fail_storage::FailableAction"]],["impl Unpin for DataSource",1,["hotshot_query_service::data_source::storage::no_storage::testing::DataSource"]],["impl Unpin for Storage",1,["hotshot_query_service::data_source::storage::no_storage::testing::Storage"]],["impl Unpin for Error",1,["hotshot_query_service::error::Error"]],["impl Unpin for QueryError",1,["hotshot_query_service::QueryError"]],["impl Unpin for CurrencyCode",1,["hotshot_query_service::explorer::currency::CurrencyCode"]],["impl Unpin for Error",1,["hotshot_query_service::explorer::Error"]],["impl Unpin for GetBlockDetailError",1,["hotshot_query_service::explorer::query_data::GetBlockDetailError"]],["impl Unpin for GetBlockSummariesError",1,["hotshot_query_service::explorer::query_data::GetBlockSummariesError"]],["impl Unpin for GetExplorerSummaryError",1,["hotshot_query_service::explorer::query_data::GetExplorerSummaryError"]],["impl Unpin for GetSearchResultsError",1,["hotshot_query_service::explorer::query_data::GetSearchResultsError"]],["impl Unpin for GetTransactionDetailError",1,["hotshot_query_service::explorer::query_data::GetTransactionDetailError"]],["impl Unpin for GetTransactionSummariesError",1,["hotshot_query_service::explorer::query_data::GetTransactionSummariesError"]],["impl Unpin for TimestampConversionError",1,["hotshot_query_service::explorer::query_data::TimestampConversionError"]],["impl Unpin for TransactionSummaryFilter",1,["hotshot_query_service::explorer::query_data::TransactionSummaryFilter"]],["impl Unpin for Error",1,["hotshot_query_service::merklized_state::Error"]],["impl Unpin for MetricsError",1,["hotshot_query_service::metrics::MetricsError"]],["impl Unpin for Error",1,["hotshot_query_service::node::Error"]],["impl Unpin for Error",1,["hotshot_query_service::status::Error"]],["impl Unpin for Options",1,["hotshot_query_service::availability::Options"]],["impl Unpin for RequestSnafu",1,["hotshot_query_service::availability::RequestSnafu"]],["impl Unpin for NoStorage",1,["hotshot_query_service::data_source::storage::no_storage::NoStorage"]],["impl Unpin for PrunerCfg",1,["hotshot_query_service::data_source::storage::pruning::PrunerCfg"]],["impl Unpin for Config",1,["hotshot_query_service::data_source::storage::sql::Config"]],["impl Unpin for Pruner",1,["hotshot_query_service::data_source::storage::sql::Pruner"]],["impl Unpin for Read",1,["hotshot_query_service::data_source::storage::sql::transaction::Read"]],["impl Unpin for SqlStorage",1,["hotshot_query_service::data_source::storage::sql::SqlStorage"]],["impl Unpin for Write",1,["hotshot_query_service::data_source::storage::sql::transaction::Write"]],["impl Unpin for TestMerkleTreeMigration",1,["hotshot_query_service::data_source::storage::sql::testing::TestMerkleTreeMigration"]],["impl Unpin for TmpDb",1,["hotshot_query_service::data_source::storage::sql::testing::TmpDb"]],["impl Unpin for MetricsDataSource",1,["hotshot_query_service::data_source::metrics::MetricsDataSource"]],["impl Unpin for CurrencyMismatchError",1,["hotshot_query_service::explorer::currency::CurrencyMismatchError"]],["impl Unpin for ExplorerHistograms",1,["hotshot_query_service::explorer::query_data::ExplorerHistograms"]],["impl Unpin for FeeAttribution",1,["hotshot_query_service::explorer::query_data::FeeAttribution"]],["impl Unpin for GenesisOverview",1,["hotshot_query_service::explorer::query_data::GenesisOverview"]],["impl Unpin for InvalidCurrencyCodeError",1,["hotshot_query_service::explorer::currency::InvalidCurrencyCodeError"]],["impl Unpin for MonetaryValue",1,["hotshot_query_service::explorer::monetary_value::MonetaryValue"]],["impl Unpin for Timestamp",1,["hotshot_query_service::explorer::query_data::Timestamp"]],["impl Unpin for NoFetching",1,["hotshot_query_service::fetching::provider::NoFetching"]],["impl Unpin for LeafRequest",1,["hotshot_query_service::fetching::request::LeafRequest"]],["impl Unpin for PayloadRequest",1,["hotshot_query_service::fetching::request::PayloadRequest"]],["impl Unpin for VidCommonRequest",1,["hotshot_query_service::fetching::request::VidCommonRequest"]],["impl Unpin for Options",1,["hotshot_query_service::merklized_state::Options"]],["impl Unpin for Counter",1,["hotshot_query_service::metrics::Counter"]],["impl Unpin for CounterFamily",1,["hotshot_query_service::metrics::CounterFamily"]],["impl Unpin for Gauge",1,["hotshot_query_service::metrics::Gauge"]],["impl Unpin for GaugeFamily",1,["hotshot_query_service::metrics::GaugeFamily"]],["impl Unpin for Histogram",1,["hotshot_query_service::metrics::Histogram"]],["impl Unpin for HistogramFamily",1,["hotshot_query_service::metrics::HistogramFamily"]],["impl Unpin for PrometheusMetrics",1,["hotshot_query_service::metrics::PrometheusMetrics"]],["impl Unpin for TextFamily",1,["hotshot_query_service::metrics::TextFamily"]],["impl Unpin for Options",1,["hotshot_query_service::node::Options"]],["impl Unpin for QuerySnafu",1,["hotshot_query_service::node::QuerySnafu"]],["impl Unpin for RequestSnafu",1,["hotshot_query_service::node::RequestSnafu"]],["impl Unpin for SyncStatus",1,["hotshot_query_service::node::query_data::SyncStatus"]],["impl Unpin for Options",1,["hotshot_query_service::status::Options"]],["impl Unpin for MissingSnafu",1,["hotshot_query_service::MissingSnafu"]],["impl Unpin for NotFoundSnafu",1,["hotshot_query_service::NotFoundSnafu"]],["impl Unpin for Options",1,["hotshot_query_service::Options"]],["impl Unpin for BackgroundTask",1,["hotshot_query_service::task::BackgroundTask"]],["impl Unpin for MockNodeImpl",1,["hotshot_query_service::testing::mocks::MockNodeImpl"]],["impl Unpin for MockTypes",1,["hotshot_query_service::testing::mocks::MockTypes"]],["impl Unpin for MockVersions",1,["hotshot_query_service::testing::mocks::MockVersions"]],["impl<'a> Unpin for Transaction<'a>",1,["hotshot_query_service::data_source::storage::no_storage::Transaction"]],["impl<'a, T> Unpin for Transaction<'a, T>
    where\n T: Unpin,
    ",1,["hotshot_query_service::data_source::storage::no_storage::testing::Transaction"]],["impl<'q> Unpin for QueryBuilder<'q>",1,["hotshot_query_service::data_source::storage::sql::queries::QueryBuilder"]],["impl<D> Unpin for ApiState<D>",1,["hotshot_query_service::ApiState"]],["impl<D> Unpin for MockNetwork<D>
    where\n D: Unpin,\n <D as DataSourceLifeCycle>::Storage: Unpin,
    ",1,["hotshot_query_service::testing::consensus::MockNetwork"]],["impl<D, U> Unpin for ExtensibleDataSource<D, U>
    where\n D: Unpin,\n U: Unpin,
    ",1,["hotshot_query_service::data_source::extension::ExtensibleDataSource"]],["impl<Mode> Unpin for Transaction<Mode>
    where\n Mode: Unpin,
    ",1,["hotshot_query_service::data_source::storage::sql::transaction::Transaction"]],["impl<P> Unpin for TestProvider<P>",1,["hotshot_query_service::fetching::provider::testing::TestProvider"]],["impl<S> Unpin for FailStorage<S>
    where\n S: Unpin,
    ",1,["hotshot_query_service::data_source::storage::fail_storage::FailStorage"]],["impl<T> Unpin for Fetch<T>
    where\n T: Unpin,
    ",1,["hotshot_query_service::availability::fetch::Fetch"]],["impl<T> Unpin for Transaction<T>
    where\n T: Unpin,
    ",1,["hotshot_query_service::data_source::storage::fail_storage::Transaction"]],["impl<T> Unpin for Transaction<T>
    where\n T: Unpin,
    ",1,["hotshot_query_service::data_source::storage::fs::Transaction"]],["impl<T> Unpin for TimeWindowQueryData<T>
    where\n T: Unpin,
    ",1,["hotshot_query_service::node::query_data::TimeWindowQueryData"]],["impl<T> Unpin for Task<T>",1,["hotshot_query_service::task::Task"]],["impl<T, C> Unpin for Fetcher<T, C>",1,["hotshot_query_service::fetching::Fetcher"]],["impl<Types> Unpin for BlockId<Types>",1,["hotshot_query_service::availability::data_source::BlockId"]],["impl<Types> Unpin for LeafId<Types>",1,["hotshot_query_service::availability::data_source::LeafId"]],["impl<Types> Unpin for BlockIdentifier<Types>",1,["hotshot_query_service::explorer::query_data::BlockIdentifier"]],["impl<Types> Unpin for TransactionIdentifier<Types>",1,["hotshot_query_service::explorer::query_data::TransactionIdentifier"]],["impl<Types> Unpin for WindowStart<Types>",1,["hotshot_query_service::node::data_source::WindowStart"]],["impl<Types> Unpin for BlockInfo<Types>
    where\n <Types as NodeType>::View: Unpin,\n <Types as NodeType>::BlockHeader: Unpin,\n <Types as NodeType>::BlockPayload: Unpin,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QcType: Unpin,\n Types: Unpin,
    ",1,["hotshot_query_service::availability::data_source::BlockInfo"]],["impl<Types> Unpin for BlockQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: Unpin,\n <Types as NodeType>::BlockPayload: Unpin,
    ",1,["hotshot_query_service::availability::query_data::BlockQueryData"]],["impl<Types> Unpin for BlockSummaryQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: Unpin,
    ",1,["hotshot_query_service::availability::query_data::BlockSummaryQueryData"]],["impl<Types> Unpin for InconsistentLeafError<Types>",1,["hotshot_query_service::availability::query_data::InconsistentLeafError"]],["impl<Types> Unpin for LeafQueryData<Types>
    where\n <Types as NodeType>::View: Unpin,\n <Types as NodeType>::BlockHeader: Unpin,\n <Types as NodeType>::BlockPayload: Unpin,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QcType: Unpin,\n Types: Unpin,
    ",1,["hotshot_query_service::availability::query_data::LeafQueryData"]],["impl<Types> Unpin for PayloadQueryData<Types>
    where\n <Types as NodeType>::BlockPayload: Unpin,
    ",1,["hotshot_query_service::availability::query_data::PayloadQueryData"]],["impl<Types> Unpin for TransactionQueryData<Types>
    where\n <Types as NodeType>::BlockPayload: for<'de> Sized,\n <Types as NodeType>::Transaction: Unpin,\n <<Types as NodeType>::BlockPayload as QueryablePayload<Types>>::InclusionProof: Unpin,
    ",1,["hotshot_query_service::availability::query_data::TransactionQueryData"]],["impl<Types> Unpin for TransactionSummaryQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: Unpin,\n <Types as NodeType>::Transaction: Unpin,
    ",1,["hotshot_query_service::availability::query_data::TransactionSummaryQueryData"]],["impl<Types> Unpin for VidCommonQueryData<Types>",1,["hotshot_query_service::availability::query_data::VidCommonQueryData"]],["impl<Types> Unpin for FileSystemStorage<Types>
    where\n <Types as NodeType>::BlockPayload: for<'de> Sized + Unpin,\n <Types as NodeType>::BlockHeader: Unpin,\n <Types as NodeType>::View: Unpin,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QcType: Unpin,\n Types: Unpin,
    ",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorage"]],["impl<Types> Unpin for FileSystemStorageInner<Types>
    where\n <Types as NodeType>::BlockPayload: for<'de> Sized + Unpin,\n <Types as NodeType>::BlockHeader: Unpin,\n <Types as NodeType>::View: Unpin,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QcType: Unpin,\n Types: Unpin,
    ",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorageInner"]],["impl<Types> Unpin for BlockDetail<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: Unpin,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::WalletAddress: Unpin,
    ",1,["hotshot_query_service::explorer::query_data::BlockDetail"]],["impl<Types> Unpin for BlockDetailResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: Unpin,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::WalletAddress: Unpin,
    ",1,["hotshot_query_service::explorer::BlockDetailResponse"]],["impl<Types> Unpin for BlockRange<Types>",1,["hotshot_query_service::explorer::query_data::BlockRange"]],["impl<Types> Unpin for BlockSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: Unpin,
    ",1,["hotshot_query_service::explorer::query_data::BlockSummary"]],["impl<Types> Unpin for BlockSummaryResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: Unpin,
    ",1,["hotshot_query_service::explorer::BlockSummaryResponse"]],["impl<Types> Unpin for ExplorerSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: Unpin,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::WalletAddress: Unpin,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: Unpin,
    ",1,["hotshot_query_service::explorer::query_data::ExplorerSummary"]],["impl<Types> Unpin for ExplorerSummaryResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: Unpin,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::WalletAddress: Unpin,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: Unpin,
    ",1,["hotshot_query_service::explorer::ExplorerSummaryResponse"]],["impl<Types> Unpin for GetBlockSummariesRequest<Types>",1,["hotshot_query_service::explorer::query_data::GetBlockSummariesRequest"]],["impl<Types> Unpin for GetTransactionSummariesRequest<Types>",1,["hotshot_query_service::explorer::query_data::GetTransactionSummariesRequest"]],["impl<Types> Unpin for SearchResult<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: Unpin,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: Unpin,
    ",1,["hotshot_query_service::explorer::query_data::SearchResult"]],["impl<Types> Unpin for SearchResultResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: Unpin,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: Unpin,
    ",1,["hotshot_query_service::explorer::SearchResultResponse"]],["impl<Types> Unpin for TransactionDetail<Types>",1,["hotshot_query_service::explorer::query_data::TransactionDetail"]],["impl<Types> Unpin for TransactionDetailResponse<Types>
    where\n <Types as NodeType>::Transaction: Unpin,
    ",1,["hotshot_query_service::explorer::TransactionDetailResponse"]],["impl<Types> Unpin for TransactionRange<Types>",1,["hotshot_query_service::explorer::query_data::TransactionRange"]],["impl<Types> Unpin for TransactionSummariesResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: Unpin,
    ",1,["hotshot_query_service::explorer::TransactionSummariesResponse"]],["impl<Types> Unpin for TransactionSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: Unpin,
    ",1,["hotshot_query_service::explorer::query_data::TransactionSummary"]],["impl<Types> Unpin for AnyProvider<Types>",1,["hotshot_query_service::fetching::provider::any::AnyProvider"]],["impl<Types, S, P> Unpin for Builder<Types, S, P>
    where\n S: Unpin,\n P: Unpin,\n Types: Unpin,
    ",1,["hotshot_query_service::data_source::fetching::Builder"]],["impl<Types, S, P> Unpin for FetchingDataSource<Types, S, P>
    where\n Types: Unpin,\n S: Unpin,\n P: Unpin,
    ",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["impl<Types, S, P> Unpin for Pruner<Types, S, P>
    where\n Types: Unpin,\n S: Unpin,\n P: Unpin,
    ",1,["hotshot_query_service::data_source::fetching::Pruner"]],["impl<Types, T, const ARITY: usize> Unpin for Snapshot<Types, T, ARITY>
    where\n <T as MerklizedState<Types, ARITY>>::Commit: Unpin,
    ",1,["hotshot_query_service::merklized_state::data_source::Snapshot"]],["impl<Ver> Unpin for QueryServiceProvider<Ver>",1,["hotshot_query_service::fetching::provider::query_service::QueryServiceProvider"]],["impl<__T0> Unpin for FetchBlockSnafu<__T0>
    where\n __T0: Unpin,
    ",1,["hotshot_query_service::availability::FetchBlockSnafu"]],["impl<__T0> Unpin for FetchLeafSnafu<__T0>
    where\n __T0: Unpin,
    ",1,["hotshot_query_service::availability::FetchLeafSnafu"]],["impl<__T0> Unpin for FetchTransactionSnafu<__T0>
    where\n __T0: Unpin,
    ",1,["hotshot_query_service::availability::FetchTransactionSnafu"]],["impl<__T0> Unpin for QueryVidSnafu<__T0>
    where\n __T0: Unpin,
    ",1,["hotshot_query_service::node::QueryVidSnafu"]],["impl<__T0> Unpin for ErrorSnafu<__T0>
    where\n __T0: Unpin,
    ",1,["hotshot_query_service::ErrorSnafu"]],["impl<__T0, __T1> Unpin for CustomSnafu<__T0, __T1>
    where\n __T0: Unpin,\n __T1: Unpin,
    ",1,["hotshot_query_service::availability::CustomSnafu"]],["impl<__T0, __T1> Unpin for InvalidTransactionIndexSnafu<__T0, __T1>
    where\n __T0: Unpin,\n __T1: Unpin,
    ",1,["hotshot_query_service::availability::InvalidTransactionIndexSnafu"]],["impl<__T0, __T1> Unpin for CustomSnafu<__T0, __T1>
    where\n __T0: Unpin,\n __T1: Unpin,
    ",1,["hotshot_query_service::node::CustomSnafu"]],["impl<__T0, __T1> Unpin for QueryWindowSnafu<__T0, __T1>
    where\n __T0: Unpin,\n __T1: Unpin,
    ",1,["hotshot_query_service::node::QueryWindowSnafu"]]]]]); + var implementors = Object.fromEntries([["hotshot_query_service",[["impl Unpin for Error",1,["hotshot_query_service::availability::Error"]],["impl Unpin for FailableAction",1,["hotshot_query_service::data_source::storage::fail_storage::FailableAction"]],["impl Unpin for DataSource",1,["hotshot_query_service::data_source::storage::no_storage::testing::DataSource"]],["impl Unpin for Storage",1,["hotshot_query_service::data_source::storage::no_storage::testing::Storage"]],["impl Unpin for Error",1,["hotshot_query_service::error::Error"]],["impl Unpin for QueryError",1,["hotshot_query_service::QueryError"]],["impl Unpin for CurrencyCode",1,["hotshot_query_service::explorer::currency::CurrencyCode"]],["impl Unpin for Error",1,["hotshot_query_service::explorer::Error"]],["impl Unpin for GetBlockDetailError",1,["hotshot_query_service::explorer::query_data::GetBlockDetailError"]],["impl Unpin for GetBlockSummariesError",1,["hotshot_query_service::explorer::query_data::GetBlockSummariesError"]],["impl Unpin for GetExplorerSummaryError",1,["hotshot_query_service::explorer::query_data::GetExplorerSummaryError"]],["impl Unpin for GetSearchResultsError",1,["hotshot_query_service::explorer::query_data::GetSearchResultsError"]],["impl Unpin for GetTransactionDetailError",1,["hotshot_query_service::explorer::query_data::GetTransactionDetailError"]],["impl Unpin for GetTransactionSummariesError",1,["hotshot_query_service::explorer::query_data::GetTransactionSummariesError"]],["impl Unpin for TimestampConversionError",1,["hotshot_query_service::explorer::query_data::TimestampConversionError"]],["impl Unpin for TransactionSummaryFilter",1,["hotshot_query_service::explorer::query_data::TransactionSummaryFilter"]],["impl Unpin for Error",1,["hotshot_query_service::merklized_state::Error"]],["impl Unpin for MetricsError",1,["hotshot_query_service::metrics::MetricsError"]],["impl Unpin for Error",1,["hotshot_query_service::node::Error"]],["impl Unpin for Error",1,["hotshot_query_service::status::Error"]],["impl Unpin for Options",1,["hotshot_query_service::availability::Options"]],["impl Unpin for RequestSnafu",1,["hotshot_query_service::availability::RequestSnafu"]],["impl Unpin for NoStorage",1,["hotshot_query_service::data_source::storage::no_storage::NoStorage"]],["impl Unpin for PrunerCfg",1,["hotshot_query_service::data_source::storage::pruning::PrunerCfg"]],["impl Unpin for Config",1,["hotshot_query_service::data_source::storage::sql::Config"]],["impl Unpin for Pruner",1,["hotshot_query_service::data_source::storage::sql::Pruner"]],["impl Unpin for Read",1,["hotshot_query_service::data_source::storage::sql::transaction::Read"]],["impl Unpin for SqlStorage",1,["hotshot_query_service::data_source::storage::sql::SqlStorage"]],["impl Unpin for Write",1,["hotshot_query_service::data_source::storage::sql::transaction::Write"]],["impl Unpin for TestMerkleTreeMigration",1,["hotshot_query_service::data_source::storage::sql::testing::TestMerkleTreeMigration"]],["impl Unpin for TmpDb",1,["hotshot_query_service::data_source::storage::sql::testing::TmpDb"]],["impl Unpin for MetricsDataSource",1,["hotshot_query_service::data_source::metrics::MetricsDataSource"]],["impl Unpin for CurrencyMismatchError",1,["hotshot_query_service::explorer::currency::CurrencyMismatchError"]],["impl Unpin for ExplorerHistograms",1,["hotshot_query_service::explorer::query_data::ExplorerHistograms"]],["impl Unpin for FeeAttribution",1,["hotshot_query_service::explorer::query_data::FeeAttribution"]],["impl Unpin for GenesisOverview",1,["hotshot_query_service::explorer::query_data::GenesisOverview"]],["impl Unpin for InvalidCurrencyCodeError",1,["hotshot_query_service::explorer::currency::InvalidCurrencyCodeError"]],["impl Unpin for MonetaryValue",1,["hotshot_query_service::explorer::monetary_value::MonetaryValue"]],["impl Unpin for Timestamp",1,["hotshot_query_service::explorer::query_data::Timestamp"]],["impl Unpin for NoFetching",1,["hotshot_query_service::fetching::provider::NoFetching"]],["impl Unpin for LeafRequest",1,["hotshot_query_service::fetching::request::LeafRequest"]],["impl Unpin for PayloadRequest",1,["hotshot_query_service::fetching::request::PayloadRequest"]],["impl Unpin for VidCommonRequest",1,["hotshot_query_service::fetching::request::VidCommonRequest"]],["impl Unpin for Options",1,["hotshot_query_service::merklized_state::Options"]],["impl Unpin for Counter",1,["hotshot_query_service::metrics::Counter"]],["impl Unpin for CounterFamily",1,["hotshot_query_service::metrics::CounterFamily"]],["impl Unpin for Gauge",1,["hotshot_query_service::metrics::Gauge"]],["impl Unpin for GaugeFamily",1,["hotshot_query_service::metrics::GaugeFamily"]],["impl Unpin for Histogram",1,["hotshot_query_service::metrics::Histogram"]],["impl Unpin for HistogramFamily",1,["hotshot_query_service::metrics::HistogramFamily"]],["impl Unpin for PrometheusMetrics",1,["hotshot_query_service::metrics::PrometheusMetrics"]],["impl Unpin for TextFamily",1,["hotshot_query_service::metrics::TextFamily"]],["impl Unpin for Options",1,["hotshot_query_service::node::Options"]],["impl Unpin for QuerySnafu",1,["hotshot_query_service::node::QuerySnafu"]],["impl Unpin for RequestSnafu",1,["hotshot_query_service::node::RequestSnafu"]],["impl Unpin for SyncStatus",1,["hotshot_query_service::node::query_data::SyncStatus"]],["impl Unpin for Options",1,["hotshot_query_service::status::Options"]],["impl Unpin for MissingSnafu",1,["hotshot_query_service::MissingSnafu"]],["impl Unpin for NotFoundSnafu",1,["hotshot_query_service::NotFoundSnafu"]],["impl Unpin for Options",1,["hotshot_query_service::Options"]],["impl Unpin for BackgroundTask",1,["hotshot_query_service::task::BackgroundTask"]],["impl Unpin for MockNodeImpl",1,["hotshot_query_service::testing::mocks::MockNodeImpl"]],["impl Unpin for MockTypes",1,["hotshot_query_service::testing::mocks::MockTypes"]],["impl Unpin for MockVersions",1,["hotshot_query_service::testing::mocks::MockVersions"]],["impl<'a> Unpin for Transaction<'a>",1,["hotshot_query_service::data_source::storage::no_storage::Transaction"]],["impl<'a, T> Unpin for Transaction<'a, T>
    where\n T: Unpin,
    ",1,["hotshot_query_service::data_source::storage::no_storage::testing::Transaction"]],["impl<'q> Unpin for QueryBuilder<'q>",1,["hotshot_query_service::data_source::storage::sql::queries::QueryBuilder"]],["impl<D> Unpin for ApiState<D>",1,["hotshot_query_service::ApiState"]],["impl<D> Unpin for MockNetwork<D>
    where\n D: Unpin,\n <D as DataSourceLifeCycle>::Storage: Unpin,
    ",1,["hotshot_query_service::testing::consensus::MockNetwork"]],["impl<D, U> Unpin for ExtensibleDataSource<D, U>
    where\n D: Unpin,\n U: Unpin,
    ",1,["hotshot_query_service::data_source::extension::ExtensibleDataSource"]],["impl<Mode> Unpin for Transaction<Mode>
    where\n Mode: Unpin,
    ",1,["hotshot_query_service::data_source::storage::sql::transaction::Transaction"]],["impl<P> Unpin for TestProvider<P>",1,["hotshot_query_service::fetching::provider::testing::TestProvider"]],["impl<S> Unpin for FailStorage<S>
    where\n S: Unpin,
    ",1,["hotshot_query_service::data_source::storage::fail_storage::FailStorage"]],["impl<T> Unpin for Fetch<T>
    where\n T: Unpin,
    ",1,["hotshot_query_service::availability::fetch::Fetch"]],["impl<T> Unpin for Transaction<T>
    where\n T: Unpin,
    ",1,["hotshot_query_service::data_source::storage::fail_storage::Transaction"]],["impl<T> Unpin for Transaction<T>
    where\n T: Unpin,
    ",1,["hotshot_query_service::data_source::storage::fs::Transaction"]],["impl<T> Unpin for TimeWindowQueryData<T>
    where\n T: Unpin,
    ",1,["hotshot_query_service::node::query_data::TimeWindowQueryData"]],["impl<T> Unpin for Task<T>",1,["hotshot_query_service::task::Task"]],["impl<T, C> Unpin for Fetcher<T, C>",1,["hotshot_query_service::fetching::Fetcher"]],["impl<Types> Unpin for BlockId<Types>",1,["hotshot_query_service::availability::data_source::BlockId"]],["impl<Types> Unpin for LeafId<Types>",1,["hotshot_query_service::availability::data_source::LeafId"]],["impl<Types> Unpin for BlockIdentifier<Types>",1,["hotshot_query_service::explorer::query_data::BlockIdentifier"]],["impl<Types> Unpin for TransactionIdentifier<Types>",1,["hotshot_query_service::explorer::query_data::TransactionIdentifier"]],["impl<Types> Unpin for WindowStart<Types>",1,["hotshot_query_service::node::data_source::WindowStart"]],["impl<Types> Unpin for BlockInfo<Types>
    where\n <Types as NodeType>::View: Unpin,\n <Types as NodeType>::BlockHeader: Unpin,\n <Types as NodeType>::BlockPayload: Unpin,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QcType: Unpin,\n Types: Unpin,
    ",1,["hotshot_query_service::availability::data_source::BlockInfo"]],["impl<Types> Unpin for BlockQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: Unpin,\n <Types as NodeType>::BlockPayload: Unpin,
    ",1,["hotshot_query_service::availability::query_data::BlockQueryData"]],["impl<Types> Unpin for BlockSummaryQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: Unpin,
    ",1,["hotshot_query_service::availability::query_data::BlockSummaryQueryData"]],["impl<Types> Unpin for InconsistentLeafError<Types>",1,["hotshot_query_service::availability::query_data::InconsistentLeafError"]],["impl<Types> Unpin for LeafQueryData<Types>
    where\n <Types as NodeType>::View: Unpin,\n <Types as NodeType>::BlockHeader: Unpin,\n <Types as NodeType>::BlockPayload: Unpin,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QcType: Unpin,\n Types: Unpin,
    ",1,["hotshot_query_service::availability::query_data::LeafQueryData"]],["impl<Types> Unpin for PayloadMetadata<Types>",1,["hotshot_query_service::availability::query_data::PayloadMetadata"]],["impl<Types> Unpin for PayloadQueryData<Types>
    where\n <Types as NodeType>::BlockPayload: Unpin,
    ",1,["hotshot_query_service::availability::query_data::PayloadQueryData"]],["impl<Types> Unpin for TransactionQueryData<Types>
    where\n <Types as NodeType>::BlockPayload: for<'de> Sized,\n <Types as NodeType>::Transaction: Unpin,\n <<Types as NodeType>::BlockPayload as QueryablePayload<Types>>::InclusionProof: Unpin,
    ",1,["hotshot_query_service::availability::query_data::TransactionQueryData"]],["impl<Types> Unpin for TransactionSummaryQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: Unpin,\n <Types as NodeType>::Transaction: Unpin,
    ",1,["hotshot_query_service::availability::query_data::TransactionSummaryQueryData"]],["impl<Types> Unpin for VidCommonMetadata<Types>",1,["hotshot_query_service::availability::query_data::VidCommonMetadata"]],["impl<Types> Unpin for VidCommonQueryData<Types>",1,["hotshot_query_service::availability::query_data::VidCommonQueryData"]],["impl<Types> Unpin for FileSystemStorage<Types>
    where\n <Types as NodeType>::BlockPayload: for<'de> Sized + Unpin,\n <Types as NodeType>::BlockHeader: Unpin,\n <Types as NodeType>::View: Unpin,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QcType: Unpin,\n Types: Unpin,
    ",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorage"]],["impl<Types> Unpin for FileSystemStorageInner<Types>
    where\n <Types as NodeType>::BlockPayload: for<'de> Sized + Unpin,\n <Types as NodeType>::BlockHeader: Unpin,\n <Types as NodeType>::View: Unpin,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QcType: Unpin,\n Types: Unpin,
    ",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorageInner"]],["impl<Types> Unpin for BlockDetail<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: Unpin,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::WalletAddress: Unpin,
    ",1,["hotshot_query_service::explorer::query_data::BlockDetail"]],["impl<Types> Unpin for BlockDetailResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: Unpin,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::WalletAddress: Unpin,
    ",1,["hotshot_query_service::explorer::BlockDetailResponse"]],["impl<Types> Unpin for BlockRange<Types>",1,["hotshot_query_service::explorer::query_data::BlockRange"]],["impl<Types> Unpin for BlockSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: Unpin,
    ",1,["hotshot_query_service::explorer::query_data::BlockSummary"]],["impl<Types> Unpin for BlockSummaryResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: Unpin,
    ",1,["hotshot_query_service::explorer::BlockSummaryResponse"]],["impl<Types> Unpin for ExplorerSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: Unpin,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::WalletAddress: Unpin,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: Unpin,
    ",1,["hotshot_query_service::explorer::query_data::ExplorerSummary"]],["impl<Types> Unpin for ExplorerSummaryResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: Unpin,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::WalletAddress: Unpin,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: Unpin,
    ",1,["hotshot_query_service::explorer::ExplorerSummaryResponse"]],["impl<Types> Unpin for GetBlockSummariesRequest<Types>",1,["hotshot_query_service::explorer::query_data::GetBlockSummariesRequest"]],["impl<Types> Unpin for GetTransactionSummariesRequest<Types>",1,["hotshot_query_service::explorer::query_data::GetTransactionSummariesRequest"]],["impl<Types> Unpin for SearchResult<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: Unpin,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: Unpin,
    ",1,["hotshot_query_service::explorer::query_data::SearchResult"]],["impl<Types> Unpin for SearchResultResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: Unpin,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: Unpin,
    ",1,["hotshot_query_service::explorer::SearchResultResponse"]],["impl<Types> Unpin for TransactionDetail<Types>",1,["hotshot_query_service::explorer::query_data::TransactionDetail"]],["impl<Types> Unpin for TransactionDetailResponse<Types>
    where\n <Types as NodeType>::Transaction: Unpin,
    ",1,["hotshot_query_service::explorer::TransactionDetailResponse"]],["impl<Types> Unpin for TransactionRange<Types>",1,["hotshot_query_service::explorer::query_data::TransactionRange"]],["impl<Types> Unpin for TransactionSummariesResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: Unpin,
    ",1,["hotshot_query_service::explorer::TransactionSummariesResponse"]],["impl<Types> Unpin for TransactionSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: Unpin,
    ",1,["hotshot_query_service::explorer::query_data::TransactionSummary"]],["impl<Types> Unpin for AnyProvider<Types>",1,["hotshot_query_service::fetching::provider::any::AnyProvider"]],["impl<Types, S, P> Unpin for Builder<Types, S, P>
    where\n S: Unpin,\n P: Unpin,\n Types: Unpin,
    ",1,["hotshot_query_service::data_source::fetching::Builder"]],["impl<Types, S, P> Unpin for FetchingDataSource<Types, S, P>
    where\n Types: Unpin,\n S: Unpin,\n P: Unpin,
    ",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["impl<Types, S, P> Unpin for Pruner<Types, S, P>
    where\n Types: Unpin,\n S: Unpin,\n P: Unpin,
    ",1,["hotshot_query_service::data_source::fetching::Pruner"]],["impl<Types, T, const ARITY: usize> Unpin for Snapshot<Types, T, ARITY>
    where\n <T as MerklizedState<Types, ARITY>>::Commit: Unpin,
    ",1,["hotshot_query_service::merklized_state::data_source::Snapshot"]],["impl<Ver> Unpin for QueryServiceProvider<Ver>",1,["hotshot_query_service::fetching::provider::query_service::QueryServiceProvider"]],["impl<__T0> Unpin for FetchBlockSnafu<__T0>
    where\n __T0: Unpin,
    ",1,["hotshot_query_service::availability::FetchBlockSnafu"]],["impl<__T0> Unpin for FetchLeafSnafu<__T0>
    where\n __T0: Unpin,
    ",1,["hotshot_query_service::availability::FetchLeafSnafu"]],["impl<__T0> Unpin for FetchTransactionSnafu<__T0>
    where\n __T0: Unpin,
    ",1,["hotshot_query_service::availability::FetchTransactionSnafu"]],["impl<__T0> Unpin for QueryVidSnafu<__T0>
    where\n __T0: Unpin,
    ",1,["hotshot_query_service::node::QueryVidSnafu"]],["impl<__T0> Unpin for ErrorSnafu<__T0>
    where\n __T0: Unpin,
    ",1,["hotshot_query_service::ErrorSnafu"]],["impl<__T0, __T1> Unpin for CustomSnafu<__T0, __T1>
    where\n __T0: Unpin,\n __T1: Unpin,
    ",1,["hotshot_query_service::availability::CustomSnafu"]],["impl<__T0, __T1> Unpin for InvalidTransactionIndexSnafu<__T0, __T1>
    where\n __T0: Unpin,\n __T1: Unpin,
    ",1,["hotshot_query_service::availability::InvalidTransactionIndexSnafu"]],["impl<__T0, __T1> Unpin for CustomSnafu<__T0, __T1>
    where\n __T0: Unpin,\n __T1: Unpin,
    ",1,["hotshot_query_service::node::CustomSnafu"]],["impl<__T0, __T1> Unpin for QueryWindowSnafu<__T0, __T1>
    where\n __T0: Unpin,\n __T1: Unpin,
    ",1,["hotshot_query_service::node::QueryWindowSnafu"]]]]]); if (window.register_implementors) { window.register_implementors(implementors); } else { window.pending_implementors = implementors; } })() -//{"start":57,"fragment_lengths":[76801]} \ No newline at end of file +//{"start":57,"fragment_lengths":[77665]} \ No newline at end of file diff --git a/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js b/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js index bfb07ff5f..0394356a1 100644 --- a/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js +++ b/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js @@ -1,9 +1,9 @@ (function() { - var implementors = Object.fromEntries([["hotshot_query_service",[["impl !RefUnwindSafe for DataSource",1,["hotshot_query_service::data_source::storage::no_storage::testing::DataSource"]],["impl !RefUnwindSafe for MetricsError",1,["hotshot_query_service::metrics::MetricsError"]],["impl !RefUnwindSafe for NoStorage",1,["hotshot_query_service::data_source::storage::no_storage::NoStorage"]],["impl !RefUnwindSafe for Config",1,["hotshot_query_service::data_source::storage::sql::Config"]],["impl !RefUnwindSafe for SqlStorage",1,["hotshot_query_service::data_source::storage::sql::SqlStorage"]],["impl !RefUnwindSafe for MetricsDataSource",1,["hotshot_query_service::data_source::metrics::MetricsDataSource"]],["impl !RefUnwindSafe for CounterFamily",1,["hotshot_query_service::metrics::CounterFamily"]],["impl !RefUnwindSafe for GaugeFamily",1,["hotshot_query_service::metrics::GaugeFamily"]],["impl !RefUnwindSafe for HistogramFamily",1,["hotshot_query_service::metrics::HistogramFamily"]],["impl !RefUnwindSafe for PrometheusMetrics",1,["hotshot_query_service::metrics::PrometheusMetrics"]],["impl !RefUnwindSafe for TextFamily",1,["hotshot_query_service::metrics::TextFamily"]],["impl RefUnwindSafe for Error",1,["hotshot_query_service::availability::Error"]],["impl RefUnwindSafe for FailableAction",1,["hotshot_query_service::data_source::storage::fail_storage::FailableAction"]],["impl RefUnwindSafe for Storage",1,["hotshot_query_service::data_source::storage::no_storage::testing::Storage"]],["impl RefUnwindSafe for Error",1,["hotshot_query_service::error::Error"]],["impl RefUnwindSafe for QueryError",1,["hotshot_query_service::QueryError"]],["impl RefUnwindSafe for CurrencyCode",1,["hotshot_query_service::explorer::currency::CurrencyCode"]],["impl RefUnwindSafe for Error",1,["hotshot_query_service::explorer::Error"]],["impl RefUnwindSafe for GetBlockDetailError",1,["hotshot_query_service::explorer::query_data::GetBlockDetailError"]],["impl RefUnwindSafe for GetBlockSummariesError",1,["hotshot_query_service::explorer::query_data::GetBlockSummariesError"]],["impl RefUnwindSafe for GetExplorerSummaryError",1,["hotshot_query_service::explorer::query_data::GetExplorerSummaryError"]],["impl RefUnwindSafe for GetSearchResultsError",1,["hotshot_query_service::explorer::query_data::GetSearchResultsError"]],["impl RefUnwindSafe for GetTransactionDetailError",1,["hotshot_query_service::explorer::query_data::GetTransactionDetailError"]],["impl RefUnwindSafe for GetTransactionSummariesError",1,["hotshot_query_service::explorer::query_data::GetTransactionSummariesError"]],["impl RefUnwindSafe for TimestampConversionError",1,["hotshot_query_service::explorer::query_data::TimestampConversionError"]],["impl RefUnwindSafe for TransactionSummaryFilter",1,["hotshot_query_service::explorer::query_data::TransactionSummaryFilter"]],["impl RefUnwindSafe for Error",1,["hotshot_query_service::merklized_state::Error"]],["impl RefUnwindSafe for Error",1,["hotshot_query_service::node::Error"]],["impl RefUnwindSafe for Error",1,["hotshot_query_service::status::Error"]],["impl RefUnwindSafe for Options",1,["hotshot_query_service::availability::Options"]],["impl RefUnwindSafe for RequestSnafu",1,["hotshot_query_service::availability::RequestSnafu"]],["impl RefUnwindSafe for PrunerCfg",1,["hotshot_query_service::data_source::storage::pruning::PrunerCfg"]],["impl RefUnwindSafe for Pruner",1,["hotshot_query_service::data_source::storage::sql::Pruner"]],["impl RefUnwindSafe for Read",1,["hotshot_query_service::data_source::storage::sql::transaction::Read"]],["impl RefUnwindSafe for Write",1,["hotshot_query_service::data_source::storage::sql::transaction::Write"]],["impl RefUnwindSafe for TestMerkleTreeMigration",1,["hotshot_query_service::data_source::storage::sql::testing::TestMerkleTreeMigration"]],["impl RefUnwindSafe for TmpDb",1,["hotshot_query_service::data_source::storage::sql::testing::TmpDb"]],["impl RefUnwindSafe for CurrencyMismatchError",1,["hotshot_query_service::explorer::currency::CurrencyMismatchError"]],["impl RefUnwindSafe for ExplorerHistograms",1,["hotshot_query_service::explorer::query_data::ExplorerHistograms"]],["impl RefUnwindSafe for FeeAttribution",1,["hotshot_query_service::explorer::query_data::FeeAttribution"]],["impl RefUnwindSafe for GenesisOverview",1,["hotshot_query_service::explorer::query_data::GenesisOverview"]],["impl RefUnwindSafe for InvalidCurrencyCodeError",1,["hotshot_query_service::explorer::currency::InvalidCurrencyCodeError"]],["impl RefUnwindSafe for MonetaryValue",1,["hotshot_query_service::explorer::monetary_value::MonetaryValue"]],["impl RefUnwindSafe for Timestamp",1,["hotshot_query_service::explorer::query_data::Timestamp"]],["impl RefUnwindSafe for NoFetching",1,["hotshot_query_service::fetching::provider::NoFetching"]],["impl RefUnwindSafe for LeafRequest",1,["hotshot_query_service::fetching::request::LeafRequest"]],["impl RefUnwindSafe for PayloadRequest",1,["hotshot_query_service::fetching::request::PayloadRequest"]],["impl RefUnwindSafe for VidCommonRequest",1,["hotshot_query_service::fetching::request::VidCommonRequest"]],["impl RefUnwindSafe for Options",1,["hotshot_query_service::merklized_state::Options"]],["impl RefUnwindSafe for Counter",1,["hotshot_query_service::metrics::Counter"]],["impl RefUnwindSafe for Gauge",1,["hotshot_query_service::metrics::Gauge"]],["impl RefUnwindSafe for Histogram",1,["hotshot_query_service::metrics::Histogram"]],["impl RefUnwindSafe for Options",1,["hotshot_query_service::node::Options"]],["impl RefUnwindSafe for QuerySnafu",1,["hotshot_query_service::node::QuerySnafu"]],["impl RefUnwindSafe for RequestSnafu",1,["hotshot_query_service::node::RequestSnafu"]],["impl RefUnwindSafe for SyncStatus",1,["hotshot_query_service::node::query_data::SyncStatus"]],["impl RefUnwindSafe for Options",1,["hotshot_query_service::status::Options"]],["impl RefUnwindSafe for MissingSnafu",1,["hotshot_query_service::MissingSnafu"]],["impl RefUnwindSafe for NotFoundSnafu",1,["hotshot_query_service::NotFoundSnafu"]],["impl RefUnwindSafe for Options",1,["hotshot_query_service::Options"]],["impl RefUnwindSafe for BackgroundTask",1,["hotshot_query_service::task::BackgroundTask"]],["impl RefUnwindSafe for MockNodeImpl",1,["hotshot_query_service::testing::mocks::MockNodeImpl"]],["impl RefUnwindSafe for MockTypes",1,["hotshot_query_service::testing::mocks::MockTypes"]],["impl RefUnwindSafe for MockVersions",1,["hotshot_query_service::testing::mocks::MockVersions"]],["impl<'a> !RefUnwindSafe for Transaction<'a>",1,["hotshot_query_service::data_source::storage::no_storage::Transaction"]],["impl<'a, T> !RefUnwindSafe for Transaction<'a, T>",1,["hotshot_query_service::data_source::storage::no_storage::testing::Transaction"]],["impl<'q> !RefUnwindSafe for QueryBuilder<'q>",1,["hotshot_query_service::data_source::storage::sql::queries::QueryBuilder"]],["impl<D> !RefUnwindSafe for MockNetwork<D>",1,["hotshot_query_service::testing::consensus::MockNetwork"]],["impl<D> RefUnwindSafe for ApiState<D>
    where\n D: RefUnwindSafe,
    ",1,["hotshot_query_service::ApiState"]],["impl<D, U> RefUnwindSafe for ExtensibleDataSource<D, U>
    where\n D: RefUnwindSafe,\n U: RefUnwindSafe,
    ",1,["hotshot_query_service::data_source::extension::ExtensibleDataSource"]],["impl<Mode> !RefUnwindSafe for Transaction<Mode>",1,["hotshot_query_service::data_source::storage::sql::transaction::Transaction"]],["impl<P> !RefUnwindSafe for TestProvider<P>",1,["hotshot_query_service::fetching::provider::testing::TestProvider"]],["impl<S> !RefUnwindSafe for FailStorage<S>",1,["hotshot_query_service::data_source::storage::fail_storage::FailStorage"]],["impl<T> !RefUnwindSafe for Fetch<T>",1,["hotshot_query_service::availability::fetch::Fetch"]],["impl<T> !RefUnwindSafe for Transaction<T>",1,["hotshot_query_service::data_source::storage::fail_storage::Transaction"]],["impl<T> RefUnwindSafe for Transaction<T>
    where\n T: RefUnwindSafe,
    ",1,["hotshot_query_service::data_source::storage::fs::Transaction"]],["impl<T> RefUnwindSafe for TimeWindowQueryData<T>
    where\n T: RefUnwindSafe,
    ",1,["hotshot_query_service::node::query_data::TimeWindowQueryData"]],["impl<T> RefUnwindSafe for Task<T>",1,["hotshot_query_service::task::Task"]],["impl<T, C> !RefUnwindSafe for Fetcher<T, C>",1,["hotshot_query_service::fetching::Fetcher"]],["impl<Types> !RefUnwindSafe for FileSystemStorage<Types>",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorage"]],["impl<Types> !RefUnwindSafe for AnyProvider<Types>",1,["hotshot_query_service::fetching::provider::any::AnyProvider"]],["impl<Types> RefUnwindSafe for BlockId<Types>",1,["hotshot_query_service::availability::data_source::BlockId"]],["impl<Types> RefUnwindSafe for LeafId<Types>",1,["hotshot_query_service::availability::data_source::LeafId"]],["impl<Types> RefUnwindSafe for BlockIdentifier<Types>",1,["hotshot_query_service::explorer::query_data::BlockIdentifier"]],["impl<Types> RefUnwindSafe for TransactionIdentifier<Types>",1,["hotshot_query_service::explorer::query_data::TransactionIdentifier"]],["impl<Types> RefUnwindSafe for WindowStart<Types>",1,["hotshot_query_service::node::data_source::WindowStart"]],["impl<Types> RefUnwindSafe for BlockInfo<Types>
    where\n <Types as NodeType>::View: RefUnwindSafe,\n <Types as NodeType>::BlockHeader: RefUnwindSafe,\n <Types as NodeType>::BlockPayload: RefUnwindSafe,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QcType: RefUnwindSafe,\n Types: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::data_source::BlockInfo"]],["impl<Types> RefUnwindSafe for BlockQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: RefUnwindSafe,\n <Types as NodeType>::BlockPayload: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::BlockQueryData"]],["impl<Types> RefUnwindSafe for BlockSummaryQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::BlockSummaryQueryData"]],["impl<Types> RefUnwindSafe for InconsistentLeafError<Types>",1,["hotshot_query_service::availability::query_data::InconsistentLeafError"]],["impl<Types> RefUnwindSafe for LeafQueryData<Types>
    where\n <Types as NodeType>::View: RefUnwindSafe,\n <Types as NodeType>::BlockHeader: RefUnwindSafe,\n <Types as NodeType>::BlockPayload: RefUnwindSafe,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QcType: RefUnwindSafe,\n Types: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::LeafQueryData"]],["impl<Types> RefUnwindSafe for PayloadQueryData<Types>
    where\n <Types as NodeType>::BlockPayload: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::PayloadQueryData"]],["impl<Types> RefUnwindSafe for TransactionQueryData<Types>
    where\n <Types as NodeType>::BlockPayload: for<'de> Sized,\n <Types as NodeType>::Transaction: RefUnwindSafe,\n <<Types as NodeType>::BlockPayload as QueryablePayload<Types>>::InclusionProof: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::TransactionQueryData"]],["impl<Types> RefUnwindSafe for TransactionSummaryQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: RefUnwindSafe,\n <Types as NodeType>::Transaction: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::TransactionSummaryQueryData"]],["impl<Types> RefUnwindSafe for VidCommonQueryData<Types>",1,["hotshot_query_service::availability::query_data::VidCommonQueryData"]],["impl<Types> RefUnwindSafe for FileSystemStorageInner<Types>
    where\n <Types as NodeType>::BlockPayload: for<'de> Sized + RefUnwindSafe,\n <Types as NodeType>::BlockHeader: RefUnwindSafe,\n <Types as NodeType>::View: RefUnwindSafe,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QcType: RefUnwindSafe,\n Types: RefUnwindSafe,
    ",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorageInner"]],["impl<Types> RefUnwindSafe for BlockDetail<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: RefUnwindSafe,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::WalletAddress: RefUnwindSafe,
    ",1,["hotshot_query_service::explorer::query_data::BlockDetail"]],["impl<Types> RefUnwindSafe for BlockDetailResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: RefUnwindSafe,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::WalletAddress: RefUnwindSafe,
    ",1,["hotshot_query_service::explorer::BlockDetailResponse"]],["impl<Types> RefUnwindSafe for BlockRange<Types>",1,["hotshot_query_service::explorer::query_data::BlockRange"]],["impl<Types> RefUnwindSafe for BlockSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: RefUnwindSafe,
    ",1,["hotshot_query_service::explorer::query_data::BlockSummary"]],["impl<Types> RefUnwindSafe for BlockSummaryResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: RefUnwindSafe,
    ",1,["hotshot_query_service::explorer::BlockSummaryResponse"]],["impl<Types> RefUnwindSafe for ExplorerSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: RefUnwindSafe,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::WalletAddress: RefUnwindSafe,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: RefUnwindSafe,
    ",1,["hotshot_query_service::explorer::query_data::ExplorerSummary"]],["impl<Types> RefUnwindSafe for ExplorerSummaryResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: RefUnwindSafe,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::WalletAddress: RefUnwindSafe,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: RefUnwindSafe,
    ",1,["hotshot_query_service::explorer::ExplorerSummaryResponse"]],["impl<Types> RefUnwindSafe for GetBlockSummariesRequest<Types>",1,["hotshot_query_service::explorer::query_data::GetBlockSummariesRequest"]],["impl<Types> RefUnwindSafe for GetTransactionSummariesRequest<Types>",1,["hotshot_query_service::explorer::query_data::GetTransactionSummariesRequest"]],["impl<Types> RefUnwindSafe for SearchResult<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: RefUnwindSafe,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: RefUnwindSafe,
    ",1,["hotshot_query_service::explorer::query_data::SearchResult"]],["impl<Types> RefUnwindSafe for SearchResultResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: RefUnwindSafe,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: RefUnwindSafe,
    ",1,["hotshot_query_service::explorer::SearchResultResponse"]],["impl<Types> RefUnwindSafe for TransactionDetail<Types>",1,["hotshot_query_service::explorer::query_data::TransactionDetail"]],["impl<Types> RefUnwindSafe for TransactionDetailResponse<Types>
    where\n <Types as NodeType>::Transaction: RefUnwindSafe,
    ",1,["hotshot_query_service::explorer::TransactionDetailResponse"]],["impl<Types> RefUnwindSafe for TransactionRange<Types>",1,["hotshot_query_service::explorer::query_data::TransactionRange"]],["impl<Types> RefUnwindSafe for TransactionSummariesResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: RefUnwindSafe,
    ",1,["hotshot_query_service::explorer::TransactionSummariesResponse"]],["impl<Types> RefUnwindSafe for TransactionSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: RefUnwindSafe,
    ",1,["hotshot_query_service::explorer::query_data::TransactionSummary"]],["impl<Types, S, P> !RefUnwindSafe for FetchingDataSource<Types, S, P>",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["impl<Types, S, P> RefUnwindSafe for Builder<Types, S, P>
    where\n S: RefUnwindSafe,\n P: RefUnwindSafe,\n Types: RefUnwindSafe,
    ",1,["hotshot_query_service::data_source::fetching::Builder"]],["impl<Types, S, P> RefUnwindSafe for Pruner<Types, S, P>
    where\n Types: RefUnwindSafe,\n S: RefUnwindSafe,\n P: RefUnwindSafe,
    ",1,["hotshot_query_service::data_source::fetching::Pruner"]],["impl<Types, T, const ARITY: usize> RefUnwindSafe for Snapshot<Types, T, ARITY>
    where\n <T as MerklizedState<Types, ARITY>>::Commit: RefUnwindSafe,
    ",1,["hotshot_query_service::merklized_state::data_source::Snapshot"]],["impl<Ver> !RefUnwindSafe for QueryServiceProvider<Ver>",1,["hotshot_query_service::fetching::provider::query_service::QueryServiceProvider"]],["impl<__T0> RefUnwindSafe for FetchBlockSnafu<__T0>
    where\n __T0: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::FetchBlockSnafu"]],["impl<__T0> RefUnwindSafe for FetchLeafSnafu<__T0>
    where\n __T0: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::FetchLeafSnafu"]],["impl<__T0> RefUnwindSafe for FetchTransactionSnafu<__T0>
    where\n __T0: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::FetchTransactionSnafu"]],["impl<__T0> RefUnwindSafe for QueryVidSnafu<__T0>
    where\n __T0: RefUnwindSafe,
    ",1,["hotshot_query_service::node::QueryVidSnafu"]],["impl<__T0> RefUnwindSafe for ErrorSnafu<__T0>
    where\n __T0: RefUnwindSafe,
    ",1,["hotshot_query_service::ErrorSnafu"]],["impl<__T0, __T1> RefUnwindSafe for CustomSnafu<__T0, __T1>
    where\n __T0: RefUnwindSafe,\n __T1: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::CustomSnafu"]],["impl<__T0, __T1> RefUnwindSafe for InvalidTransactionIndexSnafu<__T0, __T1>
    where\n __T0: RefUnwindSafe,\n __T1: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::InvalidTransactionIndexSnafu"]],["impl<__T0, __T1> RefUnwindSafe for CustomSnafu<__T0, __T1>
    where\n __T0: RefUnwindSafe,\n __T1: RefUnwindSafe,
    ",1,["hotshot_query_service::node::CustomSnafu"]],["impl<__T0, __T1> RefUnwindSafe for QueryWindowSnafu<__T0, __T1>
    where\n __T0: RefUnwindSafe,\n __T1: RefUnwindSafe,
    ",1,["hotshot_query_service::node::QueryWindowSnafu"]]]]]); + var implementors = Object.fromEntries([["hotshot_query_service",[["impl !RefUnwindSafe for DataSource",1,["hotshot_query_service::data_source::storage::no_storage::testing::DataSource"]],["impl !RefUnwindSafe for MetricsError",1,["hotshot_query_service::metrics::MetricsError"]],["impl !RefUnwindSafe for NoStorage",1,["hotshot_query_service::data_source::storage::no_storage::NoStorage"]],["impl !RefUnwindSafe for Config",1,["hotshot_query_service::data_source::storage::sql::Config"]],["impl !RefUnwindSafe for SqlStorage",1,["hotshot_query_service::data_source::storage::sql::SqlStorage"]],["impl !RefUnwindSafe for MetricsDataSource",1,["hotshot_query_service::data_source::metrics::MetricsDataSource"]],["impl !RefUnwindSafe for CounterFamily",1,["hotshot_query_service::metrics::CounterFamily"]],["impl !RefUnwindSafe for GaugeFamily",1,["hotshot_query_service::metrics::GaugeFamily"]],["impl !RefUnwindSafe for HistogramFamily",1,["hotshot_query_service::metrics::HistogramFamily"]],["impl !RefUnwindSafe for PrometheusMetrics",1,["hotshot_query_service::metrics::PrometheusMetrics"]],["impl !RefUnwindSafe for TextFamily",1,["hotshot_query_service::metrics::TextFamily"]],["impl RefUnwindSafe for Error",1,["hotshot_query_service::availability::Error"]],["impl RefUnwindSafe for FailableAction",1,["hotshot_query_service::data_source::storage::fail_storage::FailableAction"]],["impl RefUnwindSafe for Storage",1,["hotshot_query_service::data_source::storage::no_storage::testing::Storage"]],["impl RefUnwindSafe for Error",1,["hotshot_query_service::error::Error"]],["impl RefUnwindSafe for QueryError",1,["hotshot_query_service::QueryError"]],["impl RefUnwindSafe for CurrencyCode",1,["hotshot_query_service::explorer::currency::CurrencyCode"]],["impl RefUnwindSafe for Error",1,["hotshot_query_service::explorer::Error"]],["impl RefUnwindSafe for GetBlockDetailError",1,["hotshot_query_service::explorer::query_data::GetBlockDetailError"]],["impl RefUnwindSafe for GetBlockSummariesError",1,["hotshot_query_service::explorer::query_data::GetBlockSummariesError"]],["impl RefUnwindSafe for GetExplorerSummaryError",1,["hotshot_query_service::explorer::query_data::GetExplorerSummaryError"]],["impl RefUnwindSafe for GetSearchResultsError",1,["hotshot_query_service::explorer::query_data::GetSearchResultsError"]],["impl RefUnwindSafe for GetTransactionDetailError",1,["hotshot_query_service::explorer::query_data::GetTransactionDetailError"]],["impl RefUnwindSafe for GetTransactionSummariesError",1,["hotshot_query_service::explorer::query_data::GetTransactionSummariesError"]],["impl RefUnwindSafe for TimestampConversionError",1,["hotshot_query_service::explorer::query_data::TimestampConversionError"]],["impl RefUnwindSafe for TransactionSummaryFilter",1,["hotshot_query_service::explorer::query_data::TransactionSummaryFilter"]],["impl RefUnwindSafe for Error",1,["hotshot_query_service::merklized_state::Error"]],["impl RefUnwindSafe for Error",1,["hotshot_query_service::node::Error"]],["impl RefUnwindSafe for Error",1,["hotshot_query_service::status::Error"]],["impl RefUnwindSafe for Options",1,["hotshot_query_service::availability::Options"]],["impl RefUnwindSafe for RequestSnafu",1,["hotshot_query_service::availability::RequestSnafu"]],["impl RefUnwindSafe for PrunerCfg",1,["hotshot_query_service::data_source::storage::pruning::PrunerCfg"]],["impl RefUnwindSafe for Pruner",1,["hotshot_query_service::data_source::storage::sql::Pruner"]],["impl RefUnwindSafe for Read",1,["hotshot_query_service::data_source::storage::sql::transaction::Read"]],["impl RefUnwindSafe for Write",1,["hotshot_query_service::data_source::storage::sql::transaction::Write"]],["impl RefUnwindSafe for TestMerkleTreeMigration",1,["hotshot_query_service::data_source::storage::sql::testing::TestMerkleTreeMigration"]],["impl RefUnwindSafe for TmpDb",1,["hotshot_query_service::data_source::storage::sql::testing::TmpDb"]],["impl RefUnwindSafe for CurrencyMismatchError",1,["hotshot_query_service::explorer::currency::CurrencyMismatchError"]],["impl RefUnwindSafe for ExplorerHistograms",1,["hotshot_query_service::explorer::query_data::ExplorerHistograms"]],["impl RefUnwindSafe for FeeAttribution",1,["hotshot_query_service::explorer::query_data::FeeAttribution"]],["impl RefUnwindSafe for GenesisOverview",1,["hotshot_query_service::explorer::query_data::GenesisOverview"]],["impl RefUnwindSafe for InvalidCurrencyCodeError",1,["hotshot_query_service::explorer::currency::InvalidCurrencyCodeError"]],["impl RefUnwindSafe for MonetaryValue",1,["hotshot_query_service::explorer::monetary_value::MonetaryValue"]],["impl RefUnwindSafe for Timestamp",1,["hotshot_query_service::explorer::query_data::Timestamp"]],["impl RefUnwindSafe for NoFetching",1,["hotshot_query_service::fetching::provider::NoFetching"]],["impl RefUnwindSafe for LeafRequest",1,["hotshot_query_service::fetching::request::LeafRequest"]],["impl RefUnwindSafe for PayloadRequest",1,["hotshot_query_service::fetching::request::PayloadRequest"]],["impl RefUnwindSafe for VidCommonRequest",1,["hotshot_query_service::fetching::request::VidCommonRequest"]],["impl RefUnwindSafe for Options",1,["hotshot_query_service::merklized_state::Options"]],["impl RefUnwindSafe for Counter",1,["hotshot_query_service::metrics::Counter"]],["impl RefUnwindSafe for Gauge",1,["hotshot_query_service::metrics::Gauge"]],["impl RefUnwindSafe for Histogram",1,["hotshot_query_service::metrics::Histogram"]],["impl RefUnwindSafe for Options",1,["hotshot_query_service::node::Options"]],["impl RefUnwindSafe for QuerySnafu",1,["hotshot_query_service::node::QuerySnafu"]],["impl RefUnwindSafe for RequestSnafu",1,["hotshot_query_service::node::RequestSnafu"]],["impl RefUnwindSafe for SyncStatus",1,["hotshot_query_service::node::query_data::SyncStatus"]],["impl RefUnwindSafe for Options",1,["hotshot_query_service::status::Options"]],["impl RefUnwindSafe for MissingSnafu",1,["hotshot_query_service::MissingSnafu"]],["impl RefUnwindSafe for NotFoundSnafu",1,["hotshot_query_service::NotFoundSnafu"]],["impl RefUnwindSafe for Options",1,["hotshot_query_service::Options"]],["impl RefUnwindSafe for BackgroundTask",1,["hotshot_query_service::task::BackgroundTask"]],["impl RefUnwindSafe for MockNodeImpl",1,["hotshot_query_service::testing::mocks::MockNodeImpl"]],["impl RefUnwindSafe for MockTypes",1,["hotshot_query_service::testing::mocks::MockTypes"]],["impl RefUnwindSafe for MockVersions",1,["hotshot_query_service::testing::mocks::MockVersions"]],["impl<'a> !RefUnwindSafe for Transaction<'a>",1,["hotshot_query_service::data_source::storage::no_storage::Transaction"]],["impl<'a, T> !RefUnwindSafe for Transaction<'a, T>",1,["hotshot_query_service::data_source::storage::no_storage::testing::Transaction"]],["impl<'q> !RefUnwindSafe for QueryBuilder<'q>",1,["hotshot_query_service::data_source::storage::sql::queries::QueryBuilder"]],["impl<D> !RefUnwindSafe for MockNetwork<D>",1,["hotshot_query_service::testing::consensus::MockNetwork"]],["impl<D> RefUnwindSafe for ApiState<D>
    where\n D: RefUnwindSafe,
    ",1,["hotshot_query_service::ApiState"]],["impl<D, U> RefUnwindSafe for ExtensibleDataSource<D, U>
    where\n D: RefUnwindSafe,\n U: RefUnwindSafe,
    ",1,["hotshot_query_service::data_source::extension::ExtensibleDataSource"]],["impl<Mode> !RefUnwindSafe for Transaction<Mode>",1,["hotshot_query_service::data_source::storage::sql::transaction::Transaction"]],["impl<P> !RefUnwindSafe for TestProvider<P>",1,["hotshot_query_service::fetching::provider::testing::TestProvider"]],["impl<S> !RefUnwindSafe for FailStorage<S>",1,["hotshot_query_service::data_source::storage::fail_storage::FailStorage"]],["impl<T> !RefUnwindSafe for Fetch<T>",1,["hotshot_query_service::availability::fetch::Fetch"]],["impl<T> !RefUnwindSafe for Transaction<T>",1,["hotshot_query_service::data_source::storage::fail_storage::Transaction"]],["impl<T> RefUnwindSafe for Transaction<T>
    where\n T: RefUnwindSafe,
    ",1,["hotshot_query_service::data_source::storage::fs::Transaction"]],["impl<T> RefUnwindSafe for TimeWindowQueryData<T>
    where\n T: RefUnwindSafe,
    ",1,["hotshot_query_service::node::query_data::TimeWindowQueryData"]],["impl<T> RefUnwindSafe for Task<T>",1,["hotshot_query_service::task::Task"]],["impl<T, C> !RefUnwindSafe for Fetcher<T, C>",1,["hotshot_query_service::fetching::Fetcher"]],["impl<Types> !RefUnwindSafe for FileSystemStorage<Types>",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorage"]],["impl<Types> !RefUnwindSafe for AnyProvider<Types>",1,["hotshot_query_service::fetching::provider::any::AnyProvider"]],["impl<Types> RefUnwindSafe for BlockId<Types>",1,["hotshot_query_service::availability::data_source::BlockId"]],["impl<Types> RefUnwindSafe for LeafId<Types>",1,["hotshot_query_service::availability::data_source::LeafId"]],["impl<Types> RefUnwindSafe for BlockIdentifier<Types>",1,["hotshot_query_service::explorer::query_data::BlockIdentifier"]],["impl<Types> RefUnwindSafe for TransactionIdentifier<Types>",1,["hotshot_query_service::explorer::query_data::TransactionIdentifier"]],["impl<Types> RefUnwindSafe for WindowStart<Types>",1,["hotshot_query_service::node::data_source::WindowStart"]],["impl<Types> RefUnwindSafe for BlockInfo<Types>
    where\n <Types as NodeType>::View: RefUnwindSafe,\n <Types as NodeType>::BlockHeader: RefUnwindSafe,\n <Types as NodeType>::BlockPayload: RefUnwindSafe,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QcType: RefUnwindSafe,\n Types: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::data_source::BlockInfo"]],["impl<Types> RefUnwindSafe for BlockQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: RefUnwindSafe,\n <Types as NodeType>::BlockPayload: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::BlockQueryData"]],["impl<Types> RefUnwindSafe for BlockSummaryQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::BlockSummaryQueryData"]],["impl<Types> RefUnwindSafe for InconsistentLeafError<Types>",1,["hotshot_query_service::availability::query_data::InconsistentLeafError"]],["impl<Types> RefUnwindSafe for LeafQueryData<Types>
    where\n <Types as NodeType>::View: RefUnwindSafe,\n <Types as NodeType>::BlockHeader: RefUnwindSafe,\n <Types as NodeType>::BlockPayload: RefUnwindSafe,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QcType: RefUnwindSafe,\n Types: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::LeafQueryData"]],["impl<Types> RefUnwindSafe for PayloadMetadata<Types>",1,["hotshot_query_service::availability::query_data::PayloadMetadata"]],["impl<Types> RefUnwindSafe for PayloadQueryData<Types>
    where\n <Types as NodeType>::BlockPayload: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::PayloadQueryData"]],["impl<Types> RefUnwindSafe for TransactionQueryData<Types>
    where\n <Types as NodeType>::BlockPayload: for<'de> Sized,\n <Types as NodeType>::Transaction: RefUnwindSafe,\n <<Types as NodeType>::BlockPayload as QueryablePayload<Types>>::InclusionProof: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::TransactionQueryData"]],["impl<Types> RefUnwindSafe for TransactionSummaryQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: RefUnwindSafe,\n <Types as NodeType>::Transaction: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::TransactionSummaryQueryData"]],["impl<Types> RefUnwindSafe for VidCommonMetadata<Types>",1,["hotshot_query_service::availability::query_data::VidCommonMetadata"]],["impl<Types> RefUnwindSafe for VidCommonQueryData<Types>",1,["hotshot_query_service::availability::query_data::VidCommonQueryData"]],["impl<Types> RefUnwindSafe for FileSystemStorageInner<Types>
    where\n <Types as NodeType>::BlockPayload: for<'de> Sized + RefUnwindSafe,\n <Types as NodeType>::BlockHeader: RefUnwindSafe,\n <Types as NodeType>::View: RefUnwindSafe,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QcType: RefUnwindSafe,\n Types: RefUnwindSafe,
    ",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorageInner"]],["impl<Types> RefUnwindSafe for BlockDetail<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: RefUnwindSafe,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::WalletAddress: RefUnwindSafe,
    ",1,["hotshot_query_service::explorer::query_data::BlockDetail"]],["impl<Types> RefUnwindSafe for BlockDetailResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: RefUnwindSafe,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::WalletAddress: RefUnwindSafe,
    ",1,["hotshot_query_service::explorer::BlockDetailResponse"]],["impl<Types> RefUnwindSafe for BlockRange<Types>",1,["hotshot_query_service::explorer::query_data::BlockRange"]],["impl<Types> RefUnwindSafe for BlockSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: RefUnwindSafe,
    ",1,["hotshot_query_service::explorer::query_data::BlockSummary"]],["impl<Types> RefUnwindSafe for BlockSummaryResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: RefUnwindSafe,
    ",1,["hotshot_query_service::explorer::BlockSummaryResponse"]],["impl<Types> RefUnwindSafe for ExplorerSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: RefUnwindSafe,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::WalletAddress: RefUnwindSafe,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: RefUnwindSafe,
    ",1,["hotshot_query_service::explorer::query_data::ExplorerSummary"]],["impl<Types> RefUnwindSafe for ExplorerSummaryResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: RefUnwindSafe,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::WalletAddress: RefUnwindSafe,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: RefUnwindSafe,
    ",1,["hotshot_query_service::explorer::ExplorerSummaryResponse"]],["impl<Types> RefUnwindSafe for GetBlockSummariesRequest<Types>",1,["hotshot_query_service::explorer::query_data::GetBlockSummariesRequest"]],["impl<Types> RefUnwindSafe for GetTransactionSummariesRequest<Types>",1,["hotshot_query_service::explorer::query_data::GetTransactionSummariesRequest"]],["impl<Types> RefUnwindSafe for SearchResult<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: RefUnwindSafe,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: RefUnwindSafe,
    ",1,["hotshot_query_service::explorer::query_data::SearchResult"]],["impl<Types> RefUnwindSafe for SearchResultResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: RefUnwindSafe,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: RefUnwindSafe,
    ",1,["hotshot_query_service::explorer::SearchResultResponse"]],["impl<Types> RefUnwindSafe for TransactionDetail<Types>",1,["hotshot_query_service::explorer::query_data::TransactionDetail"]],["impl<Types> RefUnwindSafe for TransactionDetailResponse<Types>
    where\n <Types as NodeType>::Transaction: RefUnwindSafe,
    ",1,["hotshot_query_service::explorer::TransactionDetailResponse"]],["impl<Types> RefUnwindSafe for TransactionRange<Types>",1,["hotshot_query_service::explorer::query_data::TransactionRange"]],["impl<Types> RefUnwindSafe for TransactionSummariesResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: RefUnwindSafe,
    ",1,["hotshot_query_service::explorer::TransactionSummariesResponse"]],["impl<Types> RefUnwindSafe for TransactionSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: RefUnwindSafe,
    ",1,["hotshot_query_service::explorer::query_data::TransactionSummary"]],["impl<Types, S, P> !RefUnwindSafe for FetchingDataSource<Types, S, P>",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["impl<Types, S, P> RefUnwindSafe for Builder<Types, S, P>
    where\n S: RefUnwindSafe,\n P: RefUnwindSafe,\n Types: RefUnwindSafe,
    ",1,["hotshot_query_service::data_source::fetching::Builder"]],["impl<Types, S, P> RefUnwindSafe for Pruner<Types, S, P>
    where\n Types: RefUnwindSafe,\n S: RefUnwindSafe,\n P: RefUnwindSafe,
    ",1,["hotshot_query_service::data_source::fetching::Pruner"]],["impl<Types, T, const ARITY: usize> RefUnwindSafe for Snapshot<Types, T, ARITY>
    where\n <T as MerklizedState<Types, ARITY>>::Commit: RefUnwindSafe,
    ",1,["hotshot_query_service::merklized_state::data_source::Snapshot"]],["impl<Ver> !RefUnwindSafe for QueryServiceProvider<Ver>",1,["hotshot_query_service::fetching::provider::query_service::QueryServiceProvider"]],["impl<__T0> RefUnwindSafe for FetchBlockSnafu<__T0>
    where\n __T0: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::FetchBlockSnafu"]],["impl<__T0> RefUnwindSafe for FetchLeafSnafu<__T0>
    where\n __T0: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::FetchLeafSnafu"]],["impl<__T0> RefUnwindSafe for FetchTransactionSnafu<__T0>
    where\n __T0: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::FetchTransactionSnafu"]],["impl<__T0> RefUnwindSafe for QueryVidSnafu<__T0>
    where\n __T0: RefUnwindSafe,
    ",1,["hotshot_query_service::node::QueryVidSnafu"]],["impl<__T0> RefUnwindSafe for ErrorSnafu<__T0>
    where\n __T0: RefUnwindSafe,
    ",1,["hotshot_query_service::ErrorSnafu"]],["impl<__T0, __T1> RefUnwindSafe for CustomSnafu<__T0, __T1>
    where\n __T0: RefUnwindSafe,\n __T1: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::CustomSnafu"]],["impl<__T0, __T1> RefUnwindSafe for InvalidTransactionIndexSnafu<__T0, __T1>
    where\n __T0: RefUnwindSafe,\n __T1: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::InvalidTransactionIndexSnafu"]],["impl<__T0, __T1> RefUnwindSafe for CustomSnafu<__T0, __T1>
    where\n __T0: RefUnwindSafe,\n __T1: RefUnwindSafe,
    ",1,["hotshot_query_service::node::CustomSnafu"]],["impl<__T0, __T1> RefUnwindSafe for QueryWindowSnafu<__T0, __T1>
    where\n __T0: RefUnwindSafe,\n __T1: RefUnwindSafe,
    ",1,["hotshot_query_service::node::QueryWindowSnafu"]]]]]); if (window.register_implementors) { window.register_implementors(implementors); } else { window.pending_implementors = implementors; } })() -//{"start":57,"fragment_lengths":[82860]} \ No newline at end of file +//{"start":57,"fragment_lengths":[83818]} \ No newline at end of file diff --git a/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js b/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js index 413aa5a98..654b62d71 100644 --- a/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js +++ b/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js @@ -1,9 +1,9 @@ (function() { - var implementors = Object.fromEntries([["hotshot_query_service",[["impl !UnwindSafe for DataSource",1,["hotshot_query_service::data_source::storage::no_storage::testing::DataSource"]],["impl !UnwindSafe for MetricsError",1,["hotshot_query_service::metrics::MetricsError"]],["impl !UnwindSafe for NoStorage",1,["hotshot_query_service::data_source::storage::no_storage::NoStorage"]],["impl !UnwindSafe for Config",1,["hotshot_query_service::data_source::storage::sql::Config"]],["impl !UnwindSafe for SqlStorage",1,["hotshot_query_service::data_source::storage::sql::SqlStorage"]],["impl !UnwindSafe for MetricsDataSource",1,["hotshot_query_service::data_source::metrics::MetricsDataSource"]],["impl !UnwindSafe for CounterFamily",1,["hotshot_query_service::metrics::CounterFamily"]],["impl !UnwindSafe for GaugeFamily",1,["hotshot_query_service::metrics::GaugeFamily"]],["impl !UnwindSafe for HistogramFamily",1,["hotshot_query_service::metrics::HistogramFamily"]],["impl !UnwindSafe for PrometheusMetrics",1,["hotshot_query_service::metrics::PrometheusMetrics"]],["impl !UnwindSafe for TextFamily",1,["hotshot_query_service::metrics::TextFamily"]],["impl UnwindSafe for Error",1,["hotshot_query_service::availability::Error"]],["impl UnwindSafe for FailableAction",1,["hotshot_query_service::data_source::storage::fail_storage::FailableAction"]],["impl UnwindSafe for Storage",1,["hotshot_query_service::data_source::storage::no_storage::testing::Storage"]],["impl UnwindSafe for Error",1,["hotshot_query_service::error::Error"]],["impl UnwindSafe for QueryError",1,["hotshot_query_service::QueryError"]],["impl UnwindSafe for CurrencyCode",1,["hotshot_query_service::explorer::currency::CurrencyCode"]],["impl UnwindSafe for Error",1,["hotshot_query_service::explorer::Error"]],["impl UnwindSafe for GetBlockDetailError",1,["hotshot_query_service::explorer::query_data::GetBlockDetailError"]],["impl UnwindSafe for GetBlockSummariesError",1,["hotshot_query_service::explorer::query_data::GetBlockSummariesError"]],["impl UnwindSafe for GetExplorerSummaryError",1,["hotshot_query_service::explorer::query_data::GetExplorerSummaryError"]],["impl UnwindSafe for GetSearchResultsError",1,["hotshot_query_service::explorer::query_data::GetSearchResultsError"]],["impl UnwindSafe for GetTransactionDetailError",1,["hotshot_query_service::explorer::query_data::GetTransactionDetailError"]],["impl UnwindSafe for GetTransactionSummariesError",1,["hotshot_query_service::explorer::query_data::GetTransactionSummariesError"]],["impl UnwindSafe for TimestampConversionError",1,["hotshot_query_service::explorer::query_data::TimestampConversionError"]],["impl UnwindSafe for TransactionSummaryFilter",1,["hotshot_query_service::explorer::query_data::TransactionSummaryFilter"]],["impl UnwindSafe for Error",1,["hotshot_query_service::merklized_state::Error"]],["impl UnwindSafe for Error",1,["hotshot_query_service::node::Error"]],["impl UnwindSafe for Error",1,["hotshot_query_service::status::Error"]],["impl UnwindSafe for Options",1,["hotshot_query_service::availability::Options"]],["impl UnwindSafe for RequestSnafu",1,["hotshot_query_service::availability::RequestSnafu"]],["impl UnwindSafe for PrunerCfg",1,["hotshot_query_service::data_source::storage::pruning::PrunerCfg"]],["impl UnwindSafe for Pruner",1,["hotshot_query_service::data_source::storage::sql::Pruner"]],["impl UnwindSafe for Read",1,["hotshot_query_service::data_source::storage::sql::transaction::Read"]],["impl UnwindSafe for Write",1,["hotshot_query_service::data_source::storage::sql::transaction::Write"]],["impl UnwindSafe for TestMerkleTreeMigration",1,["hotshot_query_service::data_source::storage::sql::testing::TestMerkleTreeMigration"]],["impl UnwindSafe for TmpDb",1,["hotshot_query_service::data_source::storage::sql::testing::TmpDb"]],["impl UnwindSafe for CurrencyMismatchError",1,["hotshot_query_service::explorer::currency::CurrencyMismatchError"]],["impl UnwindSafe for ExplorerHistograms",1,["hotshot_query_service::explorer::query_data::ExplorerHistograms"]],["impl UnwindSafe for FeeAttribution",1,["hotshot_query_service::explorer::query_data::FeeAttribution"]],["impl UnwindSafe for GenesisOverview",1,["hotshot_query_service::explorer::query_data::GenesisOverview"]],["impl UnwindSafe for InvalidCurrencyCodeError",1,["hotshot_query_service::explorer::currency::InvalidCurrencyCodeError"]],["impl UnwindSafe for MonetaryValue",1,["hotshot_query_service::explorer::monetary_value::MonetaryValue"]],["impl UnwindSafe for Timestamp",1,["hotshot_query_service::explorer::query_data::Timestamp"]],["impl UnwindSafe for NoFetching",1,["hotshot_query_service::fetching::provider::NoFetching"]],["impl UnwindSafe for LeafRequest",1,["hotshot_query_service::fetching::request::LeafRequest"]],["impl UnwindSafe for PayloadRequest",1,["hotshot_query_service::fetching::request::PayloadRequest"]],["impl UnwindSafe for VidCommonRequest",1,["hotshot_query_service::fetching::request::VidCommonRequest"]],["impl UnwindSafe for Options",1,["hotshot_query_service::merklized_state::Options"]],["impl UnwindSafe for Counter",1,["hotshot_query_service::metrics::Counter"]],["impl UnwindSafe for Gauge",1,["hotshot_query_service::metrics::Gauge"]],["impl UnwindSafe for Histogram",1,["hotshot_query_service::metrics::Histogram"]],["impl UnwindSafe for Options",1,["hotshot_query_service::node::Options"]],["impl UnwindSafe for QuerySnafu",1,["hotshot_query_service::node::QuerySnafu"]],["impl UnwindSafe for RequestSnafu",1,["hotshot_query_service::node::RequestSnafu"]],["impl UnwindSafe for SyncStatus",1,["hotshot_query_service::node::query_data::SyncStatus"]],["impl UnwindSafe for Options",1,["hotshot_query_service::status::Options"]],["impl UnwindSafe for MissingSnafu",1,["hotshot_query_service::MissingSnafu"]],["impl UnwindSafe for NotFoundSnafu",1,["hotshot_query_service::NotFoundSnafu"]],["impl UnwindSafe for Options",1,["hotshot_query_service::Options"]],["impl UnwindSafe for BackgroundTask",1,["hotshot_query_service::task::BackgroundTask"]],["impl UnwindSafe for MockNodeImpl",1,["hotshot_query_service::testing::mocks::MockNodeImpl"]],["impl UnwindSafe for MockTypes",1,["hotshot_query_service::testing::mocks::MockTypes"]],["impl UnwindSafe for MockVersions",1,["hotshot_query_service::testing::mocks::MockVersions"]],["impl<'a> !UnwindSafe for Transaction<'a>",1,["hotshot_query_service::data_source::storage::no_storage::Transaction"]],["impl<'a, T> !UnwindSafe for Transaction<'a, T>",1,["hotshot_query_service::data_source::storage::no_storage::testing::Transaction"]],["impl<'q> !UnwindSafe for QueryBuilder<'q>",1,["hotshot_query_service::data_source::storage::sql::queries::QueryBuilder"]],["impl<D> !UnwindSafe for MockNetwork<D>",1,["hotshot_query_service::testing::consensus::MockNetwork"]],["impl<D> UnwindSafe for ApiState<D>
    where\n D: RefUnwindSafe,
    ",1,["hotshot_query_service::ApiState"]],["impl<D, U> UnwindSafe for ExtensibleDataSource<D, U>
    where\n D: UnwindSafe,\n U: UnwindSafe,
    ",1,["hotshot_query_service::data_source::extension::ExtensibleDataSource"]],["impl<Mode> !UnwindSafe for Transaction<Mode>",1,["hotshot_query_service::data_source::storage::sql::transaction::Transaction"]],["impl<P> !UnwindSafe for TestProvider<P>",1,["hotshot_query_service::fetching::provider::testing::TestProvider"]],["impl<S> !UnwindSafe for FailStorage<S>",1,["hotshot_query_service::data_source::storage::fail_storage::FailStorage"]],["impl<T> !UnwindSafe for Fetch<T>",1,["hotshot_query_service::availability::fetch::Fetch"]],["impl<T> !UnwindSafe for Transaction<T>",1,["hotshot_query_service::data_source::storage::fail_storage::Transaction"]],["impl<T> UnwindSafe for Transaction<T>
    where\n T: UnwindSafe,
    ",1,["hotshot_query_service::data_source::storage::fs::Transaction"]],["impl<T> UnwindSafe for TimeWindowQueryData<T>
    where\n T: UnwindSafe,
    ",1,["hotshot_query_service::node::query_data::TimeWindowQueryData"]],["impl<T> UnwindSafe for Task<T>",1,["hotshot_query_service::task::Task"]],["impl<T, C> !UnwindSafe for Fetcher<T, C>",1,["hotshot_query_service::fetching::Fetcher"]],["impl<Types> !UnwindSafe for FileSystemStorage<Types>",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorage"]],["impl<Types> !UnwindSafe for AnyProvider<Types>",1,["hotshot_query_service::fetching::provider::any::AnyProvider"]],["impl<Types> UnwindSafe for BlockId<Types>",1,["hotshot_query_service::availability::data_source::BlockId"]],["impl<Types> UnwindSafe for LeafId<Types>",1,["hotshot_query_service::availability::data_source::LeafId"]],["impl<Types> UnwindSafe for BlockIdentifier<Types>",1,["hotshot_query_service::explorer::query_data::BlockIdentifier"]],["impl<Types> UnwindSafe for TransactionIdentifier<Types>",1,["hotshot_query_service::explorer::query_data::TransactionIdentifier"]],["impl<Types> UnwindSafe for WindowStart<Types>",1,["hotshot_query_service::node::data_source::WindowStart"]],["impl<Types> UnwindSafe for BlockInfo<Types>
    where\n <Types as NodeType>::View: UnwindSafe,\n <Types as NodeType>::BlockHeader: UnwindSafe,\n <Types as NodeType>::BlockPayload: UnwindSafe,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QcType: UnwindSafe,\n Types: UnwindSafe,
    ",1,["hotshot_query_service::availability::data_source::BlockInfo"]],["impl<Types> UnwindSafe for BlockQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: UnwindSafe,\n <Types as NodeType>::BlockPayload: UnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::BlockQueryData"]],["impl<Types> UnwindSafe for BlockSummaryQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: UnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::BlockSummaryQueryData"]],["impl<Types> UnwindSafe for InconsistentLeafError<Types>",1,["hotshot_query_service::availability::query_data::InconsistentLeafError"]],["impl<Types> UnwindSafe for LeafQueryData<Types>
    where\n <Types as NodeType>::View: UnwindSafe,\n <Types as NodeType>::BlockHeader: UnwindSafe,\n <Types as NodeType>::BlockPayload: UnwindSafe,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QcType: UnwindSafe,\n Types: UnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::LeafQueryData"]],["impl<Types> UnwindSafe for PayloadQueryData<Types>
    where\n <Types as NodeType>::BlockPayload: UnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::PayloadQueryData"]],["impl<Types> UnwindSafe for TransactionQueryData<Types>
    where\n <Types as NodeType>::BlockPayload: for<'de> Sized,\n <Types as NodeType>::Transaction: UnwindSafe,\n <<Types as NodeType>::BlockPayload as QueryablePayload<Types>>::InclusionProof: UnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::TransactionQueryData"]],["impl<Types> UnwindSafe for TransactionSummaryQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: UnwindSafe,\n <Types as NodeType>::Transaction: UnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::TransactionSummaryQueryData"]],["impl<Types> UnwindSafe for VidCommonQueryData<Types>",1,["hotshot_query_service::availability::query_data::VidCommonQueryData"]],["impl<Types> UnwindSafe for FileSystemStorageInner<Types>
    where\n <Types as NodeType>::BlockPayload: for<'de> Sized + UnwindSafe,\n <Types as NodeType>::BlockHeader: UnwindSafe,\n <Types as NodeType>::View: UnwindSafe,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QcType: UnwindSafe,\n Types: UnwindSafe,
    ",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorageInner"]],["impl<Types> UnwindSafe for BlockDetail<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: UnwindSafe,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::WalletAddress: UnwindSafe,
    ",1,["hotshot_query_service::explorer::query_data::BlockDetail"]],["impl<Types> UnwindSafe for BlockDetailResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: UnwindSafe,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::WalletAddress: UnwindSafe,
    ",1,["hotshot_query_service::explorer::BlockDetailResponse"]],["impl<Types> UnwindSafe for BlockRange<Types>",1,["hotshot_query_service::explorer::query_data::BlockRange"]],["impl<Types> UnwindSafe for BlockSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: UnwindSafe,
    ",1,["hotshot_query_service::explorer::query_data::BlockSummary"]],["impl<Types> UnwindSafe for BlockSummaryResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: UnwindSafe,
    ",1,["hotshot_query_service::explorer::BlockSummaryResponse"]],["impl<Types> UnwindSafe for ExplorerSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: UnwindSafe,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::WalletAddress: UnwindSafe,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: UnwindSafe,
    ",1,["hotshot_query_service::explorer::query_data::ExplorerSummary"]],["impl<Types> UnwindSafe for ExplorerSummaryResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: UnwindSafe,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::WalletAddress: UnwindSafe,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: UnwindSafe,
    ",1,["hotshot_query_service::explorer::ExplorerSummaryResponse"]],["impl<Types> UnwindSafe for GetBlockSummariesRequest<Types>",1,["hotshot_query_service::explorer::query_data::GetBlockSummariesRequest"]],["impl<Types> UnwindSafe for GetTransactionSummariesRequest<Types>",1,["hotshot_query_service::explorer::query_data::GetTransactionSummariesRequest"]],["impl<Types> UnwindSafe for SearchResult<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: UnwindSafe,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: UnwindSafe,
    ",1,["hotshot_query_service::explorer::query_data::SearchResult"]],["impl<Types> UnwindSafe for SearchResultResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: UnwindSafe,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: UnwindSafe,
    ",1,["hotshot_query_service::explorer::SearchResultResponse"]],["impl<Types> UnwindSafe for TransactionDetail<Types>",1,["hotshot_query_service::explorer::query_data::TransactionDetail"]],["impl<Types> UnwindSafe for TransactionDetailResponse<Types>
    where\n <Types as NodeType>::Transaction: UnwindSafe,
    ",1,["hotshot_query_service::explorer::TransactionDetailResponse"]],["impl<Types> UnwindSafe for TransactionRange<Types>",1,["hotshot_query_service::explorer::query_data::TransactionRange"]],["impl<Types> UnwindSafe for TransactionSummariesResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: UnwindSafe,
    ",1,["hotshot_query_service::explorer::TransactionSummariesResponse"]],["impl<Types> UnwindSafe for TransactionSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: UnwindSafe,
    ",1,["hotshot_query_service::explorer::query_data::TransactionSummary"]],["impl<Types, S, P> !UnwindSafe for FetchingDataSource<Types, S, P>",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["impl<Types, S, P> UnwindSafe for Builder<Types, S, P>
    where\n S: UnwindSafe,\n P: UnwindSafe,\n Types: UnwindSafe,
    ",1,["hotshot_query_service::data_source::fetching::Builder"]],["impl<Types, S, P> UnwindSafe for Pruner<Types, S, P>
    where\n Types: UnwindSafe,\n S: UnwindSafe,\n P: UnwindSafe,
    ",1,["hotshot_query_service::data_source::fetching::Pruner"]],["impl<Types, T, const ARITY: usize> UnwindSafe for Snapshot<Types, T, ARITY>
    where\n <T as MerklizedState<Types, ARITY>>::Commit: UnwindSafe,
    ",1,["hotshot_query_service::merklized_state::data_source::Snapshot"]],["impl<Ver> !UnwindSafe for QueryServiceProvider<Ver>",1,["hotshot_query_service::fetching::provider::query_service::QueryServiceProvider"]],["impl<__T0> UnwindSafe for FetchBlockSnafu<__T0>
    where\n __T0: UnwindSafe,
    ",1,["hotshot_query_service::availability::FetchBlockSnafu"]],["impl<__T0> UnwindSafe for FetchLeafSnafu<__T0>
    where\n __T0: UnwindSafe,
    ",1,["hotshot_query_service::availability::FetchLeafSnafu"]],["impl<__T0> UnwindSafe for FetchTransactionSnafu<__T0>
    where\n __T0: UnwindSafe,
    ",1,["hotshot_query_service::availability::FetchTransactionSnafu"]],["impl<__T0> UnwindSafe for QueryVidSnafu<__T0>
    where\n __T0: UnwindSafe,
    ",1,["hotshot_query_service::node::QueryVidSnafu"]],["impl<__T0> UnwindSafe for ErrorSnafu<__T0>
    where\n __T0: UnwindSafe,
    ",1,["hotshot_query_service::ErrorSnafu"]],["impl<__T0, __T1> UnwindSafe for CustomSnafu<__T0, __T1>
    where\n __T0: UnwindSafe,\n __T1: UnwindSafe,
    ",1,["hotshot_query_service::availability::CustomSnafu"]],["impl<__T0, __T1> UnwindSafe for InvalidTransactionIndexSnafu<__T0, __T1>
    where\n __T0: UnwindSafe,\n __T1: UnwindSafe,
    ",1,["hotshot_query_service::availability::InvalidTransactionIndexSnafu"]],["impl<__T0, __T1> UnwindSafe for CustomSnafu<__T0, __T1>
    where\n __T0: UnwindSafe,\n __T1: UnwindSafe,
    ",1,["hotshot_query_service::node::CustomSnafu"]],["impl<__T0, __T1> UnwindSafe for QueryWindowSnafu<__T0, __T1>
    where\n __T0: UnwindSafe,\n __T1: UnwindSafe,
    ",1,["hotshot_query_service::node::QueryWindowSnafu"]]]]]); + var implementors = Object.fromEntries([["hotshot_query_service",[["impl !UnwindSafe for DataSource",1,["hotshot_query_service::data_source::storage::no_storage::testing::DataSource"]],["impl !UnwindSafe for MetricsError",1,["hotshot_query_service::metrics::MetricsError"]],["impl !UnwindSafe for NoStorage",1,["hotshot_query_service::data_source::storage::no_storage::NoStorage"]],["impl !UnwindSafe for Config",1,["hotshot_query_service::data_source::storage::sql::Config"]],["impl !UnwindSafe for SqlStorage",1,["hotshot_query_service::data_source::storage::sql::SqlStorage"]],["impl !UnwindSafe for MetricsDataSource",1,["hotshot_query_service::data_source::metrics::MetricsDataSource"]],["impl !UnwindSafe for CounterFamily",1,["hotshot_query_service::metrics::CounterFamily"]],["impl !UnwindSafe for GaugeFamily",1,["hotshot_query_service::metrics::GaugeFamily"]],["impl !UnwindSafe for HistogramFamily",1,["hotshot_query_service::metrics::HistogramFamily"]],["impl !UnwindSafe for PrometheusMetrics",1,["hotshot_query_service::metrics::PrometheusMetrics"]],["impl !UnwindSafe for TextFamily",1,["hotshot_query_service::metrics::TextFamily"]],["impl UnwindSafe for Error",1,["hotshot_query_service::availability::Error"]],["impl UnwindSafe for FailableAction",1,["hotshot_query_service::data_source::storage::fail_storage::FailableAction"]],["impl UnwindSafe for Storage",1,["hotshot_query_service::data_source::storage::no_storage::testing::Storage"]],["impl UnwindSafe for Error",1,["hotshot_query_service::error::Error"]],["impl UnwindSafe for QueryError",1,["hotshot_query_service::QueryError"]],["impl UnwindSafe for CurrencyCode",1,["hotshot_query_service::explorer::currency::CurrencyCode"]],["impl UnwindSafe for Error",1,["hotshot_query_service::explorer::Error"]],["impl UnwindSafe for GetBlockDetailError",1,["hotshot_query_service::explorer::query_data::GetBlockDetailError"]],["impl UnwindSafe for GetBlockSummariesError",1,["hotshot_query_service::explorer::query_data::GetBlockSummariesError"]],["impl UnwindSafe for GetExplorerSummaryError",1,["hotshot_query_service::explorer::query_data::GetExplorerSummaryError"]],["impl UnwindSafe for GetSearchResultsError",1,["hotshot_query_service::explorer::query_data::GetSearchResultsError"]],["impl UnwindSafe for GetTransactionDetailError",1,["hotshot_query_service::explorer::query_data::GetTransactionDetailError"]],["impl UnwindSafe for GetTransactionSummariesError",1,["hotshot_query_service::explorer::query_data::GetTransactionSummariesError"]],["impl UnwindSafe for TimestampConversionError",1,["hotshot_query_service::explorer::query_data::TimestampConversionError"]],["impl UnwindSafe for TransactionSummaryFilter",1,["hotshot_query_service::explorer::query_data::TransactionSummaryFilter"]],["impl UnwindSafe for Error",1,["hotshot_query_service::merklized_state::Error"]],["impl UnwindSafe for Error",1,["hotshot_query_service::node::Error"]],["impl UnwindSafe for Error",1,["hotshot_query_service::status::Error"]],["impl UnwindSafe for Options",1,["hotshot_query_service::availability::Options"]],["impl UnwindSafe for RequestSnafu",1,["hotshot_query_service::availability::RequestSnafu"]],["impl UnwindSafe for PrunerCfg",1,["hotshot_query_service::data_source::storage::pruning::PrunerCfg"]],["impl UnwindSafe for Pruner",1,["hotshot_query_service::data_source::storage::sql::Pruner"]],["impl UnwindSafe for Read",1,["hotshot_query_service::data_source::storage::sql::transaction::Read"]],["impl UnwindSafe for Write",1,["hotshot_query_service::data_source::storage::sql::transaction::Write"]],["impl UnwindSafe for TestMerkleTreeMigration",1,["hotshot_query_service::data_source::storage::sql::testing::TestMerkleTreeMigration"]],["impl UnwindSafe for TmpDb",1,["hotshot_query_service::data_source::storage::sql::testing::TmpDb"]],["impl UnwindSafe for CurrencyMismatchError",1,["hotshot_query_service::explorer::currency::CurrencyMismatchError"]],["impl UnwindSafe for ExplorerHistograms",1,["hotshot_query_service::explorer::query_data::ExplorerHistograms"]],["impl UnwindSafe for FeeAttribution",1,["hotshot_query_service::explorer::query_data::FeeAttribution"]],["impl UnwindSafe for GenesisOverview",1,["hotshot_query_service::explorer::query_data::GenesisOverview"]],["impl UnwindSafe for InvalidCurrencyCodeError",1,["hotshot_query_service::explorer::currency::InvalidCurrencyCodeError"]],["impl UnwindSafe for MonetaryValue",1,["hotshot_query_service::explorer::monetary_value::MonetaryValue"]],["impl UnwindSafe for Timestamp",1,["hotshot_query_service::explorer::query_data::Timestamp"]],["impl UnwindSafe for NoFetching",1,["hotshot_query_service::fetching::provider::NoFetching"]],["impl UnwindSafe for LeafRequest",1,["hotshot_query_service::fetching::request::LeafRequest"]],["impl UnwindSafe for PayloadRequest",1,["hotshot_query_service::fetching::request::PayloadRequest"]],["impl UnwindSafe for VidCommonRequest",1,["hotshot_query_service::fetching::request::VidCommonRequest"]],["impl UnwindSafe for Options",1,["hotshot_query_service::merklized_state::Options"]],["impl UnwindSafe for Counter",1,["hotshot_query_service::metrics::Counter"]],["impl UnwindSafe for Gauge",1,["hotshot_query_service::metrics::Gauge"]],["impl UnwindSafe for Histogram",1,["hotshot_query_service::metrics::Histogram"]],["impl UnwindSafe for Options",1,["hotshot_query_service::node::Options"]],["impl UnwindSafe for QuerySnafu",1,["hotshot_query_service::node::QuerySnafu"]],["impl UnwindSafe for RequestSnafu",1,["hotshot_query_service::node::RequestSnafu"]],["impl UnwindSafe for SyncStatus",1,["hotshot_query_service::node::query_data::SyncStatus"]],["impl UnwindSafe for Options",1,["hotshot_query_service::status::Options"]],["impl UnwindSafe for MissingSnafu",1,["hotshot_query_service::MissingSnafu"]],["impl UnwindSafe for NotFoundSnafu",1,["hotshot_query_service::NotFoundSnafu"]],["impl UnwindSafe for Options",1,["hotshot_query_service::Options"]],["impl UnwindSafe for BackgroundTask",1,["hotshot_query_service::task::BackgroundTask"]],["impl UnwindSafe for MockNodeImpl",1,["hotshot_query_service::testing::mocks::MockNodeImpl"]],["impl UnwindSafe for MockTypes",1,["hotshot_query_service::testing::mocks::MockTypes"]],["impl UnwindSafe for MockVersions",1,["hotshot_query_service::testing::mocks::MockVersions"]],["impl<'a> !UnwindSafe for Transaction<'a>",1,["hotshot_query_service::data_source::storage::no_storage::Transaction"]],["impl<'a, T> !UnwindSafe for Transaction<'a, T>",1,["hotshot_query_service::data_source::storage::no_storage::testing::Transaction"]],["impl<'q> !UnwindSafe for QueryBuilder<'q>",1,["hotshot_query_service::data_source::storage::sql::queries::QueryBuilder"]],["impl<D> !UnwindSafe for MockNetwork<D>",1,["hotshot_query_service::testing::consensus::MockNetwork"]],["impl<D> UnwindSafe for ApiState<D>
    where\n D: RefUnwindSafe,
    ",1,["hotshot_query_service::ApiState"]],["impl<D, U> UnwindSafe for ExtensibleDataSource<D, U>
    where\n D: UnwindSafe,\n U: UnwindSafe,
    ",1,["hotshot_query_service::data_source::extension::ExtensibleDataSource"]],["impl<Mode> !UnwindSafe for Transaction<Mode>",1,["hotshot_query_service::data_source::storage::sql::transaction::Transaction"]],["impl<P> !UnwindSafe for TestProvider<P>",1,["hotshot_query_service::fetching::provider::testing::TestProvider"]],["impl<S> !UnwindSafe for FailStorage<S>",1,["hotshot_query_service::data_source::storage::fail_storage::FailStorage"]],["impl<T> !UnwindSafe for Fetch<T>",1,["hotshot_query_service::availability::fetch::Fetch"]],["impl<T> !UnwindSafe for Transaction<T>",1,["hotshot_query_service::data_source::storage::fail_storage::Transaction"]],["impl<T> UnwindSafe for Transaction<T>
    where\n T: UnwindSafe,
    ",1,["hotshot_query_service::data_source::storage::fs::Transaction"]],["impl<T> UnwindSafe for TimeWindowQueryData<T>
    where\n T: UnwindSafe,
    ",1,["hotshot_query_service::node::query_data::TimeWindowQueryData"]],["impl<T> UnwindSafe for Task<T>",1,["hotshot_query_service::task::Task"]],["impl<T, C> !UnwindSafe for Fetcher<T, C>",1,["hotshot_query_service::fetching::Fetcher"]],["impl<Types> !UnwindSafe for FileSystemStorage<Types>",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorage"]],["impl<Types> !UnwindSafe for AnyProvider<Types>",1,["hotshot_query_service::fetching::provider::any::AnyProvider"]],["impl<Types> UnwindSafe for BlockId<Types>",1,["hotshot_query_service::availability::data_source::BlockId"]],["impl<Types> UnwindSafe for LeafId<Types>",1,["hotshot_query_service::availability::data_source::LeafId"]],["impl<Types> UnwindSafe for BlockIdentifier<Types>",1,["hotshot_query_service::explorer::query_data::BlockIdentifier"]],["impl<Types> UnwindSafe for TransactionIdentifier<Types>",1,["hotshot_query_service::explorer::query_data::TransactionIdentifier"]],["impl<Types> UnwindSafe for WindowStart<Types>",1,["hotshot_query_service::node::data_source::WindowStart"]],["impl<Types> UnwindSafe for BlockInfo<Types>
    where\n <Types as NodeType>::View: UnwindSafe,\n <Types as NodeType>::BlockHeader: UnwindSafe,\n <Types as NodeType>::BlockPayload: UnwindSafe,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QcType: UnwindSafe,\n Types: UnwindSafe,
    ",1,["hotshot_query_service::availability::data_source::BlockInfo"]],["impl<Types> UnwindSafe for BlockQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: UnwindSafe,\n <Types as NodeType>::BlockPayload: UnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::BlockQueryData"]],["impl<Types> UnwindSafe for BlockSummaryQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: UnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::BlockSummaryQueryData"]],["impl<Types> UnwindSafe for InconsistentLeafError<Types>",1,["hotshot_query_service::availability::query_data::InconsistentLeafError"]],["impl<Types> UnwindSafe for LeafQueryData<Types>
    where\n <Types as NodeType>::View: UnwindSafe,\n <Types as NodeType>::BlockHeader: UnwindSafe,\n <Types as NodeType>::BlockPayload: UnwindSafe,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QcType: UnwindSafe,\n Types: UnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::LeafQueryData"]],["impl<Types> UnwindSafe for PayloadMetadata<Types>",1,["hotshot_query_service::availability::query_data::PayloadMetadata"]],["impl<Types> UnwindSafe for PayloadQueryData<Types>
    where\n <Types as NodeType>::BlockPayload: UnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::PayloadQueryData"]],["impl<Types> UnwindSafe for TransactionQueryData<Types>
    where\n <Types as NodeType>::BlockPayload: for<'de> Sized,\n <Types as NodeType>::Transaction: UnwindSafe,\n <<Types as NodeType>::BlockPayload as QueryablePayload<Types>>::InclusionProof: UnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::TransactionQueryData"]],["impl<Types> UnwindSafe for TransactionSummaryQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: UnwindSafe,\n <Types as NodeType>::Transaction: UnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::TransactionSummaryQueryData"]],["impl<Types> UnwindSafe for VidCommonMetadata<Types>",1,["hotshot_query_service::availability::query_data::VidCommonMetadata"]],["impl<Types> UnwindSafe for VidCommonQueryData<Types>",1,["hotshot_query_service::availability::query_data::VidCommonQueryData"]],["impl<Types> UnwindSafe for FileSystemStorageInner<Types>
    where\n <Types as NodeType>::BlockPayload: for<'de> Sized + UnwindSafe,\n <Types as NodeType>::BlockHeader: UnwindSafe,\n <Types as NodeType>::View: UnwindSafe,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QcType: UnwindSafe,\n Types: UnwindSafe,
    ",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorageInner"]],["impl<Types> UnwindSafe for BlockDetail<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: UnwindSafe,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::WalletAddress: UnwindSafe,
    ",1,["hotshot_query_service::explorer::query_data::BlockDetail"]],["impl<Types> UnwindSafe for BlockDetailResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: UnwindSafe,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::WalletAddress: UnwindSafe,
    ",1,["hotshot_query_service::explorer::BlockDetailResponse"]],["impl<Types> UnwindSafe for BlockRange<Types>",1,["hotshot_query_service::explorer::query_data::BlockRange"]],["impl<Types> UnwindSafe for BlockSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: UnwindSafe,
    ",1,["hotshot_query_service::explorer::query_data::BlockSummary"]],["impl<Types> UnwindSafe for BlockSummaryResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: UnwindSafe,
    ",1,["hotshot_query_service::explorer::BlockSummaryResponse"]],["impl<Types> UnwindSafe for ExplorerSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: UnwindSafe,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::WalletAddress: UnwindSafe,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: UnwindSafe,
    ",1,["hotshot_query_service::explorer::query_data::ExplorerSummary"]],["impl<Types> UnwindSafe for ExplorerSummaryResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: UnwindSafe,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::WalletAddress: UnwindSafe,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: UnwindSafe,
    ",1,["hotshot_query_service::explorer::ExplorerSummaryResponse"]],["impl<Types> UnwindSafe for GetBlockSummariesRequest<Types>",1,["hotshot_query_service::explorer::query_data::GetBlockSummariesRequest"]],["impl<Types> UnwindSafe for GetTransactionSummariesRequest<Types>",1,["hotshot_query_service::explorer::query_data::GetTransactionSummariesRequest"]],["impl<Types> UnwindSafe for SearchResult<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: UnwindSafe,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: UnwindSafe,
    ",1,["hotshot_query_service::explorer::query_data::SearchResult"]],["impl<Types> UnwindSafe for SearchResultResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::BlockHeader as ExplorerHeader<Types>>::ProposerId: UnwindSafe,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: UnwindSafe,
    ",1,["hotshot_query_service::explorer::SearchResultResponse"]],["impl<Types> UnwindSafe for TransactionDetail<Types>",1,["hotshot_query_service::explorer::query_data::TransactionDetail"]],["impl<Types> UnwindSafe for TransactionDetailResponse<Types>
    where\n <Types as NodeType>::Transaction: UnwindSafe,
    ",1,["hotshot_query_service::explorer::TransactionDetailResponse"]],["impl<Types> UnwindSafe for TransactionRange<Types>",1,["hotshot_query_service::explorer::query_data::TransactionRange"]],["impl<Types> UnwindSafe for TransactionSummariesResponse<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: UnwindSafe,
    ",1,["hotshot_query_service::explorer::TransactionSummariesResponse"]],["impl<Types> UnwindSafe for TransactionSummary<Types>
    where\n <Types as NodeType>::BlockHeader: for<'de> Sized,\n <<Types as NodeType>::Transaction as ExplorerTransaction>::NamespaceId: UnwindSafe,
    ",1,["hotshot_query_service::explorer::query_data::TransactionSummary"]],["impl<Types, S, P> !UnwindSafe for FetchingDataSource<Types, S, P>",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["impl<Types, S, P> UnwindSafe for Builder<Types, S, P>
    where\n S: UnwindSafe,\n P: UnwindSafe,\n Types: UnwindSafe,
    ",1,["hotshot_query_service::data_source::fetching::Builder"]],["impl<Types, S, P> UnwindSafe for Pruner<Types, S, P>
    where\n Types: UnwindSafe,\n S: UnwindSafe,\n P: UnwindSafe,
    ",1,["hotshot_query_service::data_source::fetching::Pruner"]],["impl<Types, T, const ARITY: usize> UnwindSafe for Snapshot<Types, T, ARITY>
    where\n <T as MerklizedState<Types, ARITY>>::Commit: UnwindSafe,
    ",1,["hotshot_query_service::merklized_state::data_source::Snapshot"]],["impl<Ver> !UnwindSafe for QueryServiceProvider<Ver>",1,["hotshot_query_service::fetching::provider::query_service::QueryServiceProvider"]],["impl<__T0> UnwindSafe for FetchBlockSnafu<__T0>
    where\n __T0: UnwindSafe,
    ",1,["hotshot_query_service::availability::FetchBlockSnafu"]],["impl<__T0> UnwindSafe for FetchLeafSnafu<__T0>
    where\n __T0: UnwindSafe,
    ",1,["hotshot_query_service::availability::FetchLeafSnafu"]],["impl<__T0> UnwindSafe for FetchTransactionSnafu<__T0>
    where\n __T0: UnwindSafe,
    ",1,["hotshot_query_service::availability::FetchTransactionSnafu"]],["impl<__T0> UnwindSafe for QueryVidSnafu<__T0>
    where\n __T0: UnwindSafe,
    ",1,["hotshot_query_service::node::QueryVidSnafu"]],["impl<__T0> UnwindSafe for ErrorSnafu<__T0>
    where\n __T0: UnwindSafe,
    ",1,["hotshot_query_service::ErrorSnafu"]],["impl<__T0, __T1> UnwindSafe for CustomSnafu<__T0, __T1>
    where\n __T0: UnwindSafe,\n __T1: UnwindSafe,
    ",1,["hotshot_query_service::availability::CustomSnafu"]],["impl<__T0, __T1> UnwindSafe for InvalidTransactionIndexSnafu<__T0, __T1>
    where\n __T0: UnwindSafe,\n __T1: UnwindSafe,
    ",1,["hotshot_query_service::availability::InvalidTransactionIndexSnafu"]],["impl<__T0, __T1> UnwindSafe for CustomSnafu<__T0, __T1>
    where\n __T0: UnwindSafe,\n __T1: UnwindSafe,
    ",1,["hotshot_query_service::node::CustomSnafu"]],["impl<__T0, __T1> UnwindSafe for QueryWindowSnafu<__T0, __T1>
    where\n __T0: UnwindSafe,\n __T1: UnwindSafe,
    ",1,["hotshot_query_service::node::QueryWindowSnafu"]]]]]); if (window.register_implementors) { window.register_implementors(implementors); } else { window.pending_implementors = implementors; } })() -//{"start":57,"fragment_lengths":[81132]} \ No newline at end of file +//{"start":57,"fragment_lengths":[82072]} \ No newline at end of file diff --git a/trait.impl/sqlx_core/from_row/trait.FromRow.js b/trait.impl/sqlx_core/from_row/trait.FromRow.js index f0b6d85f1..861c71bbd 100644 --- a/trait.impl/sqlx_core/from_row/trait.FromRow.js +++ b/trait.impl/sqlx_core/from_row/trait.FromRow.js @@ -1,9 +1,9 @@ (function() { - var implementors = Object.fromEntries([["hotshot_query_service",[["impl<'r, Types> FromRow<'r, <Postgres as Database>::Row> for BlockQueryData<Types>
    where\n Types: NodeType,\n Payload<Types>: QueryablePayload<Types>,
    "],["impl<'r, Types> FromRow<'r, <Postgres as Database>::Row> for LeafQueryData<Types>
    where\n Types: NodeType,
    "],["impl<'r, Types> FromRow<'r, <Postgres as Database>::Row> for PayloadQueryData<Types>
    where\n Types: NodeType,\n Payload<Types>: QueryablePayload<Types>,
    "],["impl<'r, Types> FromRow<'r, <Postgres as Database>::Row> for VidCommonQueryData<Types>
    where\n Types: NodeType,\n Payload<Types>: QueryablePayload<Types>,
    "],["impl<'r, Types> FromRow<'r, <Postgres as Database>::Row> for BlockDetail<Types>
    where\n Types: NodeType,\n Header<Types>: QueryableHeader<Types> + ExplorerHeader<Types>,\n Payload<Types>: QueryablePayload<Types>,\n BalanceAmount<Types>: Into<MonetaryValue>,
    "],["impl<'r, Types> FromRow<'r, <Postgres as Database>::Row> for BlockSummary<Types>
    where\n Types: NodeType,\n Header<Types>: QueryableHeader<Types> + ExplorerHeader<Types>,\n Payload<Types>: QueryablePayload<Types>,
    "]]]]); + var implementors = Object.fromEntries([["hotshot_query_service",[["impl<'r, Types> FromRow<'r, <Postgres as Database>::Row> for BlockQueryData<Types>
    where\n Types: NodeType,\n Payload<Types>: QueryablePayload<Types>,
    "],["impl<'r, Types> FromRow<'r, <Postgres as Database>::Row> for LeafQueryData<Types>
    where\n Types: NodeType,
    "],["impl<'r, Types> FromRow<'r, <Postgres as Database>::Row> for PayloadMetadata<Types>
    where\n Types: NodeType,
    "],["impl<'r, Types> FromRow<'r, <Postgres as Database>::Row> for PayloadQueryData<Types>
    where\n Types: NodeType,\n Payload<Types>: QueryablePayload<Types>,
    "],["impl<'r, Types> FromRow<'r, <Postgres as Database>::Row> for VidCommonMetadata<Types>
    where\n Types: NodeType,\n Payload<Types>: QueryablePayload<Types>,
    "],["impl<'r, Types> FromRow<'r, <Postgres as Database>::Row> for VidCommonQueryData<Types>
    where\n Types: NodeType,\n Payload<Types>: QueryablePayload<Types>,
    "],["impl<'r, Types> FromRow<'r, <Postgres as Database>::Row> for BlockDetail<Types>
    where\n Types: NodeType,\n Header<Types>: QueryableHeader<Types> + ExplorerHeader<Types>,\n Payload<Types>: QueryablePayload<Types>,\n BalanceAmount<Types>: Into<MonetaryValue>,
    "],["impl<'r, Types> FromRow<'r, <Postgres as Database>::Row> for BlockSummary<Types>
    where\n Types: NodeType,\n Header<Types>: QueryableHeader<Types> + ExplorerHeader<Types>,\n Payload<Types>: QueryablePayload<Types>,
    "]]]]); if (window.register_implementors) { window.register_implementors(implementors); } else { window.pending_implementors = implementors; } })() -//{"start":57,"fragment_lengths":[7479]} \ No newline at end of file +//{"start":57,"fragment_lengths":[9245]} \ No newline at end of file diff --git a/type.impl/hotshot_query_service/data_source/fetching/struct.Builder.js b/type.impl/hotshot_query_service/data_source/fetching/struct.Builder.js index a95808835..56eb03960 100644 --- a/type.impl/hotshot_query_service/data_source/fetching/struct.Builder.js +++ b/type.impl/hotshot_query_service/data_source/fetching/struct.Builder.js @@ -1,9 +1,9 @@ (function() { - var type_impls = Object.fromEntries([["hotshot_query_service",[["
    source§

    impl<Types, S, P> Builder<Types, S, P>

    source

    pub fn new(storage: S, provider: P) -> Self

    Construct a new builder with the given storage and fetcher and the default options.

    \n
    source

    pub fn with_min_retry_interval(self, interval: Duration) -> Self

    Set the minimum delay between retries of failed operations.

    \n
    source

    pub fn with_max_retry_interval(self, interval: Duration) -> Self

    Set the maximum delay between retries of failed operations.

    \n
    source

    pub fn with_retry_multiplier(self, multiplier: f64) -> Self

    Set the multiplier for exponential backoff when retrying failed requests.

    \n
    source

    pub fn with_retry_randomization_factor(self, factor: f64) -> Self

    Set the randomization factor for randomized backoff when retrying failed requests.

    \n
    source

    pub fn with_retry_timeout(self, timeout: Duration) -> Self

    Set the maximum time to retry failed operations before giving up.

    \n
    source

    pub fn with_rate_limit(self, with_rate_limit: usize) -> Self

    Set the maximum number of simultaneous fetches.

    \n
    source

    pub fn with_range_chunk_size(self, range_chunk_size: usize) -> Self

    Set the number of items to process at a time when loading a range or stream.

    \n

    This determines:

    \n
      \n
    • The number of objects to load from storage in a single request
    • \n
    • The number of objects to buffer in memory per request/stream
    • \n
    • The number of concurrent notification subscriptions per request/stream
    • \n
    \n
    source

    pub fn with_minor_scan_interval(self, interval: Duration) -> Self

    Set the time interval between minor proactive fetching scans.

    \n

    See proactive fetching.

    \n
    source

    pub fn with_major_scan_interval(self, interval: usize) -> Self

    Set the interval (denominated in minor scans) between\nmajor proactive fetching scans.

    \n

    See proactive fetching.

    \n
    source

    pub fn with_major_scan_offset(self, offset: usize) -> Self

    Set the offset (denominated in minor scans) before the\nfirst major proactive fetching scan.

    \n

    This is useful when starting multiple nodes at the same time: major proactive scans can have\na measurable impact on the performance of the node for a brief time while the scan is\nrunning, so it may be desirable to prevent a group of nodes from all doing major scans at\nthe same time. This can be achieved by giving each node a different major_scan_offset.

    \n

    See also proactive fetching.

    \n
    source

    pub fn with_proactive_range_chunk_size(self, range_chunk_size: usize) -> Self

    Set the number of items to process at a time when scanning for proactive fetching.

    \n

    This is similar to Self::with_range_chunk_size, but only affects the chunk size for\nproactive fetching scans, not for normal subscription streams. This can be useful to tune\nthe proactive scanner to be more or less greedy with the lock on persistent storage.

    \n

    By default (i.e. if this method is not called) the proactive range chunk size will be set to\nwhatever the normal range chunk size is.

    \n
    source

    pub fn with_active_fetch_delay(self, active_fetch_delay: Duration) -> Self

    Add a delay between active fetches in proactive scans.

    \n

    This can be used to limit the rate at which this query service makes requests to other query\nservices during proactive scans. This is useful if the query service has a lot of blocks to\ncatch up on, as without a delay, scanning can be extremely burdensome on the peer.

    \n
    source

    pub fn with_chunk_fetch_delay(self, chunk_fetch_delay: Duration) -> Self

    Adds a delay between chunk fetches during proactive scans.

    \n

    In a proactive scan, we retrieve a range of objects from a provider or local storage (e.g., a database).\nWithout a delay between fetching these chunks, the process can become very CPU-intensive, especially\nwhen chunks are retrieved from local storage. While there is already a delay for active fetches\n(active_fetch_delay), situations may arise when subscribed to an old stream that fetches most of the data\nfrom local storage.

    \n

    This additional delay helps to limit constant maximum CPU usage\nand ensures that local storage remains accessible to all processes,\nnot just the proactive scanner.

    \n
    source

    pub fn disable_proactive_fetching(self) -> Self

    Run without proactive fetching.

    \n

    This can reduce load on the CPU and the database, but increases the probability that\nrequests will fail due to missing resources. If resources are constrained, it is recommended\nto run with rare proactive fetching (see\nwith_major_scan_interval,\nwith_minor_scan_interval), rather than disabling it\nentirely.

    \n
    source

    pub fn disable_aggregator(self) -> Self

    Run without an aggregator.

    \n

    This can reduce load on the CPU and the database, but it will cause aggregate statistics\n(such as transaction counts) not to update.

    \n
    ",0,"hotshot_query_service::data_source::sql::Builder"],["
    source§

    impl<Types, S, P> Builder<Types, S, P>
    where\n Types: NodeType,\n Payload<Types>: QueryablePayload<Types>,\n Header<Types>: QueryableHeader<Types>,\n S: PruneStorage + VersionedDataSource + HasMetrics + 'static,\n for<'a> S::ReadOnly<'a>: AvailabilityStorage<Types> + PrunedHeightStorage + NodeStorage<Types> + AggregatesStorage,\n for<'a> S::Transaction<'a>: UpdateAvailabilityStorage<Types> + UpdateAggregatesStorage<Types>,\n P: AvailabilityProvider<Types>,

    source

    pub async fn build(self) -> Result<FetchingDataSource<Types, S, P>>

    Build a FetchingDataSource with these options.

    \n
    ",0,"hotshot_query_service::data_source::sql::Builder"]]]]); + var type_impls = Object.fromEntries([["hotshot_query_service",[["
    source§

    impl<Types, S, P> Builder<Types, S, P>

    source

    pub fn new(storage: S, provider: P) -> Self

    Construct a new builder with the given storage and fetcher and the default options.

    \n
    source

    pub fn with_min_retry_interval(self, interval: Duration) -> Self

    Set the minimum delay between retries of failed operations.

    \n
    source

    pub fn with_max_retry_interval(self, interval: Duration) -> Self

    Set the maximum delay between retries of failed operations.

    \n
    source

    pub fn with_retry_multiplier(self, multiplier: f64) -> Self

    Set the multiplier for exponential backoff when retrying failed requests.

    \n
    source

    pub fn with_retry_randomization_factor(self, factor: f64) -> Self

    Set the randomization factor for randomized backoff when retrying failed requests.

    \n
    source

    pub fn with_retry_timeout(self, timeout: Duration) -> Self

    Set the maximum time to retry failed operations before giving up.

    \n
    source

    pub fn with_rate_limit(self, with_rate_limit: usize) -> Self

    Set the maximum number of simultaneous fetches.

    \n
    source

    pub fn with_range_chunk_size(self, range_chunk_size: usize) -> Self

    Set the number of items to process at a time when loading a range or stream.

    \n

    This determines:

    \n
      \n
    • The number of objects to load from storage in a single request
    • \n
    • The number of objects to buffer in memory per request/stream
    • \n
    • The number of concurrent notification subscriptions per request/stream
    • \n
    \n
    source

    pub fn with_minor_scan_interval(self, interval: Duration) -> Self

    Set the time interval between minor proactive fetching scans.

    \n

    See proactive fetching.

    \n
    source

    pub fn with_major_scan_interval(self, interval: usize) -> Self

    Set the interval (denominated in minor scans) between\nmajor proactive fetching scans.

    \n

    See proactive fetching.

    \n
    source

    pub fn with_major_scan_offset(self, offset: usize) -> Self

    Set the offset (denominated in minor scans) before the\nfirst major proactive fetching scan.

    \n

    This is useful when starting multiple nodes at the same time: major proactive scans can have\na measurable impact on the performance of the node for a brief time while the scan is\nrunning, so it may be desirable to prevent a group of nodes from all doing major scans at\nthe same time. This can be achieved by giving each node a different major_scan_offset.

    \n

    See also proactive fetching.

    \n
    source

    pub fn with_proactive_range_chunk_size(self, range_chunk_size: usize) -> Self

    Set the number of items to process at a time when scanning for proactive fetching.

    \n

    This is similar to Self::with_range_chunk_size, but only affects the chunk size for\nproactive fetching scans, not for normal subscription streams. This can be useful to tune\nthe proactive scanner to be more or less greedy with persistent storage resources.

    \n

    By default (i.e. if this method is not called) the proactive range chunk size will be set to\nwhatever the normal range chunk size is.

    \n
    source

    pub fn with_active_fetch_delay(self, active_fetch_delay: Duration) -> Self

    Add a delay between active fetches in proactive scans.

    \n

    This can be used to limit the rate at which this query service makes requests to other query\nservices during proactive scans. This is useful if the query service has a lot of blocks to\ncatch up on, as without a delay, scanning can be extremely burdensome on the peer.

    \n
    source

    pub fn with_chunk_fetch_delay(self, chunk_fetch_delay: Duration) -> Self

    Adds a delay between chunk fetches during proactive scans.

    \n

    In a proactive scan, we retrieve a range of objects from a provider or local storage (e.g., a database).\nWithout a delay between fetching these chunks, the process can become very CPU-intensive, especially\nwhen chunks are retrieved from local storage. While there is already a delay for active fetches\n(active_fetch_delay), situations may arise when subscribed to an old stream that fetches most of the data\nfrom local storage.

    \n

    This additional delay helps to limit constant maximum CPU usage\nand ensures that local storage remains accessible to all processes,\nnot just the proactive scanner.

    \n
    source

    pub fn disable_proactive_fetching(self) -> Self

    Run without proactive fetching.

    \n

    This can reduce load on the CPU and the database, but increases the probability that\nrequests will fail due to missing resources. If resources are constrained, it is recommended\nto run with rare proactive fetching (see\nwith_major_scan_interval,\nwith_minor_scan_interval), rather than disabling it\nentirely.

    \n
    source

    pub fn disable_aggregator(self) -> Self

    Run without an aggregator.

    \n

    This can reduce load on the CPU and the database, but it will cause aggregate statistics\n(such as transaction counts) not to update.

    \n
    source

    pub fn with_aggregator_chunk_size(self, chunk_size: usize) -> Self

    Set the number of items to process at a time when computing aggregate statistics.

    \n

    This is similar to Self::with_range_chunk_size, but only affects the chunk size for\nthe aggregator task, not for normal subscription streams. This can be useful to tune\nthe aggregator to be more or less greedy with persistent storage resources.

    \n

    By default (i.e. if this method is not called) the proactive range chunk size will be set to\nwhatever the normal range chunk size is.

    \n
    ",0,"hotshot_query_service::data_source::sql::Builder"],["
    source§

    impl<Types, S, P> Builder<Types, S, P>
    where\n Types: NodeType,\n Payload<Types>: QueryablePayload<Types>,\n Header<Types>: QueryableHeader<Types>,\n S: PruneStorage + VersionedDataSource + HasMetrics + 'static,\n for<'a> S::ReadOnly<'a>: AvailabilityStorage<Types> + PrunedHeightStorage + NodeStorage<Types> + AggregatesStorage,\n for<'a> S::Transaction<'a>: UpdateAvailabilityStorage<Types> + UpdateAggregatesStorage<Types>,\n P: AvailabilityProvider<Types>,

    source

    pub async fn build(self) -> Result<FetchingDataSource<Types, S, P>>

    Build a FetchingDataSource with these options.

    \n
    ",0,"hotshot_query_service::data_source::sql::Builder"]]]]); if (window.register_type_impls) { window.register_type_impls(type_impls); } else { window.pending_type_impls = type_impls; } })() -//{"start":55,"fragment_lengths":[20639]} \ No newline at end of file +//{"start":55,"fragment_lengths":[21952]} \ No newline at end of file diff --git a/type.impl/hotshot_query_service/data_source/fetching/struct.FetchingDataSource.js b/type.impl/hotshot_query_service/data_source/fetching/struct.FetchingDataSource.js index 2fb52663f..d3bf22f9d 100644 --- a/type.impl/hotshot_query_service/data_source/fetching/struct.FetchingDataSource.js +++ b/type.impl/hotshot_query_service/data_source/fetching/struct.FetchingDataSource.js @@ -1,9 +1,9 @@ (function() { - var type_impls = Object.fromEntries([["hotshot_query_service",[["
    source§

    impl<Types, S, P> AsRef<S> for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,

    source§

    fn as_ref(&self) -> &S

    Converts this type into a shared reference of the (usually inferred) input type.
    ","AsRef","hotshot_query_service::data_source::fs::FileSystemDataSource","hotshot_query_service::data_source::sql::SqlDataSource"],["
    source§

    impl<Types, S, P> AvailabilityDataSource<Types> for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n Payload<Types>: QueryablePayload<Types>,\n S: VersionedDataSource + 'static,\n for<'a> S::Transaction<'a>: UpdateAvailabilityStorage<Types>,\n for<'a> S::ReadOnly<'a>: AvailabilityStorage<Types> + NodeStorage<Types> + PrunedHeightStorage,\n P: AvailabilityProvider<Types>,

    source§

    type LeafRange<R> = Pin<Box<dyn Stream<Item = Fetch<LeafQueryData<Types>>> + Send>>\nwhere\n R: RangeBounds<usize> + Send

    source§

    type BlockRange<R> = Pin<Box<dyn Stream<Item = Fetch<BlockQueryData<Types>>> + Send>>\nwhere\n R: RangeBounds<usize> + Send

    source§

    type PayloadRange<R> = Pin<Box<dyn Stream<Item = Fetch<PayloadQueryData<Types>>> + Send>>\nwhere\n R: RangeBounds<usize> + Send

    source§

    type VidCommonRange<R> = Pin<Box<dyn Stream<Item = Fetch<VidCommonQueryData<Types>>> + Send>>\nwhere\n R: RangeBounds<usize> + Send

    source§

    fn get_leaf<'life0, 'async_trait, ID>(\n &'life0 self,\n id: ID,\n) -> Pin<Box<dyn Future<Output = Fetch<LeafQueryData<Types>>> + Send + 'async_trait>>
    where\n ID: Into<LeafId<Types>> + Send + Sync + 'async_trait,\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn get_block<'life0, 'async_trait, ID>(\n &'life0 self,\n id: ID,\n) -> Pin<Box<dyn Future<Output = Fetch<BlockQueryData<Types>>> + Send + 'async_trait>>
    where\n ID: Into<BlockId<Types>> + Send + Sync + 'async_trait,\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn get_payload<'life0, 'async_trait, ID>(\n &'life0 self,\n id: ID,\n) -> Pin<Box<dyn Future<Output = Fetch<PayloadQueryData<Types>>> + Send + 'async_trait>>
    where\n ID: Into<BlockId<Types>> + Send + Sync + 'async_trait,\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn get_vid_common<'life0, 'async_trait, ID>(\n &'life0 self,\n id: ID,\n) -> Pin<Box<dyn Future<Output = Fetch<VidCommonQueryData<Types>>> + Send + 'async_trait>>
    where\n ID: Into<BlockId<Types>> + Send + Sync + 'async_trait,\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn get_leaf_range<'life0, 'async_trait, R>(\n &'life0 self,\n range: R,\n) -> Pin<Box<dyn Future<Output = Self::LeafRange<R>> + Send + 'async_trait>>
    where\n R: RangeBounds<usize> + Send + 'static + 'async_trait,\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn get_block_range<'life0, 'async_trait, R>(\n &'life0 self,\n range: R,\n) -> Pin<Box<dyn Future<Output = Self::BlockRange<R>> + Send + 'async_trait>>
    where\n R: RangeBounds<usize> + Send + 'static + 'async_trait,\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn get_payload_range<'life0, 'async_trait, R>(\n &'life0 self,\n range: R,\n) -> Pin<Box<dyn Future<Output = Self::PayloadRange<R>> + Send + 'async_trait>>
    where\n R: RangeBounds<usize> + Send + 'static + 'async_trait,\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn get_vid_common_range<'life0, 'async_trait, R>(\n &'life0 self,\n range: R,\n) -> Pin<Box<dyn Future<Output = Self::VidCommonRange<R>> + Send + 'async_trait>>
    where\n R: RangeBounds<usize> + Send + 'static + 'async_trait,\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn get_transaction<'life0, 'async_trait>(\n &'life0 self,\n hash: TransactionHash<Types>,\n) -> Pin<Box<dyn Future<Output = Fetch<TransactionQueryData<Types>>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    Returns the transaction with the given hash.
    source§

    fn subscribe_blocks<'life0, 'async_trait>(\n &'life0 self,\n from: usize,\n) -> Pin<Box<dyn Future<Output = BoxStream<'static, BlockQueryData<Types>>> + Send + 'async_trait>>
    where\n Self: Sync + 'async_trait,\n 'life0: 'async_trait,

    source§

    fn subscribe_payloads<'life0, 'async_trait>(\n &'life0 self,\n from: usize,\n) -> Pin<Box<dyn Future<Output = BoxStream<'static, PayloadQueryData<Types>>> + Send + 'async_trait>>
    where\n Self: Sync + 'async_trait,\n 'life0: 'async_trait,

    source§

    fn subscribe_leaves<'life0, 'async_trait>(\n &'life0 self,\n from: usize,\n) -> Pin<Box<dyn Future<Output = BoxStream<'static, LeafQueryData<Types>>> + Send + 'async_trait>>
    where\n Self: Sync + 'async_trait,\n 'life0: 'async_trait,

    source§

    fn subscribe_vid_common<'life0, 'async_trait>(\n &'life0 self,\n from: usize,\n) -> Pin<Box<dyn Future<Output = BoxStream<'static, VidCommonQueryData<Types>>> + Send + 'async_trait>>
    where\n Self: Sync + 'async_trait,\n 'life0: 'async_trait,

    ","AvailabilityDataSource","hotshot_query_service::data_source::fs::FileSystemDataSource","hotshot_query_service::data_source::sql::SqlDataSource"],["
    source§

    impl<Types, S, P> Clone for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,

    source§

    fn clone(&self) -> Self

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    ","Clone","hotshot_query_service::data_source::fs::FileSystemDataSource","hotshot_query_service::data_source::sql::SqlDataSource"],["
    source§

    impl<Types, S, P> Debug for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n S: Debug,\n P: Debug,

    source§

    fn fmt(&self, __f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    ","Debug","hotshot_query_service::data_source::fs::FileSystemDataSource","hotshot_query_service::data_source::sql::SqlDataSource"],["
    source§

    impl<Types, S, P> ExplorerDataSource<Types> for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n Payload<Types>: QueryablePayload<Types>,\n Header<Types>: QueryableHeader<Types> + ExplorerHeader<Types>,\n Transaction<Types>: ExplorerTransaction,\n S: VersionedDataSource + 'static,\n for<'a> S::ReadOnly<'a>: ExplorerStorage<Types>,\n P: Send + Sync,

    source§

    fn get_block_summaries<'life0, 'async_trait>(\n &'life0 self,\n request: GetBlockSummariesRequest<Types>,\n) -> Pin<Box<dyn Future<Output = Result<Vec<BlockSummary<Types>>, GetBlockSummariesError>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    get_block_summaries is a method that retrieves a list of block\nsummaries from the blockchain. The list is generated from the given\nGetBlockSummariesRequest.
    source§

    fn get_block_detail<'life0, 'async_trait>(\n &'life0 self,\n request: BlockIdentifier<Types>,\n) -> Pin<Box<dyn Future<Output = Result<BlockDetail<Types>, GetBlockDetailError>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    get_block_detail is a method that retrieves the details of a specific\nblock from the blockchain. The block is identified by the given\nBlockIdentifier.
    source§

    fn get_transaction_summaries<'life0, 'async_trait>(\n &'life0 self,\n request: GetTransactionSummariesRequest<Types>,\n) -> Pin<Box<dyn Future<Output = Result<Vec<TransactionSummary<Types>>, GetTransactionSummariesError>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    get_transaction_summaries is a method that retrieves a list of\ntransaction summaries from the blockchain. The list is generated from\nthe given GetTransactionSummariesRequest.
    source§

    fn get_transaction_detail<'life0, 'async_trait>(\n &'life0 self,\n request: TransactionIdentifier<Types>,\n) -> Pin<Box<dyn Future<Output = Result<TransactionDetailResponse<Types>, GetTransactionDetailError>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    get_transaction_detail is a method that retrieves the details of a\nspecific transaction from the blockchain. The transaction is identified\nby the given TransactionIdentifier.
    source§

    fn get_explorer_summary<'life0, 'async_trait>(\n &'life0 self,\n) -> Pin<Box<dyn Future<Output = Result<ExplorerSummary<Types>, GetExplorerSummaryError>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    get_explorer_summary is a method that retrieves a summary overview of\nthe blockchain. This is useful for displaying information that\nindicates the overall status of the block chain.
    source§

    fn get_search_results<'life0, 'async_trait>(\n &'life0 self,\n query: TaggedBase64,\n) -> Pin<Box<dyn Future<Output = Result<SearchResult<Types>, GetSearchResultsError>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    get_search_results is a method that retrieves the results of a search\nquery against the blockchain. The results are generated from the given\nquery string.
    ","ExplorerDataSource","hotshot_query_service::data_source::fs::FileSystemDataSource","hotshot_query_service::data_source::sql::SqlDataSource"],["
    source§

    impl<Types, S, P> FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n Payload<Types>: QueryablePayload<Types>,\n Header<Types>: QueryableHeader<Types>,\n S: VersionedDataSource + PruneStorage + HasMetrics + 'static,\n for<'a> S::Transaction<'a>: UpdateAvailabilityStorage<Types> + UpdateAggregatesStorage<Types>,\n for<'a> S::ReadOnly<'a>: AvailabilityStorage<Types> + NodeStorage<Types> + PrunedHeightStorage + AggregatesStorage,\n P: AvailabilityProvider<Types>,

    source

    pub fn builder(storage: S, provider: P) -> Builder<Types, S, P>

    Build a FetchingDataSource with the given storage and provider.

    \n
    ",0,"hotshot_query_service::data_source::fs::FileSystemDataSource","hotshot_query_service::data_source::sql::SqlDataSource"],["
    source§

    impl<Types, S, P> HasMetrics for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n S: HasMetrics,

    ","HasMetrics","hotshot_query_service::data_source::fs::FileSystemDataSource","hotshot_query_service::data_source::sql::SqlDataSource"],["
    source§

    impl<Types, S, P, State, const ARITY: usize> MerklizedStateDataSource<Types, State, ARITY> for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n S: VersionedDataSource + 'static,\n for<'a> S::ReadOnly<'a>: MerklizedStateStorage<Types, State, ARITY>,\n P: Send + Sync,\n State: MerklizedState<Types, ARITY> + 'static,\n <State as MerkleTreeScheme>::Commitment: Send,

    source§

    fn get_path<'life0, 'async_trait>(\n &'life0 self,\n snapshot: Snapshot<Types, State, ARITY>,\n key: State::Key,\n) -> Pin<Box<dyn Future<Output = QueryResult<MerkleProof<State::Entry, State::Key, State::T, ARITY>>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    ","MerklizedStateDataSource","hotshot_query_service::data_source::fs::FileSystemDataSource","hotshot_query_service::data_source::sql::SqlDataSource"],["
    source§

    impl<Types, S, P> MerklizedStateHeightPersistence for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n Payload<Types>: QueryablePayload<Types>,\n S: VersionedDataSource + 'static,\n for<'a> S::ReadOnly<'a>: MerklizedStateHeightStorage,\n P: Send + Sync,

    source§

    fn get_last_state_height<'life0, 'async_trait>(\n &'life0 self,\n) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    ","MerklizedStateHeightPersistence","hotshot_query_service::data_source::fs::FileSystemDataSource","hotshot_query_service::data_source::sql::SqlDataSource"],["
    source§

    impl<Types, S, P> NodeDataSource<Types> for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n S: VersionedDataSource + 'static,\n for<'a> S::ReadOnly<'a>: NodeStorage<Types>,\n P: Send + Sync,

    source§

    fn block_height<'life0, 'async_trait>(\n &'life0 self,\n) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn count_transactions_in_range<'life0, 'async_trait>(\n &'life0 self,\n range: impl 'async_trait + RangeBounds<usize> + Send,\n) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn payload_size_in_range<'life0, 'async_trait>(\n &'life0 self,\n range: impl 'async_trait + RangeBounds<usize> + Send,\n) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn vid_share<'life0, 'async_trait, ID>(\n &'life0 self,\n id: ID,\n) -> Pin<Box<dyn Future<Output = QueryResult<VidShare>> + Send + 'async_trait>>
    where\n ID: Into<BlockId<Types>> + Send + Sync + 'async_trait,\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn sync_status<'life0, 'async_trait>(\n &'life0 self,\n) -> Pin<Box<dyn Future<Output = QueryResult<SyncStatus>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    Search the database for missing objects and generate a report.
    source§

    fn get_header_window<'life0, 'async_trait>(\n &'life0 self,\n start: impl 'async_trait + Into<WindowStart<Types>> + Send + Sync,\n end: u64,\n) -> Pin<Box<dyn Future<Output = QueryResult<TimeWindowQueryData<Header<Types>>>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn count_transactions<'life0, 'async_trait>(\n &'life0 self,\n) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where\n Self: Sync + 'async_trait,\n 'life0: 'async_trait,

    source§

    fn payload_size<'life0, 'async_trait>(\n &'life0 self,\n) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where\n Self: Sync + 'async_trait,\n 'life0: 'async_trait,

    ","NodeDataSource","hotshot_query_service::data_source::fs::FileSystemDataSource","hotshot_query_service::data_source::sql::SqlDataSource"],["
    source§

    impl<Types, S, P> StatusDataSource for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n S: VersionedDataSource + HasMetrics + Send + Sync + 'static,\n for<'a> S::ReadOnly<'a>: NodeStorage<Types>,\n P: Send + Sync,

    source§

    fn block_height<'life0, 'async_trait>(\n &'life0 self,\n) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn consensus_metrics(&self) -> QueryResult<PrometheusMetrics>

    source§

    fn elapsed_time_since_last_decide<'life0, 'async_trait>(\n &'life0 self,\n) -> Pin<Box<dyn Future<Output = QueryResult<u64>> + Send + 'async_trait>>
    where\n Self: Sync + 'async_trait,\n 'life0: 'async_trait,

    source§

    fn success_rate<'life0, 'async_trait>(\n &'life0 self,\n) -> Pin<Box<dyn Future<Output = QueryResult<f64>> + Send + 'async_trait>>
    where\n Self: Sync + 'async_trait,\n 'life0: 'async_trait,

    ","StatusDataSource","hotshot_query_service::data_source::fs::FileSystemDataSource","hotshot_query_service::data_source::sql::SqlDataSource"],["
    source§

    impl<Types, S, P> UpdateAvailabilityData<Types> for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n Payload<Types>: QueryablePayload<Types>,\n S: VersionedDataSource + 'static,\n for<'a> S::Transaction<'a>: UpdateAvailabilityStorage<Types>,\n for<'a> S::ReadOnly<'a>: AvailabilityStorage<Types> + NodeStorage<Types> + PrunedHeightStorage,\n P: AvailabilityProvider<Types>,

    source§

    async fn append(&self, info: BlockInfo<Types>) -> Result<()>

    Append information about a new block to the database.
    ","UpdateAvailabilityData","hotshot_query_service::data_source::fs::FileSystemDataSource","hotshot_query_service::data_source::sql::SqlDataSource"],["
    source§

    impl<Types, S, P> VersionedDataSource for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n S: VersionedDataSource + Send + Sync,\n P: Send + Sync,

    source§

    type Transaction<'a> = <S as VersionedDataSource>::Transaction<'a>\nwhere\n Self: 'a

    A transaction which can read and modify the data source.
    source§

    type ReadOnly<'a> = <S as VersionedDataSource>::ReadOnly<'a>\nwhere\n Self: 'a

    source§

    async fn write(&self) -> Result<Self::Transaction<'_>>

    Start an atomic transaction on the data source.
    source§

    async fn read(&self) -> Result<Self::ReadOnly<'_>>

    Start a read-only transaction on the data source. Read more
    ","VersionedDataSource","hotshot_query_service::data_source::fs::FileSystemDataSource","hotshot_query_service::data_source::sql::SqlDataSource"]]]]); + var type_impls = Object.fromEntries([["hotshot_query_service",[["
    source§

    impl<Types, S, P> AsRef<S> for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,

    source§

    fn as_ref(&self) -> &S

    Converts this type into a shared reference of the (usually inferred) input type.
    ","AsRef","hotshot_query_service::data_source::fs::FileSystemDataSource","hotshot_query_service::data_source::sql::SqlDataSource"],["
    source§

    impl<Types, S, P> AvailabilityDataSource<Types> for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n Payload<Types>: QueryablePayload<Types>,\n S: VersionedDataSource + 'static,\n for<'a> S::Transaction<'a>: UpdateAvailabilityStorage<Types>,\n for<'a> S::ReadOnly<'a>: AvailabilityStorage<Types> + NodeStorage<Types> + PrunedHeightStorage,\n P: AvailabilityProvider<Types>,

    source§

    type LeafRange<R> = Pin<Box<dyn Stream<Item = Fetch<LeafQueryData<Types>>> + Send>>\nwhere\n R: RangeBounds<usize> + Send

    source§

    type BlockRange<R> = Pin<Box<dyn Stream<Item = Fetch<BlockQueryData<Types>>> + Send>>\nwhere\n R: RangeBounds<usize> + Send

    source§

    type PayloadRange<R> = Pin<Box<dyn Stream<Item = Fetch<PayloadQueryData<Types>>> + Send>>\nwhere\n R: RangeBounds<usize> + Send

    source§

    type PayloadMetadataRange<R> = Pin<Box<dyn Stream<Item = Fetch<PayloadMetadata<Types>>> + Send>>\nwhere\n R: RangeBounds<usize> + Send

    source§

    type VidCommonRange<R> = Pin<Box<dyn Stream<Item = Fetch<VidCommonQueryData<Types>>> + Send>>\nwhere\n R: RangeBounds<usize> + Send

    source§

    type VidCommonMetadataRange<R> = Pin<Box<dyn Stream<Item = Fetch<VidCommonMetadata<Types>>> + Send>>\nwhere\n R: RangeBounds<usize> + Send

    source§

    fn get_leaf<'life0, 'async_trait, ID>(\n &'life0 self,\n id: ID,\n) -> Pin<Box<dyn Future<Output = Fetch<LeafQueryData<Types>>> + Send + 'async_trait>>
    where\n ID: Into<LeafId<Types>> + Send + Sync + 'async_trait,\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn get_block<'life0, 'async_trait, ID>(\n &'life0 self,\n id: ID,\n) -> Pin<Box<dyn Future<Output = Fetch<BlockQueryData<Types>>> + Send + 'async_trait>>
    where\n ID: Into<BlockId<Types>> + Send + Sync + 'async_trait,\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn get_payload<'life0, 'async_trait, ID>(\n &'life0 self,\n id: ID,\n) -> Pin<Box<dyn Future<Output = Fetch<PayloadQueryData<Types>>> + Send + 'async_trait>>
    where\n ID: Into<BlockId<Types>> + Send + Sync + 'async_trait,\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn get_payload_metadata<'life0, 'async_trait, ID>(\n &'life0 self,\n id: ID,\n) -> Pin<Box<dyn Future<Output = Fetch<PayloadMetadata<Types>>> + Send + 'async_trait>>
    where\n ID: Into<BlockId<Types>> + Send + Sync + 'async_trait,\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn get_vid_common<'life0, 'async_trait, ID>(\n &'life0 self,\n id: ID,\n) -> Pin<Box<dyn Future<Output = Fetch<VidCommonQueryData<Types>>> + Send + 'async_trait>>
    where\n ID: Into<BlockId<Types>> + Send + Sync + 'async_trait,\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn get_vid_common_metadata<'life0, 'async_trait, ID>(\n &'life0 self,\n id: ID,\n) -> Pin<Box<dyn Future<Output = Fetch<VidCommonMetadata<Types>>> + Send + 'async_trait>>
    where\n ID: Into<BlockId<Types>> + Send + Sync + 'async_trait,\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn get_leaf_range<'life0, 'async_trait, R>(\n &'life0 self,\n range: R,\n) -> Pin<Box<dyn Future<Output = Self::LeafRange<R>> + Send + 'async_trait>>
    where\n R: RangeBounds<usize> + Send + 'static + 'async_trait,\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn get_block_range<'life0, 'async_trait, R>(\n &'life0 self,\n range: R,\n) -> Pin<Box<dyn Future<Output = Self::BlockRange<R>> + Send + 'async_trait>>
    where\n R: RangeBounds<usize> + Send + 'static + 'async_trait,\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn get_payload_range<'life0, 'async_trait, R>(\n &'life0 self,\n range: R,\n) -> Pin<Box<dyn Future<Output = Self::PayloadRange<R>> + Send + 'async_trait>>
    where\n R: RangeBounds<usize> + Send + 'static + 'async_trait,\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn get_payload_metadata_range<'life0, 'async_trait, R>(\n &'life0 self,\n range: R,\n) -> Pin<Box<dyn Future<Output = Self::PayloadMetadataRange<R>> + Send + 'async_trait>>
    where\n R: RangeBounds<usize> + Send + 'static + 'async_trait,\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn get_vid_common_range<'life0, 'async_trait, R>(\n &'life0 self,\n range: R,\n) -> Pin<Box<dyn Future<Output = Self::VidCommonRange<R>> + Send + 'async_trait>>
    where\n R: RangeBounds<usize> + Send + 'static + 'async_trait,\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn get_vid_common_metadata_range<'life0, 'async_trait, R>(\n &'life0 self,\n range: R,\n) -> Pin<Box<dyn Future<Output = Self::VidCommonMetadataRange<R>> + Send + 'async_trait>>
    where\n R: RangeBounds<usize> + Send + 'static + 'async_trait,\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn get_transaction<'life0, 'async_trait>(\n &'life0 self,\n hash: TransactionHash<Types>,\n) -> Pin<Box<dyn Future<Output = Fetch<TransactionQueryData<Types>>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    Returns the transaction with the given hash.
    source§

    fn subscribe_blocks<'life0, 'async_trait>(\n &'life0 self,\n from: usize,\n) -> Pin<Box<dyn Future<Output = BoxStream<'static, BlockQueryData<Types>>> + Send + 'async_trait>>
    where\n Self: Sync + 'async_trait,\n 'life0: 'async_trait,

    source§

    fn subscribe_payloads<'life0, 'async_trait>(\n &'life0 self,\n from: usize,\n) -> Pin<Box<dyn Future<Output = BoxStream<'static, PayloadQueryData<Types>>> + Send + 'async_trait>>
    where\n Self: Sync + 'async_trait,\n 'life0: 'async_trait,

    source§

    fn subscribe_payload_metadata<'life0, 'async_trait>(\n &'life0 self,\n from: usize,\n) -> Pin<Box<dyn Future<Output = BoxStream<'static, PayloadMetadata<Types>>> + Send + 'async_trait>>
    where\n Self: Sync + 'async_trait,\n 'life0: 'async_trait,

    source§

    fn subscribe_leaves<'life0, 'async_trait>(\n &'life0 self,\n from: usize,\n) -> Pin<Box<dyn Future<Output = BoxStream<'static, LeafQueryData<Types>>> + Send + 'async_trait>>
    where\n Self: Sync + 'async_trait,\n 'life0: 'async_trait,

    source§

    fn subscribe_vid_common<'life0, 'async_trait>(\n &'life0 self,\n from: usize,\n) -> Pin<Box<dyn Future<Output = BoxStream<'static, VidCommonQueryData<Types>>> + Send + 'async_trait>>
    where\n Self: Sync + 'async_trait,\n 'life0: 'async_trait,

    source§

    fn subscribe_vid_common_metadata<'life0, 'async_trait>(\n &'life0 self,\n from: usize,\n) -> Pin<Box<dyn Future<Output = BoxStream<'static, VidCommonMetadata<Types>>> + Send + 'async_trait>>
    where\n Self: Sync + 'async_trait,\n 'life0: 'async_trait,

    ","AvailabilityDataSource","hotshot_query_service::data_source::fs::FileSystemDataSource","hotshot_query_service::data_source::sql::SqlDataSource"],["
    source§

    impl<Types, S, P> Clone for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,

    source§

    fn clone(&self) -> Self

    Returns a copy of the value. Read more
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    ","Clone","hotshot_query_service::data_source::fs::FileSystemDataSource","hotshot_query_service::data_source::sql::SqlDataSource"],["
    source§

    impl<Types, S, P> Debug for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n S: Debug,\n P: Debug,

    source§

    fn fmt(&self, __f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    ","Debug","hotshot_query_service::data_source::fs::FileSystemDataSource","hotshot_query_service::data_source::sql::SqlDataSource"],["
    source§

    impl<Types, S, P> ExplorerDataSource<Types> for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n Payload<Types>: QueryablePayload<Types>,\n Header<Types>: QueryableHeader<Types> + ExplorerHeader<Types>,\n Transaction<Types>: ExplorerTransaction,\n S: VersionedDataSource + 'static,\n for<'a> S::ReadOnly<'a>: ExplorerStorage<Types>,\n P: Send + Sync,

    source§

    fn get_block_summaries<'life0, 'async_trait>(\n &'life0 self,\n request: GetBlockSummariesRequest<Types>,\n) -> Pin<Box<dyn Future<Output = Result<Vec<BlockSummary<Types>>, GetBlockSummariesError>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    get_block_summaries is a method that retrieves a list of block\nsummaries from the blockchain. The list is generated from the given\nGetBlockSummariesRequest.
    source§

    fn get_block_detail<'life0, 'async_trait>(\n &'life0 self,\n request: BlockIdentifier<Types>,\n) -> Pin<Box<dyn Future<Output = Result<BlockDetail<Types>, GetBlockDetailError>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    get_block_detail is a method that retrieves the details of a specific\nblock from the blockchain. The block is identified by the given\nBlockIdentifier.
    source§

    fn get_transaction_summaries<'life0, 'async_trait>(\n &'life0 self,\n request: GetTransactionSummariesRequest<Types>,\n) -> Pin<Box<dyn Future<Output = Result<Vec<TransactionSummary<Types>>, GetTransactionSummariesError>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    get_transaction_summaries is a method that retrieves a list of\ntransaction summaries from the blockchain. The list is generated from\nthe given GetTransactionSummariesRequest.
    source§

    fn get_transaction_detail<'life0, 'async_trait>(\n &'life0 self,\n request: TransactionIdentifier<Types>,\n) -> Pin<Box<dyn Future<Output = Result<TransactionDetailResponse<Types>, GetTransactionDetailError>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    get_transaction_detail is a method that retrieves the details of a\nspecific transaction from the blockchain. The transaction is identified\nby the given TransactionIdentifier.
    source§

    fn get_explorer_summary<'life0, 'async_trait>(\n &'life0 self,\n) -> Pin<Box<dyn Future<Output = Result<ExplorerSummary<Types>, GetExplorerSummaryError>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    get_explorer_summary is a method that retrieves a summary overview of\nthe blockchain. This is useful for displaying information that\nindicates the overall status of the block chain.
    source§

    fn get_search_results<'life0, 'async_trait>(\n &'life0 self,\n query: TaggedBase64,\n) -> Pin<Box<dyn Future<Output = Result<SearchResult<Types>, GetSearchResultsError>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    get_search_results is a method that retrieves the results of a search\nquery against the blockchain. The results are generated from the given\nquery string.
    ","ExplorerDataSource","hotshot_query_service::data_source::fs::FileSystemDataSource","hotshot_query_service::data_source::sql::SqlDataSource"],["
    source§

    impl<Types, S, P> FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n Payload<Types>: QueryablePayload<Types>,\n Header<Types>: QueryableHeader<Types>,\n S: VersionedDataSource + PruneStorage + HasMetrics + 'static,\n for<'a> S::Transaction<'a>: UpdateAvailabilityStorage<Types> + UpdateAggregatesStorage<Types>,\n for<'a> S::ReadOnly<'a>: AvailabilityStorage<Types> + NodeStorage<Types> + PrunedHeightStorage + AggregatesStorage,\n P: AvailabilityProvider<Types>,

    source

    pub fn builder(storage: S, provider: P) -> Builder<Types, S, P>

    Build a FetchingDataSource with the given storage and provider.

    \n
    ",0,"hotshot_query_service::data_source::fs::FileSystemDataSource","hotshot_query_service::data_source::sql::SqlDataSource"],["
    source§

    impl<Types, S, P> HasMetrics for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n S: HasMetrics,

    ","HasMetrics","hotshot_query_service::data_source::fs::FileSystemDataSource","hotshot_query_service::data_source::sql::SqlDataSource"],["
    source§

    impl<Types, S, P, State, const ARITY: usize> MerklizedStateDataSource<Types, State, ARITY> for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n S: VersionedDataSource + 'static,\n for<'a> S::ReadOnly<'a>: MerklizedStateStorage<Types, State, ARITY>,\n P: Send + Sync,\n State: MerklizedState<Types, ARITY> + 'static,\n <State as MerkleTreeScheme>::Commitment: Send,

    source§

    fn get_path<'life0, 'async_trait>(\n &'life0 self,\n snapshot: Snapshot<Types, State, ARITY>,\n key: State::Key,\n) -> Pin<Box<dyn Future<Output = QueryResult<MerkleProof<State::Entry, State::Key, State::T, ARITY>>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    ","MerklizedStateDataSource","hotshot_query_service::data_source::fs::FileSystemDataSource","hotshot_query_service::data_source::sql::SqlDataSource"],["
    source§

    impl<Types, S, P> MerklizedStateHeightPersistence for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n Payload<Types>: QueryablePayload<Types>,\n S: VersionedDataSource + 'static,\n for<'a> S::ReadOnly<'a>: MerklizedStateHeightStorage,\n P: Send + Sync,

    source§

    fn get_last_state_height<'life0, 'async_trait>(\n &'life0 self,\n) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    ","MerklizedStateHeightPersistence","hotshot_query_service::data_source::fs::FileSystemDataSource","hotshot_query_service::data_source::sql::SqlDataSource"],["
    source§

    impl<Types, S, P> NodeDataSource<Types> for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n S: VersionedDataSource + 'static,\n for<'a> S::ReadOnly<'a>: NodeStorage<Types>,\n P: Send + Sync,

    source§

    fn block_height<'life0, 'async_trait>(\n &'life0 self,\n) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn count_transactions_in_range<'life0, 'async_trait>(\n &'life0 self,\n range: impl 'async_trait + RangeBounds<usize> + Send,\n) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn payload_size_in_range<'life0, 'async_trait>(\n &'life0 self,\n range: impl 'async_trait + RangeBounds<usize> + Send,\n) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn vid_share<'life0, 'async_trait, ID>(\n &'life0 self,\n id: ID,\n) -> Pin<Box<dyn Future<Output = QueryResult<VidShare>> + Send + 'async_trait>>
    where\n ID: Into<BlockId<Types>> + Send + Sync + 'async_trait,\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn sync_status<'life0, 'async_trait>(\n &'life0 self,\n) -> Pin<Box<dyn Future<Output = QueryResult<SyncStatus>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    Search the database for missing objects and generate a report.
    source§

    fn get_header_window<'life0, 'async_trait>(\n &'life0 self,\n start: impl 'async_trait + Into<WindowStart<Types>> + Send + Sync,\n end: u64,\n) -> Pin<Box<dyn Future<Output = QueryResult<TimeWindowQueryData<Header<Types>>>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn count_transactions<'life0, 'async_trait>(\n &'life0 self,\n) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where\n Self: Sync + 'async_trait,\n 'life0: 'async_trait,

    source§

    fn payload_size<'life0, 'async_trait>(\n &'life0 self,\n) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where\n Self: Sync + 'async_trait,\n 'life0: 'async_trait,

    ","NodeDataSource","hotshot_query_service::data_source::fs::FileSystemDataSource","hotshot_query_service::data_source::sql::SqlDataSource"],["
    source§

    impl<Types, S, P> StatusDataSource for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n S: VersionedDataSource + HasMetrics + Send + Sync + 'static,\n for<'a> S::ReadOnly<'a>: NodeStorage<Types>,\n P: Send + Sync,

    source§

    fn block_height<'life0, 'async_trait>(\n &'life0 self,\n) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn consensus_metrics(&self) -> QueryResult<PrometheusMetrics>

    source§

    fn elapsed_time_since_last_decide<'life0, 'async_trait>(\n &'life0 self,\n) -> Pin<Box<dyn Future<Output = QueryResult<u64>> + Send + 'async_trait>>
    where\n Self: Sync + 'async_trait,\n 'life0: 'async_trait,

    source§

    fn success_rate<'life0, 'async_trait>(\n &'life0 self,\n) -> Pin<Box<dyn Future<Output = QueryResult<f64>> + Send + 'async_trait>>
    where\n Self: Sync + 'async_trait,\n 'life0: 'async_trait,

    ","StatusDataSource","hotshot_query_service::data_source::fs::FileSystemDataSource","hotshot_query_service::data_source::sql::SqlDataSource"],["
    source§

    impl<Types, S, P> UpdateAvailabilityData<Types> for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n Payload<Types>: QueryablePayload<Types>,\n S: VersionedDataSource + 'static,\n for<'a> S::Transaction<'a>: UpdateAvailabilityStorage<Types>,\n for<'a> S::ReadOnly<'a>: AvailabilityStorage<Types> + NodeStorage<Types> + PrunedHeightStorage,\n P: AvailabilityProvider<Types>,

    source§

    async fn append(&self, info: BlockInfo<Types>) -> Result<()>

    Append information about a new block to the database.
    ","UpdateAvailabilityData","hotshot_query_service::data_source::fs::FileSystemDataSource","hotshot_query_service::data_source::sql::SqlDataSource"],["
    source§

    impl<Types, S, P> VersionedDataSource for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n S: VersionedDataSource + Send + Sync,\n P: Send + Sync,

    source§

    type Transaction<'a> = <S as VersionedDataSource>::Transaction<'a>\nwhere\n Self: 'a

    A transaction which can read and modify the data source.
    source§

    type ReadOnly<'a> = <S as VersionedDataSource>::ReadOnly<'a>\nwhere\n Self: 'a

    source§

    async fn write(&self) -> Result<Self::Transaction<'_>>

    Start an atomic transaction on the data source.
    source§

    async fn read(&self) -> Result<Self::ReadOnly<'_>>

    Start a read-only transaction on the data source. Read more
    ","VersionedDataSource","hotshot_query_service::data_source::fs::FileSystemDataSource","hotshot_query_service::data_source::sql::SqlDataSource"]]]]); if (window.register_type_impls) { window.register_type_impls(type_impls); } else { window.pending_type_impls = type_impls; } })() -//{"start":55,"fragment_lengths":[107340]} \ No newline at end of file +//{"start":55,"fragment_lengths":[122368]} \ No newline at end of file