From 05598fa33de1a4b1cd678ae95616c8791e45d152 Mon Sep 17 00:00:00 2001 From: jbearer Date: Fri, 16 Feb 2024 22:02:43 +0000 Subject: [PATCH] deploy: 975d6b07d20ba2755224adc17c3253b676d2ab5c --- hotshot_query_service/all.html | 4 +- .../availability/enum.BlockId.html | 4 +- .../availability/enum.Error.html | 12 +- .../availability/enum.LeafId.html | 2 +- .../availability/struct.BlockQueryData.html | 2 +- .../trait.AvailabilityDataSource.html | 22 +- .../availability/trait.QueryablePayload.html | 2 +- .../trait.UpdateAvailabilityData.html | 11 +- .../availability_tests/fn.test_range.html | 2 + .../availability_tests/fn.test_update.html | 2 + .../data_source/availability_tests/index.html | 3 + .../availability_tests/sidebar-items.js | 1 + .../fetching/enum.BlockRequest.html | 34 +- .../data_source/fetching/index.html | 2 +- .../data_source/fetching/struct.Builder.html | 6 +- .../fetching/struct.FetchingDataSource.html | 87 +- .../fetching/struct.StorageReadGuard.html | 8 +- .../fetching/struct.StorageWriteGuard.html | 10 +- .../fetching/trait.AvailabilityProvider.html | 4 +- hotshot_query_service/data_source/index.html | 4 +- .../node_tests/fn.test_counters.html | 2 + .../node_tests/fn.test_proposer_queries.html | 2 + .../node_tests/fn.test_sync_status.html | 2 + .../data_source/node_tests/index.html | 3 + .../data_source/node_tests/sidebar-items.js | 1 + .../persistence_tests/fn.test_reset.html | 2 + .../persistence_tests/fn.test_revert.html | 2 + .../data_source/persistence_tests/index.html | 3 + .../persistence_tests/sidebar-items.js | 1 + .../data_source/sidebar-items.js | 2 +- .../data_source/sql/index.html | 4 +- .../data_source/sql/sidebar-items.js | 2 +- .../data_source/sql/testing/index.html | 2 + .../data_source/sql/testing/sidebar-items.js | 1 + .../data_source/sql/type.SqlDataSource.html | 37 +- .../status_tests/fn.test_metrics.html | 2 + .../data_source/status_tests/index.html | 3 + .../data_source/status_tests/sidebar-items.js | 1 + .../data_source/storage/fs/index.html | 2 +- .../storage/fs/struct.FileSystemStorage.html | 74 +- .../data_source/storage/index.html | 4 +- .../data_source/storage/no_storage/index.html | 2 + .../storage/no_storage/sidebar-items.js | 1 + .../storage/no_storage/struct.NoStorage.html | 228 ++++ .../no_storage/testing/enum.DataSource.html | 277 +++++ .../no_storage/testing/enum.Storage.html | 140 +++ .../storage/no_storage/testing/index.html | 2 + .../no_storage/testing/sidebar-items.js | 1 + .../data_source/storage/sidebar-items.js | 2 +- .../data_source/storage/sql/index.html | 4 +- .../data_source/storage/sql/sidebar-items.js | 2 +- .../storage/sql/struct.SqlStorage.html | 38 +- .../storage/sql/struct.Transaction.html | 30 +- .../storage/sql/testing/index.html | 2 + .../storage/sql/testing/sidebar-items.js | 1 + .../storage/sql/testing/struct.TmpDb.html | 128 +++ .../data_source/storage/sql/trait.Query.html | 18 +- .../storage/trait.AvailabilityStorage.html | 3 +- .../struct.ExtensibleDataSource.html | 62 +- .../data_source/struct.MetricsDataSource.html | 25 +- .../data_source/trait.UpdateDataSource.html | 8 +- .../trait.VersionedDataSource.html | 14 +- .../type.FileSystemDataSource.html | 25 +- hotshot_query_service/enum.Error.html | 6 +- hotshot_query_service/enum.QueryError.html | 20 +- .../fetching/provider/index.html | 4 +- .../fetching/provider/sidebar-items.js | 2 +- .../fetching/provider/struct.AnyProvider.html | 6 +- .../fetching/provider/struct.NoFetching.html | 2 +- .../provider/struct.QueryServiceProvider.html | 2 +- .../provider/struct.TestProvider.html} | 36 +- .../provider/testing/struct.TestProvider.html | 11 + .../fetching/provider/trait.Provider.html | 5 +- .../fetching/request/struct.LeafRequest.html | 6 +- .../fn.run_standalone_service.html | 2 +- hotshot_query_service/index.html | 12 +- ...macro.instantiate_availability_tests!.html | 11 + .../macro.instantiate_availability_tests.html | 4 + .../macro.instantiate_data_source_tests.html | 2 +- .../macro.instantiate_node_tests!.html | 11 + .../macro.instantiate_node_tests.html | 4 + .../macro.instantiate_persistence_tests!.html | 11 + .../macro.instantiate_persistence_tests.html | 4 + .../macro.instantiate_status_tests!.html | 11 + .../macro.instantiate_status_tests.html | 4 + .../data_source/trait.UpdateNodeData.html | 11 - hotshot_query_service/node/enum.Error.html | 24 +- hotshot_query_service/node/fn.define_api.html | 2 +- hotshot_query_service/node/index.html | 4 +- hotshot_query_service/node/sidebar-items.js | 2 +- .../node/trait.NodeDataSource.html | 39 +- .../node/trait.UpdateNodeData.html | 25 - hotshot_query_service/sidebar-items.js | 2 +- .../status/trait.StatusDataSource.html | 4 +- .../struct.MissingSnafu.html | 10 +- .../struct.NotFoundSnafu.html | 10 +- hotshot_query_service/struct.Options.html | 8 +- hotshot_query_service/struct.Snafu.html | 10 +- .../testing/consensus/constant.NUM_NODES.html | 2 + .../testing/consensus/index.html | 2 + .../testing/consensus/sidebar-items.js | 1 + .../testing/consensus/struct.MockNetwork.html | 129 +++ .../consensus/trait.DataSourceLifeCycle.html | 61 ++ .../consensus/trait.TestableDataSource.html | 3 + .../consensus/type.MockDataSource.html | 2 + .../testing/fn.setup_test.html | 2 + hotshot_query_service/testing/fn.sleep.html | 2 + hotshot_query_service/testing/index.html | 2 + .../testing/mocks/fn.mock_transaction.html | 2 + .../testing/mocks/index.html | 2 + .../testing/mocks/sidebar-items.js | 1 + .../testing/mocks/struct.MockNodeImpl.html | 157 +++ .../testing/mocks/struct.MockTypes.html | 260 +++++ .../testing/mocks/type.MockHeader.html | 7 + .../testing/mocks/type.MockMembership.html | 2 + .../testing/mocks/type.MockNetwork.html | 2 + .../testing/mocks/type.MockPayload.html | 40 + .../mocks/type.MockQuorumProposal.html | 15 + .../testing/mocks/type.MockTransaction.html | 2 + .../testing/sidebar-items.js | 1 + hotshot_query_service/type.Header.html | 2 +- hotshot_query_service/type.Metadata.html | 2 +- hotshot_query_service/type.Payload.html | 2 +- hotshot_query_service/type.QueryResult.html | 2 +- hotshot_query_service/type.SignatureKey.html | 2 +- hotshot_query_service/type.Transaction.html | 2 +- search-index.js | 2 +- src-files.js | 2 +- src/hotshot_query_service/data_source.rs.html | 116 +- .../data_source/extension.rs.html | 30 +- .../data_source/fetching.rs.html | 60 +- .../data_source/storage/fs.rs.html | 66 +- .../data_source/storage/ledger_log.rs.html | 22 +- .../data_source/storage/no_storage.rs.html | 996 ++++++++++++++++++ .../data_source/storage/sql.rs.html | 34 +- .../data_source/update.rs.html | 20 +- .../fetching/provider/testing.rs.html | 232 ++++ src/hotshot_query_service/lib.rs.html | 28 + src/hotshot_query_service/node.rs.html | 54 +- .../node/data_source.rs.html | 32 +- src/hotshot_query_service/testing.rs.html | 70 ++ .../testing/consensus.rs.html | 554 ++++++++++ .../testing/mocks.rs.html | 188 ++++ trait.impl/clap_builder/derive/trait.Args.js | 2 +- .../derive/trait.FromArgMatches.js | 2 +- trait.impl/core/clone/trait.Clone.js | 2 +- trait.impl/core/cmp/trait.Eq.js | 2 +- trait.impl/core/cmp/trait.Ord.js | 2 +- trait.impl/core/cmp/trait.PartialEq.js | 2 +- trait.impl/core/cmp/trait.PartialOrd.js | 2 +- trait.impl/core/convert/trait.From.js | 2 +- trait.impl/core/default/trait.Default.js | 2 +- trait.impl/core/error/trait.Error.js | 2 +- trait.impl/core/fmt/trait.Debug.js | 2 +- trait.impl/core/fmt/trait.Display.js | 2 +- trait.impl/core/hash/trait.Hash.js | 2 +- trait.impl/core/marker/trait.Copy.js | 2 +- trait.impl/core/marker/trait.Freeze.js | 2 +- trait.impl/core/marker/trait.Send.js | 2 +- trait.impl/core/marker/trait.StructuralEq.js | 2 +- .../core/marker/trait.StructuralPartialEq.js | 2 +- trait.impl/core/marker/trait.Sync.js | 2 +- trait.impl/core/marker/trait.Unpin.js | 2 +- trait.impl/core/ops/deref/trait.Deref.js | 2 +- trait.impl/core/ops/drop/trait.Drop.js | 2 +- .../panic/unwind_safe/trait.RefUnwindSafe.js | 2 +- .../panic/unwind_safe/trait.UnwindSafe.js | 2 +- .../query_data/trait.QueryablePayload.js} | 0 .../consensus/trait.DataSourceLifeCycle.js | 3 + .../consensus/trait.TestableDataSource.js | 3 + .../trait.NodeImplementation.js | 3 + .../node_implementation/trait.NodeType.js | 3 + trait.impl/serde/de/trait.Deserialize.js | 2 +- trait.impl/serde/ser/trait.Serialize.js | 2 +- trait.impl/snafu/trait.ErrorCompat.js | 2 +- trait.impl/snafu/trait.IntoError.js | 2 +- .../struct.GeneralStaticCommittee.js | 3 + .../memory_network/struct.MemoryNetwork.js | 3 + .../block_types/struct.TestBlockHeader.js | 3 + .../block_types/struct.TestBlockPayload.js | 3 + .../block_types/struct.TestTransaction.js | 3 + .../data_source/fetching/struct.Builder.js | 2 +- .../fetching/struct.FetchingDataSource.js | 2 +- .../data_source/type.FileSystemDataSource.js | 3 + .../data/struct.QuorumProposal.js | 3 + 185 files changed, 4465 insertions(+), 557 deletions(-) create mode 100644 hotshot_query_service/data_source/availability_tests/fn.test_range.html create mode 100644 hotshot_query_service/data_source/availability_tests/fn.test_update.html create mode 100644 hotshot_query_service/data_source/availability_tests/index.html create mode 100644 hotshot_query_service/data_source/availability_tests/sidebar-items.js create mode 100644 hotshot_query_service/data_source/node_tests/fn.test_counters.html create mode 100644 hotshot_query_service/data_source/node_tests/fn.test_proposer_queries.html create mode 100644 hotshot_query_service/data_source/node_tests/fn.test_sync_status.html create mode 100644 hotshot_query_service/data_source/node_tests/index.html create mode 100644 hotshot_query_service/data_source/node_tests/sidebar-items.js create mode 100644 hotshot_query_service/data_source/persistence_tests/fn.test_reset.html create mode 100644 hotshot_query_service/data_source/persistence_tests/fn.test_revert.html create mode 100644 hotshot_query_service/data_source/persistence_tests/index.html create mode 100644 hotshot_query_service/data_source/persistence_tests/sidebar-items.js create mode 100644 hotshot_query_service/data_source/sql/testing/index.html create mode 100644 hotshot_query_service/data_source/sql/testing/sidebar-items.js create mode 100644 hotshot_query_service/data_source/status_tests/fn.test_metrics.html create mode 100644 hotshot_query_service/data_source/status_tests/index.html create mode 100644 hotshot_query_service/data_source/status_tests/sidebar-items.js create mode 100644 hotshot_query_service/data_source/storage/no_storage/index.html create mode 100644 hotshot_query_service/data_source/storage/no_storage/sidebar-items.js create mode 100644 hotshot_query_service/data_source/storage/no_storage/struct.NoStorage.html create mode 100644 hotshot_query_service/data_source/storage/no_storage/testing/enum.DataSource.html create mode 100644 hotshot_query_service/data_source/storage/no_storage/testing/enum.Storage.html create mode 100644 hotshot_query_service/data_source/storage/no_storage/testing/index.html create mode 100644 hotshot_query_service/data_source/storage/no_storage/testing/sidebar-items.js create mode 100644 hotshot_query_service/data_source/storage/sql/testing/index.html create mode 100644 hotshot_query_service/data_source/storage/sql/testing/sidebar-items.js create mode 100644 hotshot_query_service/data_source/storage/sql/testing/struct.TmpDb.html rename hotshot_query_service/{node/struct.SyncStatusSnafu.html => fetching/provider/struct.TestProvider.html} (79%) create mode 100644 hotshot_query_service/fetching/provider/testing/struct.TestProvider.html create mode 100644 hotshot_query_service/macro.instantiate_availability_tests!.html create mode 100644 hotshot_query_service/macro.instantiate_availability_tests.html create mode 100644 hotshot_query_service/macro.instantiate_node_tests!.html create mode 100644 hotshot_query_service/macro.instantiate_node_tests.html create mode 100644 hotshot_query_service/macro.instantiate_persistence_tests!.html create mode 100644 hotshot_query_service/macro.instantiate_persistence_tests.html create mode 100644 hotshot_query_service/macro.instantiate_status_tests!.html create mode 100644 hotshot_query_service/macro.instantiate_status_tests.html delete mode 100644 hotshot_query_service/node/data_source/trait.UpdateNodeData.html delete mode 100644 hotshot_query_service/node/trait.UpdateNodeData.html create mode 100644 hotshot_query_service/testing/consensus/constant.NUM_NODES.html create mode 100644 hotshot_query_service/testing/consensus/index.html create mode 100644 hotshot_query_service/testing/consensus/sidebar-items.js create mode 100644 hotshot_query_service/testing/consensus/struct.MockNetwork.html create mode 100644 hotshot_query_service/testing/consensus/trait.DataSourceLifeCycle.html create mode 100644 hotshot_query_service/testing/consensus/trait.TestableDataSource.html create mode 100644 hotshot_query_service/testing/consensus/type.MockDataSource.html create mode 100644 hotshot_query_service/testing/fn.setup_test.html create mode 100644 hotshot_query_service/testing/fn.sleep.html create mode 100644 hotshot_query_service/testing/index.html create mode 100644 hotshot_query_service/testing/mocks/fn.mock_transaction.html create mode 100644 hotshot_query_service/testing/mocks/index.html create mode 100644 hotshot_query_service/testing/mocks/sidebar-items.js create mode 100644 hotshot_query_service/testing/mocks/struct.MockNodeImpl.html create mode 100644 hotshot_query_service/testing/mocks/struct.MockTypes.html create mode 100644 hotshot_query_service/testing/mocks/type.MockHeader.html create mode 100644 hotshot_query_service/testing/mocks/type.MockMembership.html create mode 100644 hotshot_query_service/testing/mocks/type.MockNetwork.html create mode 100644 hotshot_query_service/testing/mocks/type.MockPayload.html create mode 100644 hotshot_query_service/testing/mocks/type.MockQuorumProposal.html create mode 100644 hotshot_query_service/testing/mocks/type.MockTransaction.html create mode 100644 hotshot_query_service/testing/sidebar-items.js create mode 100644 src/hotshot_query_service/data_source/storage/no_storage.rs.html create mode 100644 src/hotshot_query_service/fetching/provider/testing.rs.html create mode 100644 src/hotshot_query_service/testing.rs.html create mode 100644 src/hotshot_query_service/testing/consensus.rs.html create mode 100644 src/hotshot_query_service/testing/mocks.rs.html rename trait.impl/hotshot_query_service/{node/data_source/trait.UpdateNodeData.js => availability/query_data/trait.QueryablePayload.js} (100%) create mode 100644 trait.impl/hotshot_query_service/testing/consensus/trait.DataSourceLifeCycle.js create mode 100644 trait.impl/hotshot_query_service/testing/consensus/trait.TestableDataSource.js create mode 100644 trait.impl/hotshot_types/traits/node_implementation/trait.NodeImplementation.js create mode 100644 trait.impl/hotshot_types/traits/node_implementation/trait.NodeType.js create mode 100644 type.impl/hotshot/traits/election/static_committee/struct.GeneralStaticCommittee.js create mode 100644 type.impl/hotshot/traits/networking/memory_network/struct.MemoryNetwork.js create mode 100644 type.impl/hotshot_example_types/block_types/struct.TestBlockHeader.js create mode 100644 type.impl/hotshot_example_types/block_types/struct.TestBlockPayload.js create mode 100644 type.impl/hotshot_example_types/block_types/struct.TestTransaction.js create mode 100644 type.impl/hotshot_query_service/data_source/type.FileSystemDataSource.js create mode 100644 type.impl/hotshot_types/data/struct.QuorumProposal.js diff --git a/hotshot_query_service/all.html b/hotshot_query_service/all.html index 57857e874..087e89cc1 100644 --- a/hotshot_query_service/all.html +++ b/hotshot_query_service/all.html @@ -1,2 +1,2 @@ -List of all items in this crate -

List of all items

Structs

Enums

Traits

Macros

Functions

Type Aliases

\ 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 13905ade0..cc713f168 100644 --- a/hotshot_query_service/availability/enum.BlockId.html +++ b/hotshot_query_service/availability/enum.BlockId.html @@ -3,8 +3,8 @@ 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> From<BlockId<Types>> for BlockRequest<Types>
where - Types: NodeType,

source§

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

Converts to this type from the input type.
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> From<BlockId<Types>> for BlockRequest<Types>
where + Types: NodeType,

source§

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

Converts to this type from the input type.
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 diff --git a/hotshot_query_service/availability/enum.Error.html b/hotshot_query_service/availability/enum.Error.html index 3c1f4619b..e48516f7e 100644 --- a/hotshot_query_service/availability/enum.Error.html +++ b/hotshot_query_service/availability/enum.Error.html @@ -25,20 +25,20 @@ 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)>

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 Error

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<(String, StatusCode)> for Error

source§

fn from(original: (String, StatusCode)) -> Error

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(original: Error) -> Error

Converts to this type from the input type.
source§

impl From<RequestError> for Error

source§

fn from(original: RequestError) -> Error

Converts to this type from the input type.
source§

impl<__T0, __T1> IntoError<Error> for CustomSnafu<__T0, __T1>
where +and continuing with recursive calls to Error::source. Read more

source§

impl From<(String, StatusCode)> for Error

source§

fn from(original: (String, StatusCode)) -> Error

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(original: Error) -> Error

Converts to this type from the input type.
source§

impl From<RequestError> for Error

source§

fn from(original: RequestError) -> Error

Converts to this type from the input type.
source§

impl<__T0, __T1> IntoError<Error> for CustomSnafu<__T0, __T1>
where Error: Error + ErrorCompat, __T0: Into<String>, - __T1: Into<StatusCode>,

§

type Source = NoneError

The underlying error
source§

fn into_error(self, error: Self::Source) -> Error

Combine the information to produce the error
source§

impl<__T0> IntoError<Error> for FetchBlockSnafu<__T0>
where + __T1: Into<StatusCode>,

§

type Source = NoneError

The underlying error
source§

fn into_error(self, error: Self::Source) -> Error

Combine the information to produce the error
source§

impl<__T0> IntoError<Error> for FetchBlockSnafu<__T0>
where Error: Error + ErrorCompat, - __T0: Into<String>,

§

type Source = NoneError

The underlying error
source§

fn into_error(self, error: Self::Source) -> Error

Combine the information to produce the error
source§

impl<__T0> IntoError<Error> for FetchLeafSnafu<__T0>
where + __T0: Into<String>,

§

type Source = NoneError

The underlying error
source§

fn into_error(self, error: Self::Source) -> Error

Combine the information to produce the error
source§

impl<__T0> IntoError<Error> for FetchLeafSnafu<__T0>
where Error: Error + ErrorCompat, - __T0: Into<String>,

§

type Source = NoneError

The underlying error
source§

fn into_error(self, error: Self::Source) -> Error

Combine the information to produce the error
source§

impl<__T0> IntoError<Error> for FetchTransactionSnafu<__T0>
where + __T0: Into<String>,

§

type Source = NoneError

The underlying error
source§

fn into_error(self, error: Self::Source) -> Error

Combine the information to produce the error
source§

impl<__T0> IntoError<Error> for FetchTransactionSnafu<__T0>
where Error: Error + ErrorCompat, __T0: Into<String>,

§

type Source = NoneError

The underlying error
source§

fn into_error(self, error: Self::Source) -> Error

Combine the information to produce the error
source§

impl<__T0, __T1> IntoError<Error> for InvalidTransactionIndexSnafu<__T0, __T1>
where Error: Error + ErrorCompat, __T0: Into<u64>, - __T1: Into<u64>,

§

type Source = NoneError

The underlying error
source§

fn into_error(self, error: Self::Source) -> Error

Combine the information to produce the error
source§

impl IntoError<Error> for RequestSnafu
where - Error: Error + ErrorCompat,

§

type Source = RequestError

The underlying error
source§

fn into_error(self, error: Self::Source) -> Error

Combine the information to produce the error
source§

impl Serialize for Error

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __T1: Into<u64>,

§

type Source = NoneError

The underlying error
source§

fn into_error(self, error: Self::Source) -> Error

Combine the information to produce the error
source§

impl IntoError<Error> for RequestSnafu
where + Error: Error + ErrorCompat,

§

type Source = RequestError

The underlying error
source§

fn into_error(self, error: Self::Source) -> Error

Combine the information to produce the error
source§

impl Serialize for Error

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§

§

impl RefUnwindSafe for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl UnwindSafe for Error

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> AsErrorSource for T
where T: Error + 'static,

§

fn as_error_source(&self) -> &(dyn Error + 'static)

For maximum effectiveness, this needs to be called as a method diff --git a/hotshot_query_service/availability/enum.LeafId.html b/hotshot_query_service/availability/enum.LeafId.html index 4c43de468..efed6a33d 100644 --- a/hotshot_query_service/availability/enum.LeafId.html +++ b/hotshot_query_service/availability/enum.LeafId.html @@ -2,7 +2,7 @@
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 diff --git a/hotshot_query_service/availability/struct.BlockQueryData.html b/hotshot_query_service/availability/struct.BlockQueryData.html index 626b3ace4..c18ca550f 100644 --- a/hotshot_query_service/availability/struct.BlockQueryData.html +++ b/hotshot_query_service/availability/struct.BlockQueryData.html @@ -12,7 +12,7 @@ &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,

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<Types: PartialEq + NodeType> PartialEq for BlockQueryData<Types>

source§

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

This method tests for self and other values to be equal, and is used + Payload<Types>: QueryablePayload,

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<Types: PartialEq + NodeType> PartialEq for BlockQueryData<Types>

source§

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

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

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

This method 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: Eq + NodeType> Eq for BlockQueryData<Types>

source§

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

source§

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

Auto Trait Implementations§

§

impl<Types> RefUnwindSafe for BlockQueryData<Types>
where diff --git a/hotshot_query_service/availability/trait.AvailabilityDataSource.html b/hotshot_query_service/availability/trait.AvailabilityDataSource.html index 8ccd1be5a..bfb83d61d 100644 --- a/hotshot_query_service/availability/trait.AvailabilityDataSource.html +++ b/hotshot_query_service/availability/trait.AvailabilityDataSource.html @@ -163,24 +163,30 @@ from: usize ) -> Pin<Box<dyn Future<Output = BoxStream<'static, LeafQueryData<Types>>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, - 'life0: 'async_trait,

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<D, U, Types> AvailabilityDataSource<Types> for ExtensibleDataSource<D, U>
where + 'life0: 'async_trait,

Object Safety§

This trait is not object safe.

Implementors§

source§

impl AvailabilityDataSource<MockTypes> for DataSource

§

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

§

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

§

type PayloadRange<R> = Pin<Box<dyn Stream<Item = Fetch<PayloadQueryData<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, - Payload<Types>: QueryablePayload,

§

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

§

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

§

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

§

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

§

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

source§

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

source§

impl<Types, S, P> AvailabilityDataSource<Types> for FetchingDataSource<Types, S, P>
where Types: NodeType, Payload<Types>: QueryablePayload, S: AvailabilityStorage<Types> + 'static, - P: AvailabilityProvider<Types>,

§

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

§

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

§

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

§

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

§

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

§

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

\ No newline at end of file diff --git a/hotshot_query_service/availability/trait.QueryablePayload.html b/hotshot_query_service/availability/trait.QueryablePayload.html index f296410e3..95d451c8f 100644 --- a/hotshot_query_service/availability/trait.QueryablePayload.html +++ b/hotshot_query_service/availability/trait.QueryablePayload.html @@ -130,4 +130,4 @@ meta: &Self::Metadata, hash: Commitment<Self::Transaction> ) -> Option<(Self::Transaction, Self::InclusionProof)>

Get the transaction with a given hash, if it is in the block, along with an inclusion proof.

-

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file +

Object Safety§

This trait is not object safe.

Implementors§

source§

impl QueryablePayload for MockPayload

\ 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 fdae24877..f914f30d3 100644 --- a/hotshot_query_service/availability/trait.UpdateAvailabilityData.html +++ b/hotshot_query_service/availability/trait.UpdateAvailabilityData.html @@ -25,14 +25,15 @@ block: BlockQueryData<Types> ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

Implementors§

source§

impl<D, U, Types> UpdateAvailabilityData<Types> for ExtensibleDataSource<D, U>
where + 'life0: 'async_trait,

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,

§

type Error = <D as UpdateAvailabilityData<Types>>::Error

source§

impl<Types> UpdateAvailabilityData<Types> for SqlStorage
where + Types: NodeType,

§

type Error = <D as UpdateAvailabilityData<Types>>::Error

source§

impl<Types> UpdateAvailabilityData<Types> for SqlStorage
where Types: NodeType, - Payload<Types>: QueryablePayload,

source§

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

source§

impl<Types, S, P> UpdateAvailabilityData<Types> for FetchingDataSource<Types, S, P>
where Types: NodeType, Payload<Types>: QueryablePayload, S: UpdateAvailabilityData<Types> + Send + Sync, - P: Send + Sync,

§

type Error = <S as UpdateAvailabilityData<Types>>::Error

source§

impl<Types: NodeType> UpdateAvailabilityData<Types> for FileSystemStorage<Types>
where - Payload<Types>: QueryablePayload,

§

type Error = PersistenceError

\ No newline at end of file + P: Send + Sync,
§

type Error = <S as UpdateAvailabilityData<Types>>::Error

source§

impl<Types: NodeType> UpdateAvailabilityData<Types> for FileSystemStorage<Types>
where + Payload<Types>: QueryablePayload,

§

type Error = PersistenceError

source§

impl<Types: NodeType> UpdateAvailabilityData<Types> for NoStorage
where + Payload<Types>: QueryablePayload,

\ No newline at end of file diff --git a/hotshot_query_service/data_source/availability_tests/fn.test_range.html b/hotshot_query_service/data_source/availability_tests/fn.test_range.html new file mode 100644 index 000000000..5ebe87b57 --- /dev/null +++ b/hotshot_query_service/data_source/availability_tests/fn.test_range.html @@ -0,0 +1,2 @@ +test_range in hotshot_query_service::data_source::availability_tests - Rust +
\ No newline at end of file diff --git a/hotshot_query_service/data_source/availability_tests/fn.test_update.html b/hotshot_query_service/data_source/availability_tests/fn.test_update.html new file mode 100644 index 000000000..97b1240c7 --- /dev/null +++ b/hotshot_query_service/data_source/availability_tests/fn.test_update.html @@ -0,0 +1,2 @@ +test_update in hotshot_query_service::data_source::availability_tests - Rust +
\ No newline at end of file diff --git a/hotshot_query_service/data_source/availability_tests/index.html b/hotshot_query_service/data_source/availability_tests/index.html new file mode 100644 index 000000000..15870d898 --- /dev/null +++ b/hotshot_query_service/data_source/availability_tests/index.html @@ -0,0 +1,3 @@ +hotshot_query_service::data_source::availability_tests - Rust +
Expand description

Generic tests we can instantiate for all the availability data sources.

+

Functions

\ No newline at end of file diff --git a/hotshot_query_service/data_source/availability_tests/sidebar-items.js b/hotshot_query_service/data_source/availability_tests/sidebar-items.js new file mode 100644 index 000000000..4c9c9e64d --- /dev/null +++ b/hotshot_query_service/data_source/availability_tests/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"fn":["test_range","test_update"]}; \ No newline at end of file diff --git a/hotshot_query_service/data_source/fetching/enum.BlockRequest.html b/hotshot_query_service/data_source/fetching/enum.BlockRequest.html index 78f513a9d..cd2e84b4e 100644 --- a/hotshot_query_service/data_source/fetching/enum.BlockRequest.html +++ b/hotshot_query_service/data_source/fetching/enum.BlockRequest.html @@ -1,35 +1,35 @@ BlockRequest in hotshot_query_service::data_source::fetching - Rust -
pub enum BlockRequest<Types>
where +
pub enum BlockRequest<Types>
where Types: NodeType,
{ Id(BlockId<Types>), WithTransaction(TransactionHash<Types>), }
Expand description

A request to fetch a block.

Blocks can be requested either directly by their BlockId, or indirectly, by requesting a block containing a particular transaction.

-

Variants§

§

Id(BlockId<Types>)

§

WithTransaction(TransactionHash<Types>)

Trait Implementations§

source§

impl<Types> Clone for BlockRequest<Types>
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> Debug for BlockRequest<Types>
where - Types: NodeType,

source§

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

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

impl<Types> Display for BlockRequest<Types>
where +

Variants§

§

Id(BlockId<Types>)

§

WithTransaction(TransactionHash<Types>)

Trait Implementations§

source§

impl<Types> Clone for BlockRequest<Types>
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> Debug for BlockRequest<Types>
where + Types: NodeType,

source§

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

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

impl<Types> Display for BlockRequest<Types>
where TransactionHash<Types>: Display, BlockId<Types>: Display, - Types: NodeType,

source§

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

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

impl<Types> From<BlockId<Types>> for BlockRequest<Types>
where - Types: NodeType,

source§

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

Converts to this type from the input type.
source§

impl<Types> From<Commitment<<<Types as NodeType>::BlockPayload as BlockPayload>::Transaction>> for BlockRequest<Types>
where - Types: NodeType,

source§

fn from(original: TransactionHash<Types>) -> BlockRequest<Types>

Converts to this type from the input type.
source§

impl<Types> From<usize> for BlockRequest<Types>
where - Types: NodeType,

source§

fn from(i: usize) -> Self

Converts to this type from the input type.
source§

impl<Types> Hash for BlockRequest<Types>
where - Types: NodeType,

source§

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

source§

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

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

impl<Types> From<BlockId<Types>> for BlockRequest<Types>
where + Types: NodeType,

source§

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

Converts to this type from the input type.
source§

impl<Types> From<Commitment<<<Types as NodeType>::BlockPayload as BlockPayload>::Transaction>> for BlockRequest<Types>
where + Types: NodeType,

source§

fn from(original: TransactionHash<Types>) -> BlockRequest<Types>

Converts to this type from the input type.
source§

impl<Types> From<usize> for BlockRequest<Types>
where + Types: NodeType,

source§

fn from(i: usize) -> Self

Converts to this type from the input type.
source§

impl<Types> Hash for BlockRequest<Types>
where + Types: NodeType,

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> Ord for BlockRequest<Types>
where - Types: NodeType,

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> Ord for BlockRequest<Types>
where + Types: NodeType,

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> PartialEq for BlockRequest<Types>
where - Types: NodeType,

source§

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

This method tests for self and other values to be equal, and is used + Self: Sized + PartialOrd,
Restrict a value to a certain interval. Read more
source§

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

source§

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

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

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

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

impl<Types> PartialOrd for BlockRequest<Types>
where - Types: NodeType,

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

This method 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

This method tests less than or equal to (for self and other) and is used by the <= +sufficient, and should not be overridden without very good reason.
source§

impl<Types> PartialOrd for BlockRequest<Types>
where + Types: NodeType,

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

This method 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

This method 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

This method 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

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

impl<Types> Copy for BlockRequest<Types>
where - Types: NodeType,

source§

impl<Types> Eq for BlockRequest<Types>
where +operator. Read more

source§

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

source§

impl<Types> Eq for BlockRequest<Types>
where Types: NodeType,

Auto Trait Implementations§

§

impl<Types> RefUnwindSafe for BlockRequest<Types>

§

impl<Types> Send for BlockRequest<Types>

§

impl<Types> Sync for BlockRequest<Types>

§

impl<Types> Unpin for BlockRequest<Types>

§

impl<Types> UnwindSafe for BlockRequest<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<'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 diff --git a/hotshot_query_service/data_source/fetching/index.html b/hotshot_query_service/data_source/fetching/index.html index 9f0e211ec..94e6cb82a 100644 --- a/hotshot_query_service/data_source/fetching/index.html +++ b/hotshot_query_service/data_source/fetching/index.html @@ -1,5 +1,5 @@ hotshot_query_service::data_source::fetching - Rust -
Expand description

Asynchronous retrieval of missing data.

+
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 b7cc4b05a..9f9536682 100644 --- a/hotshot_query_service/data_source/fetching/struct.Builder.html +++ b/hotshot_query_service/data_source/fetching/struct.Builder.html @@ -27,11 +27,11 @@ with_major_scan_interval, with_minor_scan_interval), rather than disabling it entirely.

-
source§

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

source§

impl<Types, S, P> Builder<Types, S, P>
where Types: NodeType, Payload<Types>: QueryablePayload, - S: NodeDataSource<Types> + UpdateNodeData<Types> + AvailabilityStorage<Types> + VersionedDataSource + 'static, - P: AvailabilityProvider<Types>,

source

pub async fn build(self) -> Result<FetchingDataSource<Types, S, P>>

Build a FetchingDataSource with these options.

+ S: NodeDataSource<Types> + AvailabilityStorage<Types> + 'static, + 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> RefUnwindSafe for Builder<Types, S, P>
where P: RefUnwindSafe, S: RefUnwindSafe, diff --git a/hotshot_query_service/data_source/fetching/struct.FetchingDataSource.html b/hotshot_query_service/data_source/fetching/struct.FetchingDataSource.html index ca2f0440d..564daecbd 100644 --- a/hotshot_query_service/data_source/fetching/struct.FetchingDataSource.html +++ b/hotshot_query_service/data_source/fetching/struct.FetchingDataSource.html @@ -1,5 +1,5 @@ -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 @@ -14,14 +14,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, - S: NodeDataSource<Types> + UpdateNodeData<Types> + AvailabilityStorage<Types> + VersionedDataSource + 'static, - 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, S, P> FetchingDataSource<Types, S, P>
where - Types: NodeType,

source

pub async fn storage(&self) -> StorageReadGuard<'_, Types, S>

Obtain direct, read-only access to the underlying local storage.

-
source

pub async fn storage_mut(&self) -> StorageWriteGuard<'_, Types, S>

Obtain direct, mutable access the underlying local storage.

+ S: NodeDataSource<Types> + AvailabilityStorage<Types> + 'static, + 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, S, P> FetchingDataSource<Types, S, P>
where + Types: NodeType,

source

pub async fn storage(&self) -> StorageReadGuard<'_, Types, S>

Obtain direct, read-only access to the underlying local storage.

+
source

pub async fn storage_mut(&self) -> StorageWriteGuard<'_, Types, S>

Obtain direct, mutable access the underlying local storage.

source§

impl<Types: NodeType, P> FetchingDataSource<Types, FileSystemStorage<Types>, P>

source

pub async fn create(path: &Path, provider: P) -> Result<Self>

Create a new FileSystemDataSource with storage at path.

@@ -74,7 +74,7 @@

If there is no currently open transaction, a new transaction will be opened. No changes made through the transaction objeect returned by this method will be persisted until commit is called.

-

Trait Implementations§

source§

impl<Types, S, P> AvailabilityDataSource<Types> for FetchingDataSource<Types, S, P>
where +

Trait Implementations§

source§

impl<Types, S, P> AvailabilityDataSource<Types> for FetchingDataSource<Types, S, P>
where Types: NodeType, Payload<Types>: QueryablePayload, S: AvailabilityStorage<Types> + 'static, @@ -84,43 +84,43 @@ where R: RangeBounds<usize> + Send

§

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

source§

fn get_leaf<'life0, 'async_trait, ID>( + 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_leaf_range<'life0, 'async_trait, R>( + '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_block_with_transaction<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

fn get_block_with_transaction<'life0, 'async_trait>( &'life0 self, hash: TransactionHash<Types> ) -> Pin<Box<dyn Future<Output = Fetch<(BlockQueryData<Types>, TransactionIndex<Types>)>> + Send + 'async_trait>>
where @@ -141,42 +141,50 @@ from: usize ) -> Pin<Box<dyn Future<Output = BoxStream<'static, LeafQueryData<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§

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> NodeDataSource<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> NodeDataSource<Types> for FetchingDataSource<Types, S, P>
where Types: NodeType, S: NodeDataSource<Types> + Send + Sync, - 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 get_proposals<'life0, 'life1, 'async_trait>( + 'life0: 'async_trait,

source§

fn get_proposals<'life0, 'life1, 'async_trait>( &'life0 self, proposer: &'life1 SignatureKey<Types>, limit: Option<usize> ) -> Pin<Box<dyn Future<Output = QueryResult<Vec<LeafQueryData<Types>>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

source§

fn count_proposals<'life0, 'life1, 'async_trait>( + 'life1: 'async_trait,

source§

fn count_proposals<'life0, 'life1, 'async_trait>( &'life0 self, proposer: &'life1 SignatureKey<Types> ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

source§

fn sync_status<'life0, 'async_trait>( + 'life1: 'async_trait,

source§

fn count_transactions<'life0, 'async_trait>( + &'life0 self +) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
where + Self: 'async_trait, + 'life0: 'async_trait,

source§

fn payload_size<'life0, 'async_trait>( + &'life0 self +) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
where + Self: '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,

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: NodeDataSource<Types> + Send + Sync, - 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 metrics(&self) -> &PrometheusMetrics

source§

fn consensus_metrics(&self) -> QueryResult<PrometheusMetrics>

source§

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

source§

fn metrics(&self) -> &PrometheusMetrics

source§

fn consensus_metrics(&self) -> QueryResult<PrometheusMetrics>

source§

fn mempool_info<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = QueryResult<MempoolQueryData>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, @@ -184,36 +192,28 @@ &'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, S: UpdateAvailabilityData<Types> + Send + Sync, - P: Send + Sync,

§

type Error = <S as UpdateAvailabilityData<Types>>::Error

source§

fn insert_leaf<'life0, 'async_trait>( + P: Send + Sync,

§

type Error = <S as UpdateAvailabilityData<Types>>::Error

source§

fn insert_leaf<'life0, 'async_trait>( &'life0 mut self, leaf: LeafQueryData<Types> ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

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

source§

fn insert_block<'life0, 'async_trait>( &'life0 mut self, block: BlockQueryData<Types> ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

impl<Types, S, P> UpdateNodeData<Types> for FetchingDataSource<Types, S, P>
where - Types: NodeType, - S: UpdateNodeData<Types> + Send + Sync, - P: Send + Sync,

§

type Error = <S as UpdateNodeData<Types>>::Error

source§

fn insert_leaf<'life0, 'async_trait>( - &'life0 mut self, - leaf: LeafQueryData<Types> -) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where - Self: 'async_trait, - 'life0: 'async_trait,

source§

impl<Types, S, P> VersionedDataSource for FetchingDataSource<Types, S, P>
where + 'life0: 'async_trait,

source§

impl<Types, S, P> VersionedDataSource for FetchingDataSource<Types, S, P>
where Types: NodeType, S: VersionedDataSource + Send + Sync, - P: Send + Sync,

§

type Error = <S as VersionedDataSource>::Error

source§

fn commit<'life0, 'async_trait>( + P: Send + Sync,

§

type Error = <S as VersionedDataSource>::Error

source§

fn commit<'life0, 'async_trait>( &'life0 mut self ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

Atomically commit to all outstanding modifications to the data. Read more
source§

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

Atomically commit to all outstanding modifications to the data. Read more
source§

fn revert<'life0, 'async_trait>( &'life0 mut self ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, @@ -342,8 +342,8 @@ builds.

source§

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

§

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>,

§

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>,

§

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.
source§

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

§

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>,

§

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.
source§

impl<T> UpdateStatusData for T

source§

fn populate_metrics(&self) -> Box<dyn Metrics>

§

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 @@ -351,4 +351,5 @@ [WithDispatch] wrapper. Read more
source§

impl<T> WithSubscriber for T

source§

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

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
\ No newline at end of file +WithDispatch wrapper. Read more
source§

impl<T> TestableDataSource for T

\ No newline at end of file diff --git a/hotshot_query_service/data_source/fetching/struct.StorageReadGuard.html b/hotshot_query_service/data_source/fetching/struct.StorageReadGuard.html index 790637eba..10950858e 100644 --- a/hotshot_query_service/data_source/fetching/struct.StorageReadGuard.html +++ b/hotshot_query_service/data_source/fetching/struct.StorageReadGuard.html @@ -1,8 +1,8 @@ StorageReadGuard in hotshot_query_service::data_source::fetching - Rust -
pub struct StorageReadGuard<'a, Types, S>
where - Types: NodeType,
{ /* private fields */ }

Trait Implementations§

source§

impl<'a, Types, S> Deref for StorageReadGuard<'a, Types, S>
where - Types: NodeType,

§

type Target = S

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl<'a, Types, S> From<RwLockReadGuard<'a, NotifyStorage<Types, S>>> for StorageReadGuard<'a, Types, S>
where - Types: NodeType,

source§

fn from( +
pub struct StorageReadGuard<'a, Types, S>
where + Types: NodeType,
{ /* private fields */ }

Trait Implementations§

source§

impl<'a, Types, S> Deref for StorageReadGuard<'a, Types, S>
where + Types: NodeType,

§

type Target = S

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl<'a, Types, S> From<RwLockReadGuard<'a, NotifyStorage<Types, S>>> for StorageReadGuard<'a, Types, S>
where + Types: NodeType,

source§

fn from( original: RwLockReadGuard<'a, NotifyStorage<Types, S>> ) -> StorageReadGuard<'a, Types, S>

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<'a, Types, S> !RefUnwindSafe for StorageReadGuard<'a, Types, S>

§

impl<'a, Types, S> Send for StorageReadGuard<'a, Types, S>
where S: Sync,

§

impl<'a, Types, S> Sync for StorageReadGuard<'a, Types, S>
where diff --git a/hotshot_query_service/data_source/fetching/struct.StorageWriteGuard.html b/hotshot_query_service/data_source/fetching/struct.StorageWriteGuard.html index 3f2d6c646..f8f08478f 100644 --- a/hotshot_query_service/data_source/fetching/struct.StorageWriteGuard.html +++ b/hotshot_query_service/data_source/fetching/struct.StorageWriteGuard.html @@ -1,9 +1,9 @@ StorageWriteGuard in hotshot_query_service::data_source::fetching - Rust -
pub struct StorageWriteGuard<'a, Types, S>
where - Types: NodeType,
{ /* private fields */ }

Trait Implementations§

source§

impl<'a, Types, S> Deref for StorageWriteGuard<'a, Types, S>
where - Types: NodeType,

§

type Target = S

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl<'a, Types, S> DerefMut for StorageWriteGuard<'a, Types, S>
where - Types: NodeType,

source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
source§

impl<'a, Types, S> From<RwLockWriteGuard<'a, NotifyStorage<Types, S>>> for StorageWriteGuard<'a, Types, S>
where - Types: NodeType,

source§

fn from( +
pub struct StorageWriteGuard<'a, Types, S>
where + Types: NodeType,
{ /* private fields */ }

Trait Implementations§

source§

impl<'a, Types, S> Deref for StorageWriteGuard<'a, Types, S>
where + Types: NodeType,

§

type Target = S

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl<'a, Types, S> DerefMut for StorageWriteGuard<'a, Types, S>
where + Types: NodeType,

source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
source§

impl<'a, Types, S> From<RwLockWriteGuard<'a, NotifyStorage<Types, S>>> for StorageWriteGuard<'a, Types, S>
where + Types: NodeType,

source§

fn from( original: RwLockWriteGuard<'a, NotifyStorage<Types, S>> ) -> StorageWriteGuard<'a, Types, S>

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<'a, Types, S> !RefUnwindSafe for StorageWriteGuard<'a, Types, S>

§

impl<'a, Types, S> Send for StorageWriteGuard<'a, Types, S>
where S: Send,

§

impl<'a, Types, S> Sync for StorageWriteGuard<'a, Types, S>
where diff --git a/hotshot_query_service/data_source/fetching/trait.AvailabilityProvider.html b/hotshot_query_service/data_source/fetching/trait.AvailabilityProvider.html index 986e51abd..27621ad38 100644 --- a/hotshot_query_service/data_source/fetching/trait.AvailabilityProvider.html +++ b/hotshot_query_service/data_source/fetching/trait.AvailabilityProvider.html @@ -1,4 +1,4 @@ AvailabilityProvider in hotshot_query_service::data_source::fetching - Rust -
pub trait AvailabilityProvider<Types: NodeType>: Provider<Types, LeafRequest> + Provider<Types, PayloadRequest> + 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 +
pub trait AvailabilityProvider<Types: NodeType>: Provider<Types, LeafRequest> + Provider<Types, PayloadRequest> + 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 P: Provider<Types, LeafRequest> + Provider<Types, PayloadRequest> + 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 5f1378731..713dece84 100644 --- a/hotshot_query_service/data_source/index.html +++ b/hotshot_query_service/data_source/index.html @@ -1,5 +1,5 @@ hotshot_query_service::data_source - Rust -
Expand description

Persistent storage and sources of data consumed by APIs.

+
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:

@@ -14,4 +14,4 @@ -

Re-exports

Modules

  • Asynchronous retrieval of missing data.
  • Persistent storage for data sources.

Structs

  • Wrapper to add extensibility to an existing data source.
  • A minimal data source for the status API provided in this crate, with no persistent storage.

Traits

  • An extension trait for types which implement the update trait for each API module.
  • A data source with an atomic transaction-based synchronization interface.

Type Aliases

  • A data source for the APIs provided in this crate, backed by the local file system.
\ No newline at end of file +

Re-exports

Modules

  • Generic tests we can instantiate for all the availability data sources.
  • Asynchronous retrieval of missing data.
  • Generic tests we can instantiate for all the node data sources.
  • Generic tests we can instantiate for any data source with reliable, versioned persistent storage.
  • Generic tests we can instantiate for all the status data sources.
  • Persistent storage for data sources.

Structs

  • Wrapper to add extensibility to an existing data source.
  • A minimal data source for the status API provided in this crate, with no persistent storage.

Traits

  • An extension trait for types which implement the update trait for each API module.
  • A data source with an atomic transaction-based synchronization interface.

Type Aliases

  • A data source for the APIs provided in this crate, backed by the local file system.
\ No newline at end of file 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 new file mode 100644 index 000000000..d4c923991 --- /dev/null +++ b/hotshot_query_service/data_source/node_tests/fn.test_counters.html @@ -0,0 +1,2 @@ +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_proposer_queries.html b/hotshot_query_service/data_source/node_tests/fn.test_proposer_queries.html new file mode 100644 index 000000000..c0e3d3e95 --- /dev/null +++ b/hotshot_query_service/data_source/node_tests/fn.test_proposer_queries.html @@ -0,0 +1,2 @@ +test_proposer_queries in hotshot_query_service::data_source::node_tests - Rust +
pub async fn test_proposer_queries<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 new file mode 100644 index 000000000..40dfa12dc --- /dev/null +++ b/hotshot_query_service/data_source/node_tests/fn.test_sync_status.html @@ -0,0 +1,2 @@ +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/index.html b/hotshot_query_service/data_source/node_tests/index.html new file mode 100644 index 000000000..92088c922 --- /dev/null +++ b/hotshot_query_service/data_source/node_tests/index.html @@ -0,0 +1,3 @@ +hotshot_query_service::data_source::node_tests - Rust +
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/node_tests/sidebar-items.js b/hotshot_query_service/data_source/node_tests/sidebar-items.js new file mode 100644 index 000000000..549ba0205 --- /dev/null +++ b/hotshot_query_service/data_source/node_tests/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"fn":["test_counters","test_proposer_queries","test_sync_status"]}; \ 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 new file mode 100644 index 000000000..5a0bfbd47 --- /dev/null +++ b/hotshot_query_service/data_source/persistence_tests/fn.test_reset.html @@ -0,0 +1,2 @@ +test_reset 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_revert.html b/hotshot_query_service/data_source/persistence_tests/fn.test_revert.html new file mode 100644 index 000000000..4868d1b51 --- /dev/null +++ b/hotshot_query_service/data_source/persistence_tests/fn.test_revert.html @@ -0,0 +1,2 @@ +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 new file mode 100644 index 000000000..bace9c28e --- /dev/null +++ b/hotshot_query_service/data_source/persistence_tests/index.html @@ -0,0 +1,3 @@ +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/persistence_tests/sidebar-items.js b/hotshot_query_service/data_source/persistence_tests/sidebar-items.js new file mode 100644 index 000000000..34aa927de --- /dev/null +++ b/hotshot_query_service/data_source/persistence_tests/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"fn":["test_reset","test_revert"]}; \ No newline at end of file diff --git a/hotshot_query_service/data_source/sidebar-items.js b/hotshot_query_service/data_source/sidebar-items.js index 2d5309aaa..f609895a9 100644 --- a/hotshot_query_service/data_source/sidebar-items.js +++ b/hotshot_query_service/data_source/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"mod":["fetching","sql","storage"],"struct":["ExtensibleDataSource","MetricsDataSource"],"trait":["UpdateDataSource","VersionedDataSource"],"type":["FileSystemDataSource"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"mod":["availability_tests","fetching","node_tests","persistence_tests","sql","status_tests","storage"],"struct":["ExtensibleDataSource","MetricsDataSource"],"trait":["UpdateDataSource","VersionedDataSource"],"type":["FileSystemDataSource"]}; \ No newline at end of file diff --git a/hotshot_query_service/data_source/sql/index.html b/hotshot_query_service/data_source/sql/index.html index 28132e427..e85a93256 100644 --- a/hotshot_query_service/data_source/sql/index.html +++ b/hotshot_query_service/data_source/sql/index.html @@ -1,4 +1,4 @@ -hotshot_query_service::data_source::sql - Rust -

Re-exports

Macros

Structs

Trait Implementations§

source§

impl<Types, P: Send + Sync> Query for SqlDataSource<Types, P>
where +

Trait Implementations§

source§

impl<P: AvailabilityProvider<MockTypes> + Default> DataSourceLifeCycle for SqlDataSource<MockTypes, P>

§

type Storage = TmpDb

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>( + tmp_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>( + tmp_db: &'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 mut self, + event: &'life1 Event<MockTypes> +) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where + Self: 'async_trait, + 'life0: 'async_trait, + 'life1: 'async_trait,

source§

fn setup<'life0, 'async_trait>( + _network: &'life0 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<Types, P: Send + Sync> Query for SqlDataSource<Types, P>
where Types: NodeType,

source§

fn client<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Cow<'_, Arc<Client>>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn query<'life0, 'life1, 'async_trait, T, P>( + 'life0: 'async_trait,

source§

fn query<'life0, 'life1, 'async_trait, T, P>( &'life0 self, query: &'life1 T, params: P @@ -210,14 +231,14 @@

Composition

P::Item: BorrowToSql, Self: Sync + 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

source§

fn query_static<'life0, 'life1, 'async_trait, T>( + 'life1: 'async_trait,

source§

fn query_static<'life0, 'life1, 'async_trait, T>( &'life0 self, query: &'life1 T ) -> Pin<Box<dyn Future<Output = QueryResult<BoxStream<'static, QueryResult<Row>>>> + Send + 'async_trait>>
where T: ?Sized + ToStatement + Sync + 'async_trait, Self: Sync + 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

Query the underlying SQL database with no parameters.
source§

fn query_one<'life0, 'life1, 'async_trait, T, P>( + 'life1: 'async_trait,

Query the underlying SQL database with no parameters.
source§

fn query_one<'life0, 'life1, 'async_trait, T, P>( &'life0 self, query: &'life1 T, params: P @@ -228,7 +249,7 @@

Composition

P::Item: BorrowToSql, Self: Sync + 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,
Query the underlying SQL database, returning exactly one result or failing.
source§

fn query_one_static<'life0, 'life1, 'async_trait, T>( + 'life1: 'async_trait,

Query the underlying SQL database, returning exactly one result or failing.
source§

fn query_one_static<'life0, 'life1, 'async_trait, T>( &'life0 self, query: &'life1 T ) -> Pin<Box<dyn Future<Output = QueryResult<Row>> + Send + 'async_trait>>
where @@ -236,7 +257,7 @@

Composition

Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Query the underlying SQL database with no parameters, returning exactly one result or -failing.
source§

fn query_opt<'life0, 'life1, 'async_trait, T, P>( +failing.

source§

fn query_opt<'life0, 'life1, 'async_trait, T, P>( &'life0 self, query: &'life1 T, params: P @@ -247,7 +268,7 @@

Composition

P::Item: BorrowToSql, Self: Sync + 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,
Query the underlying SQL database, returning zero or one results.
source§

fn query_opt_static<'life0, 'life1, 'async_trait, T>( + 'life1: 'async_trait,

Query the underlying SQL database, returning zero or one results.
source§

fn query_opt_static<'life0, 'life1, 'async_trait, T>( &'life0 self, query: &'life1 T ) -> Pin<Box<dyn Future<Output = QueryResult<Option<Row>>> + Send + 'async_trait>>
where 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 new file mode 100644 index 000000000..f530789e7 --- /dev/null +++ b/hotshot_query_service/data_source/status_tests/fn.test_metrics.html @@ -0,0 +1,2 @@ +test_metrics in hotshot_query_service::data_source::status_tests - Rust +
\ 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 new file mode 100644 index 000000000..2d1509b63 --- /dev/null +++ b/hotshot_query_service/data_source/status_tests/index.html @@ -0,0 +1,3 @@ +hotshot_query_service::data_source::status_tests - Rust +
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/status_tests/sidebar-items.js b/hotshot_query_service/data_source/status_tests/sidebar-items.js new file mode 100644 index 000000000..568f0b54b --- /dev/null +++ b/hotshot_query_service/data_source/status_tests/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"fn":["test_metrics"]}; \ No newline at end of file diff --git a/hotshot_query_service/data_source/storage/fs/index.html b/hotshot_query_service/data_source/storage/fs/index.html index 6a74faee3..e22dcb6fd 100644 --- a/hotshot_query_service/data_source/storage/fs/index.html +++ b/hotshot_query_service/data_source/storage/fs/index.html @@ -1,2 +1,2 @@ hotshot_query_service::data_source::storage::fs - Rust -

Structs

  • Storage for the APIs provided in this crate, backed by a remote PostgreSQL database.
\ No newline at end of file +

Structs

  • Storage for the APIs provided in this crate, backed by a remote PostgreSQL database.
\ 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 c61c2ff38..e5e8c2e6f 100644 --- a/hotshot_query_service/data_source/storage/fs/struct.FileSystemStorage.html +++ b/hotshot_query_service/data_source/storage/fs/struct.FileSystemStorage.html @@ -1,14 +1,14 @@ -FileSystemStorage in hotshot_query_service::data_source::storage::fs - Rust -
pub struct FileSystemStorage<Types: NodeType>
where +FileSystemStorage in hotshot_query_service::data_source::storage::fs - Rust +
pub struct FileSystemStorage<Types: NodeType>
where Payload<Types>: QueryablePayload,
{ /* private fields */ }
Expand description

Storage for the APIs provided in this crate, backed by a remote PostgreSQL database.

-

Implementations§

source§

impl<Types: NodeType> FileSystemStorage<Types>
where - Payload<Types>: QueryablePayload,

source

pub async fn create(path: &Path) -> Result<Self, PersistenceError>

Create a new FileSystemStorage with storage at path.

+

Implementations§

source§

impl<Types: NodeType> FileSystemStorage<Types>
where + Payload<Types>: QueryablePayload,

source

pub async fn create(path: &Path) -> Result<Self, PersistenceError>

Create a new FileSystemStorage with storage at path.

If there is already data at path, it will be archived.

The FileSystemStorage will manage its own persistence synchronization.

-
source

pub async fn open(path: &Path) -> Result<Self, PersistenceError>

Open an existing FileSystemStorage from storage at path.

+
source

pub async fn open(path: &Path) -> Result<Self, PersistenceError>

Open an existing FileSystemStorage from storage at path.

If there is no data at path, a new store will be created.

The FileSystemStorage will manage its own persistence synchronization.

-
source

pub async fn create_with_store( +

source

pub async fn create_with_store( loader: &mut AtomicStoreLoader ) -> Result<Self, PersistenceError>

Create a new FileSystemStorage using a persistent storage loader.

If there is existing data corresponding to the FileSystemStorage data structures, it will @@ -16,7 +16,7 @@

The FileSystemStorage will register its persistent data structures with loader. The caller is responsible for creating an [AtomicStore] from loader and managing synchronization of the store.

-
source

pub async fn open_with_store( +

source

pub async fn open_with_store( loader: &mut AtomicStoreLoader ) -> Result<Self, PersistenceError>

Open an existing FileSystemStorage using a persistent storage loader.

If there is no existing data corresponding to the FileSystemStorage data structures, a new @@ -24,47 +24,47 @@

The FileSystemStorage will register its persistent data structures with loader. The caller is responsible for creating an [AtomicStore] from loader and managing synchronization of the store.

-
source

pub fn skip_version(&mut self) -> Result<(), PersistenceError>

Advance the version of the persistent store without committing changes to persistent state.

-

Trait Implementations§

source§

impl<Types: NodeType> AvailabilityStorage<Types> for FileSystemStorage<Types>
where - Payload<Types>: QueryablePayload,

source§

fn get_leaf<'life0, 'async_trait>( +

source

pub fn skip_version(&mut self) -> Result<(), PersistenceError>

Advance the version of the persistent store without committing changes to persistent state.

+

Trait Implementations§

source§

impl<Types: NodeType> AvailabilityStorage<Types> for FileSystemStorage<Types>
where + Payload<Types>: QueryablePayload,

source§

fn get_leaf<'life0, 'async_trait>( &'life0 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 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 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 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_leaf_range<'life0, 'async_trait, R>( + 'life0: 'async_trait,

source§

fn get_leaf_range<'life0, 'async_trait, R>( &'life0 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 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 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_block_with_transaction<'life0, 'async_trait>( + 'life0: 'async_trait,

source§

fn get_block_with_transaction<'life0, 'async_trait>( &'life0 self, hash: TransactionHash<Types> ) -> Pin<Box<dyn Future<Output = QueryResult<(BlockQueryData<Types>, TransactionIndex<Types>)>> + Send + 'async_trait>>
where @@ -76,51 +76,53 @@ HashMap<TransactionHash<Types>, (u64, TransactionIndex<Types>)>: Debug, HashMap<SignatureKey<Types>, Vec<u64>>: Debug, LedgerLog<LeafQueryData<Types>>: Debug, - LedgerLog<BlockQueryData<Types>>: Debug,

source§

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

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

impl<Types: NodeType> NodeDataSource<Types> for FileSystemStorage<Types>
where - Payload<Types>: QueryablePayload,

source§

fn block_height<'life0, 'async_trait>( + LedgerLog<BlockQueryData<Types>>: Debug,

source§

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

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

impl<Types: NodeType> NodeDataSource<Types> for FileSystemStorage<Types>
where + Payload<Types>: QueryablePayload,

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 get_proposals<'life0, 'life1, 'async_trait>( + 'life0: 'async_trait,

source§

fn get_proposals<'life0, 'life1, 'async_trait>( &'life0 self, id: &'life1 SignatureKey<Types>, limit: Option<usize> ) -> Pin<Box<dyn Future<Output = QueryResult<Vec<LeafQueryData<Types>>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

source§

fn count_proposals<'life0, 'life1, 'async_trait>( + 'life1: 'async_trait,

source§

fn count_proposals<'life0, 'life1, 'async_trait>( &'life0 self, id: &'life1 SignatureKey<Types> ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

source§

fn sync_status<'life0, 'async_trait>( + 'life1: 'async_trait,

source§

fn count_transactions<'life0, 'async_trait>( + &'life0 self +) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
where + Self: 'async_trait, + 'life0: 'async_trait,

source§

fn payload_size<'life0, 'async_trait>( + &'life0 self +) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
where + Self: '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,

source§

impl<Types: NodeType> UpdateAvailabilityData<Types> for FileSystemStorage<Types>
where - Payload<Types>: QueryablePayload,

§

type Error = PersistenceError

source§

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

source§

impl<Types: NodeType> UpdateAvailabilityData<Types> for FileSystemStorage<Types>
where + Payload<Types>: QueryablePayload,

§

type Error = PersistenceError

source§

fn insert_leaf<'life0, 'async_trait>( &'life0 mut self, leaf: LeafQueryData<Types> ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

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

source§

fn insert_block<'life0, 'async_trait>( &'life0 mut self, block: BlockQueryData<Types> ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

impl<Types: NodeType> UpdateNodeData<Types> for FileSystemStorage<Types>
where - Payload<Types>: QueryablePayload,

§

type Error = PersistenceError

source§

fn insert_leaf<'life0, 'async_trait>( - &'life0 mut self, - leaf: LeafQueryData<Types> -) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where - Self: 'async_trait, - 'life0: 'async_trait,

source§

impl<Types: NodeType> VersionedDataSource for FileSystemStorage<Types>
where - Payload<Types>: QueryablePayload,

§

type Error = PersistenceError

source§

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

source§

impl<Types: NodeType> VersionedDataSource for FileSystemStorage<Types>
where + Payload<Types>: QueryablePayload,

§

type Error = PersistenceError

source§

fn commit<'life0, 'async_trait>( &'life0 mut self ) -> Pin<Box<dyn Future<Output = Result<(), PersistenceError>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

Atomically commit to all outstanding modifications to the data. Read more
source§

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

Atomically commit to all outstanding modifications to the data. Read more
source§

fn revert<'life0, 'async_trait>( &'life0 mut self ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, @@ -263,8 +265,8 @@ T: ?Sized,

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

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>,

§

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>,

§

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 + U: Into<T>,

§

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>,

§

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 diff --git a/hotshot_query_service/data_source/storage/index.html b/hotshot_query_service/data_source/storage/index.html index a1d15551e..d8a51dfeb 100644 --- a/hotshot_query_service/data_source/storage/index.html +++ b/hotshot_query_service/data_source/storage/index.html @@ -9,6 +9,6 @@ -

Re-exports

Modules

Traits

\ No newline at end of file +

Re-exports

Modules

Traits

\ No newline at end of file diff --git a/hotshot_query_service/data_source/storage/no_storage/index.html b/hotshot_query_service/data_source/storage/no_storage/index.html new file mode 100644 index 000000000..0bf310663 --- /dev/null +++ b/hotshot_query_service/data_source/storage/no_storage/index.html @@ -0,0 +1,2 @@ +hotshot_query_service::data_source::storage::no_storage - Rust +

Modules

Structs

  • Mock storage implementation which doesn’t actually store anything.
\ No newline at end of file diff --git a/hotshot_query_service/data_source/storage/no_storage/sidebar-items.js b/hotshot_query_service/data_source/storage/no_storage/sidebar-items.js new file mode 100644 index 000000000..17fa4ba5e --- /dev/null +++ b/hotshot_query_service/data_source/storage/no_storage/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"mod":["testing"],"struct":["NoStorage"]}; \ No newline at end of file diff --git a/hotshot_query_service/data_source/storage/no_storage/struct.NoStorage.html b/hotshot_query_service/data_source/storage/no_storage/struct.NoStorage.html new file mode 100644 index 000000000..9fad83293 --- /dev/null +++ b/hotshot_query_service/data_source/storage/no_storage/struct.NoStorage.html @@ -0,0 +1,228 @@ +NoStorage in hotshot_query_service::data_source::storage::no_storage - Rust +
pub struct NoStorage;
Expand description

Mock storage implementation which doesn’t actually store anything.

+

This is useful for adversarial testing, as it can be used to test the behavior of the query +service where data is never available locally and must always be fetched on demand from a peer +query service.

+

Trait Implementations§

source§

impl<Types: NodeType> AvailabilityStorage<Types> for NoStorage
where + Payload<Types>: QueryablePayload,

source§

fn get_leaf<'life0, 'async_trait>( + &'life0 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 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 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 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_leaf_range<'life0, 'async_trait, R>( + &'life0 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 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 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_block_with_transaction<'life0, 'async_trait>( + &'life0 self, + _hash: TransactionHash<Types> +) -> Pin<Box<dyn Future<Output = QueryResult<(BlockQueryData<Types>, TransactionIndex<Types>)>> + Send + 'async_trait>>
where + Self: 'async_trait, + 'life0: 'async_trait,

source§

impl Clone for NoStorage

source§

fn clone(&self) -> NoStorage

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 NoStorage

source§

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

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

impl Default for NoStorage

source§

fn default() -> NoStorage

Returns the “default value” for a type. Read more
source§

impl<Types: NodeType> NodeDataSource<Types> for NoStorage
where + Payload<Types>: QueryablePayload,

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 get_proposals<'life0, 'life1, 'async_trait>( + &'life0 self, + _id: &'life1 SignatureKey<Types>, + _limit: Option<usize> +) -> Pin<Box<dyn Future<Output = QueryResult<Vec<LeafQueryData<Types>>>> + Send + 'async_trait>>
where + Self: 'async_trait, + 'life0: 'async_trait, + 'life1: 'async_trait,

source§

fn count_proposals<'life0, 'life1, 'async_trait>( + &'life0 self, + _id: &'life1 SignatureKey<Types> +) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
where + Self: 'async_trait, + 'life0: 'async_trait, + 'life1: 'async_trait,

source§

fn count_transactions<'life0, 'async_trait>( + &'life0 self +) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
where + Self: 'async_trait, + 'life0: 'async_trait,

source§

fn payload_size<'life0, 'async_trait>( + &'life0 self +) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
where + Self: '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,

source§

impl<Types: NodeType> UpdateAvailabilityData<Types> for NoStorage
where + Payload<Types>: QueryablePayload,

§

type Error = Infallible

source§

fn insert_leaf<'life0, 'async_trait>( + &'life0 mut self, + _leaf: LeafQueryData<Types> +) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where + Self: 'async_trait, + 'life0: 'async_trait,

source§

fn insert_block<'life0, 'async_trait>( + &'life0 mut self, + _block: BlockQueryData<Types> +) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where + Self: 'async_trait, + 'life0: 'async_trait,

source§

impl VersionedDataSource for NoStorage

§

type Error = Infallible

source§

fn commit<'life0, 'async_trait>( + &'life0 mut self +) -> Pin<Box<dyn Future<Output = Result<(), Infallible>> + Send + 'async_trait>>
where + Self: 'async_trait, + 'life0: 'async_trait,

Atomically commit to all outstanding modifications to the data. Read more
source§

fn revert<'life0, 'async_trait>( + &'life0 mut self +) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where + Self: 'async_trait, + 'life0: 'async_trait,

Erase all oustanding modifications to the data. Read more
source§

impl Copy for NoStorage

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<'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
§

impl<T> Conv for T

§

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

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

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where + T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be +further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

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

source§

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

source§

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

source§

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

§

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> Instrument for T

source§

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

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

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.

+
§

impl<D> OwoColorize for D

§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where + C: Color,

Set the foreground color generically Read more
§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where + C: Color,

Set the background color generically. Read more
§

fn black<'a>(&'a self) -> FgColorDisplay<'a, Black, Self>

Change the foreground color to black
§

fn on_black<'a>(&'a self) -> BgColorDisplay<'a, Black, Self>

Change the background color to black
§

fn red<'a>(&'a self) -> FgColorDisplay<'a, Red, Self>

Change the foreground color to red
§

fn on_red<'a>(&'a self) -> BgColorDisplay<'a, Red, Self>

Change the background color to red
§

fn green<'a>(&'a self) -> FgColorDisplay<'a, Green, Self>

Change the foreground color to green
§

fn on_green<'a>(&'a self) -> BgColorDisplay<'a, Green, Self>

Change the background color to green
§

fn yellow<'a>(&'a self) -> FgColorDisplay<'a, Yellow, Self>

Change the foreground color to yellow
§

fn on_yellow<'a>(&'a self) -> BgColorDisplay<'a, Yellow, Self>

Change the background color to yellow
§

fn blue<'a>(&'a self) -> FgColorDisplay<'a, Blue, Self>

Change the foreground color to blue
§

fn on_blue<'a>(&'a self) -> BgColorDisplay<'a, Blue, Self>

Change the background color to blue
§

fn magenta<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>

Change the foreground color to magenta
§

fn on_magenta<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>

Change the background color to magenta
§

fn purple<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>

Change the foreground color to purple
§

fn on_purple<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>

Change the background color to purple
§

fn cyan<'a>(&'a self) -> FgColorDisplay<'a, Cyan, Self>

Change the foreground color to cyan
§

fn on_cyan<'a>(&'a self) -> BgColorDisplay<'a, Cyan, Self>

Change the background color to cyan
§

fn white<'a>(&'a self) -> FgColorDisplay<'a, White, Self>

Change the foreground color to white
§

fn on_white<'a>(&'a self) -> BgColorDisplay<'a, White, Self>

Change the background color to white
§

fn default_color<'a>(&'a self) -> FgColorDisplay<'a, Default, Self>

Change the foreground color to the terminal default
§

fn on_default_color<'a>(&'a self) -> BgColorDisplay<'a, Default, Self>

Change the background color to the terminal default
§

fn bright_black<'a>(&'a self) -> FgColorDisplay<'a, BrightBlack, Self>

Change the foreground color to bright black
§

fn on_bright_black<'a>(&'a self) -> BgColorDisplay<'a, BrightBlack, Self>

Change the background color to bright black
§

fn bright_red<'a>(&'a self) -> FgColorDisplay<'a, BrightRed, Self>

Change the foreground color to bright red
§

fn on_bright_red<'a>(&'a self) -> BgColorDisplay<'a, BrightRed, Self>

Change the background color to bright red
§

fn bright_green<'a>(&'a self) -> FgColorDisplay<'a, BrightGreen, Self>

Change the foreground color to bright green
§

fn on_bright_green<'a>(&'a self) -> BgColorDisplay<'a, BrightGreen, Self>

Change the background color to bright green
§

fn bright_yellow<'a>(&'a self) -> FgColorDisplay<'a, BrightYellow, Self>

Change the foreground color to bright yellow
§

fn on_bright_yellow<'a>(&'a self) -> BgColorDisplay<'a, BrightYellow, Self>

Change the background color to bright yellow
§

fn bright_blue<'a>(&'a self) -> FgColorDisplay<'a, BrightBlue, Self>

Change the foreground color to bright blue
§

fn on_bright_blue<'a>(&'a self) -> BgColorDisplay<'a, BrightBlue, Self>

Change the background color to bright blue
§

fn bright_magenta<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>

Change the foreground color to bright magenta
§

fn on_bright_magenta<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>

Change the background color to bright magenta
§

fn bright_purple<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>

Change the foreground color to bright purple
§

fn on_bright_purple<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>

Change the background color to bright purple
§

fn bright_cyan<'a>(&'a self) -> FgColorDisplay<'a, BrightCyan, Self>

Change the foreground color to bright cyan
§

fn on_bright_cyan<'a>(&'a self) -> BgColorDisplay<'a, BrightCyan, Self>

Change the background color to bright cyan
§

fn bright_white<'a>(&'a self) -> FgColorDisplay<'a, BrightWhite, Self>

Change the foreground color to bright white
§

fn on_bright_white<'a>(&'a self) -> BgColorDisplay<'a, BrightWhite, Self>

Change the background color to bright white
§

fn bold<'a>(&'a self) -> BoldDisplay<'a, Self>

Make the text bold
§

fn dimmed<'a>(&'a self) -> DimDisplay<'a, Self>

Make the text dim
§

fn italic<'a>(&'a self) -> ItalicDisplay<'a, Self>

Make the text italicized
§

fn underline<'a>(&'a self) -> UnderlineDisplay<'a, Self>

Make the text italicized
Make the text blink
Make the text blink (but fast!)
§

fn reversed<'a>(&'a self) -> ReversedDisplay<'a, Self>

Swap the foreground and background colors
§

fn hidden<'a>(&'a self) -> HiddenDisplay<'a, Self>

Hide the text
§

fn strikethrough<'a>(&'a self) -> StrikeThroughDisplay<'a, Self>

Cross out the text
§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where + Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at +compile-time. If the color is constant, use either OwoColorize::fg or +a color-specific method, such as OwoColorize::green, Read more
§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where + Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at +compile-time. If the color is constant, use either OwoColorize::bg or +a color-specific method, such as OwoColorize::on_yellow, Read more
§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( + &self +) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( + &self +) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
§

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

impl<T> Same for T

§

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,

§

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>,

§

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>,

§

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

impl<T> WithSubscriber for T

source§

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

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more
\ No newline at end of file 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 new file mode 100644 index 000000000..0a3652b8b --- /dev/null +++ b/hotshot_query_service/data_source/storage/no_storage/testing/enum.DataSource.html @@ -0,0 +1,277 @@ +DataSource in hotshot_query_service::data_source::storage::no_storage::testing - Rust +
pub enum DataSource {
+    Sql(SqlDataSource<MockTypes, NoFetching>),
+    NoStorage(FetchingDataSource<MockTypes, NoStorage, QueryServiceProvider>),
+}

Variants§

Trait Implementations§

source§

impl AvailabilityDataSource<MockTypes> for DataSource

source§

fn get_block_with_transaction<'life0, 'async_trait>( + &'life0 self, + hash: TransactionHash<MockTypes> +) -> Pin<Box<dyn Future<Output = Fetch<(BlockQueryData<MockTypes>, TransactionIndex<MockTypes>)>> + Send + 'async_trait>>
where + Self: 'async_trait, + 'life0: 'async_trait,

Returns the block containing a transaction with the given hash and the transaction’s +position in the block.

+
§

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

§

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

§

type PayloadRange<R> = Pin<Box<dyn Stream<Item = Fetch<PayloadQueryData<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 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 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_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 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 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 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 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 self, + from: usize +) -> Pin<Box<dyn Future<Output = BoxStream<'static, LeafQueryData<Types>>> + Send + 'async_trait>>
where + Self: Sync + 'async_trait, + 'life0: 'async_trait,

source§

impl DataSourceLifeCycle for DataSource

§

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>( + 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>( + 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>( + network: &'life0 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 mut 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 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 get_proposals<'life0, 'life1, 'async_trait>( + &'life0 self, + proposer: &'life1 SignatureKey<MockTypes>, + limit: Option<usize> +) -> Pin<Box<dyn Future<Output = QueryResult<Vec<LeafQueryData<MockTypes>>>> + Send + 'async_trait>>
where + Self: 'async_trait, + 'life0: 'async_trait, + 'life1: 'async_trait,

source§

fn count_proposals<'life0, 'life1, 'async_trait>( + &'life0 self, + proposer: &'life1 SignatureKey<MockTypes> +) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
where + Self: 'async_trait, + 'life0: 'async_trait, + 'life1: 'async_trait,

source§

fn count_transactions<'life0, 'async_trait>( + &'life0 self +) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
where + Self: 'async_trait, + 'life0: 'async_trait,

source§

fn payload_size<'life0, 'async_trait>( + &'life0 self +) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
where + Self: '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,

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, + 'life0: 'async_trait,

source§

fn metrics(&self) -> &PrometheusMetrics

source§

fn consensus_metrics(&self) -> QueryResult<PrometheusMetrics>

source§

fn mempool_info<'life0, 'async_trait>( + &'life0 self +) -> Pin<Box<dyn Future<Output = QueryResult<MempoolQueryData>> + Send + 'async_trait>>
where + Self: Sync + 'async_trait, + 'life0: 'async_trait,

source§

fn success_rate<'life0, 'async_trait>( + &'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

§

type Error = QueryError

source§

fn insert_leaf<'life0, 'async_trait>( + &'life0 mut self, + leaf: LeafQueryData<MockTypes> +) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where + Self: 'async_trait, + 'life0: 'async_trait,

source§

fn insert_block<'life0, 'async_trait>( + &'life0 mut self, + block: BlockQueryData<MockTypes> +) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where + Self: 'async_trait, + 'life0: 'async_trait,

source§

impl VersionedDataSource for DataSource

§

type Error = QueryError

source§

fn commit<'life0, 'async_trait>( + &'life0 mut self +) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where + Self: 'async_trait, + 'life0: 'async_trait,

Atomically commit to all outstanding modifications to the data. Read more
source§

fn revert<'life0, 'async_trait>( + &'life0 mut self +) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where + Self: 'async_trait, + 'life0: 'async_trait,

Erase all oustanding modifications to the data. 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<'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
§

impl<T> Conv for T

§

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

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

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where + T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be +further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
§

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> Instrument for T

source§

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

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

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.

+
§

impl<D> OwoColorize for D

§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where + C: Color,

Set the foreground color generically Read more
§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where + C: Color,

Set the background color generically. Read more
§

fn black<'a>(&'a self) -> FgColorDisplay<'a, Black, Self>

Change the foreground color to black
§

fn on_black<'a>(&'a self) -> BgColorDisplay<'a, Black, Self>

Change the background color to black
§

fn red<'a>(&'a self) -> FgColorDisplay<'a, Red, Self>

Change the foreground color to red
§

fn on_red<'a>(&'a self) -> BgColorDisplay<'a, Red, Self>

Change the background color to red
§

fn green<'a>(&'a self) -> FgColorDisplay<'a, Green, Self>

Change the foreground color to green
§

fn on_green<'a>(&'a self) -> BgColorDisplay<'a, Green, Self>

Change the background color to green
§

fn yellow<'a>(&'a self) -> FgColorDisplay<'a, Yellow, Self>

Change the foreground color to yellow
§

fn on_yellow<'a>(&'a self) -> BgColorDisplay<'a, Yellow, Self>

Change the background color to yellow
§

fn blue<'a>(&'a self) -> FgColorDisplay<'a, Blue, Self>

Change the foreground color to blue
§

fn on_blue<'a>(&'a self) -> BgColorDisplay<'a, Blue, Self>

Change the background color to blue
§

fn magenta<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>

Change the foreground color to magenta
§

fn on_magenta<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>

Change the background color to magenta
§

fn purple<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>

Change the foreground color to purple
§

fn on_purple<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>

Change the background color to purple
§

fn cyan<'a>(&'a self) -> FgColorDisplay<'a, Cyan, Self>

Change the foreground color to cyan
§

fn on_cyan<'a>(&'a self) -> BgColorDisplay<'a, Cyan, Self>

Change the background color to cyan
§

fn white<'a>(&'a self) -> FgColorDisplay<'a, White, Self>

Change the foreground color to white
§

fn on_white<'a>(&'a self) -> BgColorDisplay<'a, White, Self>

Change the background color to white
§

fn default_color<'a>(&'a self) -> FgColorDisplay<'a, Default, Self>

Change the foreground color to the terminal default
§

fn on_default_color<'a>(&'a self) -> BgColorDisplay<'a, Default, Self>

Change the background color to the terminal default
§

fn bright_black<'a>(&'a self) -> FgColorDisplay<'a, BrightBlack, Self>

Change the foreground color to bright black
§

fn on_bright_black<'a>(&'a self) -> BgColorDisplay<'a, BrightBlack, Self>

Change the background color to bright black
§

fn bright_red<'a>(&'a self) -> FgColorDisplay<'a, BrightRed, Self>

Change the foreground color to bright red
§

fn on_bright_red<'a>(&'a self) -> BgColorDisplay<'a, BrightRed, Self>

Change the background color to bright red
§

fn bright_green<'a>(&'a self) -> FgColorDisplay<'a, BrightGreen, Self>

Change the foreground color to bright green
§

fn on_bright_green<'a>(&'a self) -> BgColorDisplay<'a, BrightGreen, Self>

Change the background color to bright green
§

fn bright_yellow<'a>(&'a self) -> FgColorDisplay<'a, BrightYellow, Self>

Change the foreground color to bright yellow
§

fn on_bright_yellow<'a>(&'a self) -> BgColorDisplay<'a, BrightYellow, Self>

Change the background color to bright yellow
§

fn bright_blue<'a>(&'a self) -> FgColorDisplay<'a, BrightBlue, Self>

Change the foreground color to bright blue
§

fn on_bright_blue<'a>(&'a self) -> BgColorDisplay<'a, BrightBlue, Self>

Change the background color to bright blue
§

fn bright_magenta<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>

Change the foreground color to bright magenta
§

fn on_bright_magenta<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>

Change the background color to bright magenta
§

fn bright_purple<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>

Change the foreground color to bright purple
§

fn on_bright_purple<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>

Change the background color to bright purple
§

fn bright_cyan<'a>(&'a self) -> FgColorDisplay<'a, BrightCyan, Self>

Change the foreground color to bright cyan
§

fn on_bright_cyan<'a>(&'a self) -> BgColorDisplay<'a, BrightCyan, Self>

Change the background color to bright cyan
§

fn bright_white<'a>(&'a self) -> FgColorDisplay<'a, BrightWhite, Self>

Change the foreground color to bright white
§

fn on_bright_white<'a>(&'a self) -> BgColorDisplay<'a, BrightWhite, Self>

Change the background color to bright white
§

fn bold<'a>(&'a self) -> BoldDisplay<'a, Self>

Make the text bold
§

fn dimmed<'a>(&'a self) -> DimDisplay<'a, Self>

Make the text dim
§

fn italic<'a>(&'a self) -> ItalicDisplay<'a, Self>

Make the text italicized
§

fn underline<'a>(&'a self) -> UnderlineDisplay<'a, Self>

Make the text italicized
Make the text blink
Make the text blink (but fast!)
§

fn reversed<'a>(&'a self) -> ReversedDisplay<'a, Self>

Swap the foreground and background colors
§

fn hidden<'a>(&'a self) -> HiddenDisplay<'a, Self>

Hide the text
§

fn strikethrough<'a>(&'a self) -> StrikeThroughDisplay<'a, Self>

Cross out the text
§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where + Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at +compile-time. If the color is constant, use either OwoColorize::fg or +a color-specific method, such as OwoColorize::green, Read more
§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where + Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at +compile-time. If the color is constant, use either OwoColorize::bg or +a color-specific method, such as OwoColorize::on_yellow, Read more
§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( + &self +) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( + &self +) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
§

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

impl<T> Same for T

§

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.
§

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>,

§

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>,

§

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.
source§

impl<T> UpdateStatusData for T
where + T: StatusDataSource,

source§

fn populate_metrics(&self) -> Box<dyn Metrics>

§

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

impl<T> WithSubscriber for T

source§

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> TestableDataSource for T

\ No newline at end of file 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 new file mode 100644 index 000000000..784f634d8 --- /dev/null +++ b/hotshot_query_service/data_source/storage/no_storage/testing/enum.Storage.html @@ -0,0 +1,140 @@ +Storage in hotshot_query_service::data_source::storage::no_storage::testing - Rust +
pub enum Storage {
+    Sql(TmpDb),
+    NoStorage {
+        fetch_from_port: u16,
+    },
+}
Expand description

Either Postgres or no storage.

+

In order to instantiate NoStorage for the generic tests, we need some node running a +real database that our NoStorage node can fetch from. We use this Storage enum to +represent a network where the nodes are either using NoStorage or SQL storage. We will +set node 0, the node under test, to always use NoStorage.

+

This gives us a strongly adversarial test of fetching, where the node under test never gets +anything from local storage, but the tests still pass.

+

Variants§

§

Sql(TmpDb)

§

NoStorage

Fields

§fetch_from_port: u16

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<'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
§

impl<T> Conv for T

§

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

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

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where + T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be +further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
§

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> Instrument for T

source§

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

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

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.

+
§

impl<D> OwoColorize for D

§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where + C: Color,

Set the foreground color generically Read more
§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where + C: Color,

Set the background color generically. Read more
§

fn black<'a>(&'a self) -> FgColorDisplay<'a, Black, Self>

Change the foreground color to black
§

fn on_black<'a>(&'a self) -> BgColorDisplay<'a, Black, Self>

Change the background color to black
§

fn red<'a>(&'a self) -> FgColorDisplay<'a, Red, Self>

Change the foreground color to red
§

fn on_red<'a>(&'a self) -> BgColorDisplay<'a, Red, Self>

Change the background color to red
§

fn green<'a>(&'a self) -> FgColorDisplay<'a, Green, Self>

Change the foreground color to green
§

fn on_green<'a>(&'a self) -> BgColorDisplay<'a, Green, Self>

Change the background color to green
§

fn yellow<'a>(&'a self) -> FgColorDisplay<'a, Yellow, Self>

Change the foreground color to yellow
§

fn on_yellow<'a>(&'a self) -> BgColorDisplay<'a, Yellow, Self>

Change the background color to yellow
§

fn blue<'a>(&'a self) -> FgColorDisplay<'a, Blue, Self>

Change the foreground color to blue
§

fn on_blue<'a>(&'a self) -> BgColorDisplay<'a, Blue, Self>

Change the background color to blue
§

fn magenta<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>

Change the foreground color to magenta
§

fn on_magenta<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>

Change the background color to magenta
§

fn purple<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>

Change the foreground color to purple
§

fn on_purple<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>

Change the background color to purple
§

fn cyan<'a>(&'a self) -> FgColorDisplay<'a, Cyan, Self>

Change the foreground color to cyan
§

fn on_cyan<'a>(&'a self) -> BgColorDisplay<'a, Cyan, Self>

Change the background color to cyan
§

fn white<'a>(&'a self) -> FgColorDisplay<'a, White, Self>

Change the foreground color to white
§

fn on_white<'a>(&'a self) -> BgColorDisplay<'a, White, Self>

Change the background color to white
§

fn default_color<'a>(&'a self) -> FgColorDisplay<'a, Default, Self>

Change the foreground color to the terminal default
§

fn on_default_color<'a>(&'a self) -> BgColorDisplay<'a, Default, Self>

Change the background color to the terminal default
§

fn bright_black<'a>(&'a self) -> FgColorDisplay<'a, BrightBlack, Self>

Change the foreground color to bright black
§

fn on_bright_black<'a>(&'a self) -> BgColorDisplay<'a, BrightBlack, Self>

Change the background color to bright black
§

fn bright_red<'a>(&'a self) -> FgColorDisplay<'a, BrightRed, Self>

Change the foreground color to bright red
§

fn on_bright_red<'a>(&'a self) -> BgColorDisplay<'a, BrightRed, Self>

Change the background color to bright red
§

fn bright_green<'a>(&'a self) -> FgColorDisplay<'a, BrightGreen, Self>

Change the foreground color to bright green
§

fn on_bright_green<'a>(&'a self) -> BgColorDisplay<'a, BrightGreen, Self>

Change the background color to bright green
§

fn bright_yellow<'a>(&'a self) -> FgColorDisplay<'a, BrightYellow, Self>

Change the foreground color to bright yellow
§

fn on_bright_yellow<'a>(&'a self) -> BgColorDisplay<'a, BrightYellow, Self>

Change the background color to bright yellow
§

fn bright_blue<'a>(&'a self) -> FgColorDisplay<'a, BrightBlue, Self>

Change the foreground color to bright blue
§

fn on_bright_blue<'a>(&'a self) -> BgColorDisplay<'a, BrightBlue, Self>

Change the background color to bright blue
§

fn bright_magenta<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>

Change the foreground color to bright magenta
§

fn on_bright_magenta<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>

Change the background color to bright magenta
§

fn bright_purple<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>

Change the foreground color to bright purple
§

fn on_bright_purple<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>

Change the background color to bright purple
§

fn bright_cyan<'a>(&'a self) -> FgColorDisplay<'a, BrightCyan, Self>

Change the foreground color to bright cyan
§

fn on_bright_cyan<'a>(&'a self) -> BgColorDisplay<'a, BrightCyan, Self>

Change the background color to bright cyan
§

fn bright_white<'a>(&'a self) -> FgColorDisplay<'a, BrightWhite, Self>

Change the foreground color to bright white
§

fn on_bright_white<'a>(&'a self) -> BgColorDisplay<'a, BrightWhite, Self>

Change the background color to bright white
§

fn bold<'a>(&'a self) -> BoldDisplay<'a, Self>

Make the text bold
§

fn dimmed<'a>(&'a self) -> DimDisplay<'a, Self>

Make the text dim
§

fn italic<'a>(&'a self) -> ItalicDisplay<'a, Self>

Make the text italicized
§

fn underline<'a>(&'a self) -> UnderlineDisplay<'a, Self>

Make the text italicized
Make the text blink
Make the text blink (but fast!)
§

fn reversed<'a>(&'a self) -> ReversedDisplay<'a, Self>

Swap the foreground and background colors
§

fn hidden<'a>(&'a self) -> HiddenDisplay<'a, Self>

Hide the text
§

fn strikethrough<'a>(&'a self) -> StrikeThroughDisplay<'a, Self>

Cross out the text
§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where + Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at +compile-time. If the color is constant, use either OwoColorize::fg or +a color-specific method, such as OwoColorize::green, Read more
§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where + Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at +compile-time. If the color is constant, use either OwoColorize::bg or +a color-specific method, such as OwoColorize::on_yellow, Read more
§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( + &self +) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( + &self +) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
§

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

impl<T> Same for T

§

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.
§

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>,

§

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>,

§

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

impl<T> WithSubscriber for T

source§

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

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more
\ No newline at end of file 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 new file mode 100644 index 000000000..069680c90 --- /dev/null +++ b/hotshot_query_service/data_source/storage/no_storage/testing/index.html @@ -0,0 +1,2 @@ +hotshot_query_service::data_source::storage::no_storage::testing - Rust +
\ No newline at end of file diff --git a/hotshot_query_service/data_source/storage/no_storage/testing/sidebar-items.js b/hotshot_query_service/data_source/storage/no_storage/testing/sidebar-items.js new file mode 100644 index 000000000..b931998b4 --- /dev/null +++ b/hotshot_query_service/data_source/storage/no_storage/testing/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"enum":["DataSource","Storage"]}; \ No newline at end of file diff --git a/hotshot_query_service/data_source/storage/sidebar-items.js b/hotshot_query_service/data_source/storage/sidebar-items.js index c973249f4..08e1e2f6a 100644 --- a/hotshot_query_service/data_source/storage/sidebar-items.js +++ b/hotshot_query_service/data_source/storage/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"mod":["fs","sql"],"trait":["AvailabilityStorage"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"mod":["fs","no_storage","sql"],"trait":["AvailabilityStorage"]}; \ No newline at end of file diff --git a/hotshot_query_service/data_source/storage/sql/index.html b/hotshot_query_service/data_source/storage/sql/index.html index f91590d5e..e6e276495 100644 --- a/hotshot_query_service/data_source/storage/sql/index.html +++ b/hotshot_query_service/data_source/storage/sql/index.html @@ -1,4 +1,4 @@ -hotshot_query_service::data_source::storage::sql - Rust -

Re-exports

  • pub use tokio_postgres as postgres;

Macros

Structs

source§

fn count_transactions<'life0, 'async_trait>( + &'life0 self +) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
where + Self: 'async_trait, + 'life0: 'async_trait,

source§

fn payload_size<'life0, 'async_trait>( + &'life0 self +) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
where + Self: '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, @@ -73,7 +81,7 @@ &'life0 self ) -> Pin<Box<dyn Future<Output = Cow<'_, Arc<Client>>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn query<'life0, 'life1, 'async_trait, T, P>( + 'life0: 'async_trait,

source§

fn query<'life0, 'life1, 'async_trait, T, P>( &'life0 self, query: &'life1 T, params: P @@ -84,14 +92,14 @@ P::Item: BorrowToSql, Self: Sync + 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

source§

fn query_static<'life0, 'life1, 'async_trait, T>( + 'life1: 'async_trait,

source§

fn query_static<'life0, 'life1, 'async_trait, T>( &'life0 self, query: &'life1 T ) -> Pin<Box<dyn Future<Output = QueryResult<BoxStream<'static, QueryResult<Row>>>> + Send + 'async_trait>>
where T: ?Sized + ToStatement + Sync + 'async_trait, Self: Sync + 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

Query the underlying SQL database with no parameters.
source§

fn query_one<'life0, 'life1, 'async_trait, T, P>( + 'life1: 'async_trait,

Query the underlying SQL database with no parameters.
source§

fn query_one<'life0, 'life1, 'async_trait, T, P>( &'life0 self, query: &'life1 T, params: P @@ -102,7 +110,7 @@ P::Item: BorrowToSql, Self: Sync + 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

Query the underlying SQL database, returning exactly one result or failing.
source§

fn query_one_static<'life0, 'life1, 'async_trait, T>( + 'life1: 'async_trait,

Query the underlying SQL database, returning exactly one result or failing.
source§

fn query_one_static<'life0, 'life1, 'async_trait, T>( &'life0 self, query: &'life1 T ) -> Pin<Box<dyn Future<Output = QueryResult<Row>> + Send + 'async_trait>>
where @@ -110,7 +118,7 @@ Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Query the underlying SQL database with no parameters, returning exactly one result or -failing.
source§

fn query_opt<'life0, 'life1, 'async_trait, T, P>( +failing.

source§

fn query_opt<'life0, 'life1, 'async_trait, T, P>( &'life0 self, query: &'life1 T, params: P @@ -121,7 +129,7 @@ P::Item: BorrowToSql, Self: Sync + 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

Query the underlying SQL database, returning zero or one results.
source§

fn query_opt_static<'life0, 'life1, 'async_trait, T>( + 'life1: 'async_trait,

Query the underlying SQL database, returning zero or one results.
source§

fn query_opt_static<'life0, 'life1, 'async_trait, T>( &'life0 self, query: &'life1 T ) -> Pin<Box<dyn Future<Output = QueryResult<Option<Row>>> + Send + 'async_trait>>
where @@ -130,7 +138,7 @@ 'life0: 'async_trait, 'life1: 'async_trait,

Query the underlying SQL database with no parameters, returning zero or one results.
source§

impl<Types> UpdateAvailabilityData<Types> for SqlStorage
where Types: NodeType, - Payload<Types>: QueryablePayload,

§

type Error = QueryError

source§

fn insert_leaf<'life0, 'async_trait>( + Payload<Types>: QueryablePayload,

§

type Error = QueryError

source§

fn insert_leaf<'life0, 'async_trait>( &'life0 mut self, leaf: LeafQueryData<Types> ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where @@ -139,12 +147,6 @@ &'life0 mut self, block: BlockQueryData<Types> ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where - Self: 'async_trait, - 'life0: 'async_trait,

source§

impl<Types> UpdateNodeData<Types> for SqlStorage
where - Types: NodeType,

§

type Error = QueryError

source§

fn insert_leaf<'life0, 'async_trait>( - &'life0 mut self, - _leaf: LeafQueryData<Types> -) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

source§

impl VersionedDataSource for SqlStorage

§

type Error = Error

source§

fn commit<'life0, 'async_trait>( &'life0 mut self @@ -272,8 +274,8 @@ T: ?Sized,

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

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>,

§

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>,

§

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 + U: Into<T>,

§

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>,

§

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 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 47a4c83d4..46eed4748 100644 --- a/hotshot_query_service/data_source/storage/sql/struct.Transaction.html +++ b/hotshot_query_service/data_source/storage/sql/struct.Transaction.html @@ -1,6 +1,6 @@ Transaction in hotshot_query_service::data_source::storage::sql - Rust -
pub struct Transaction<'a> { /* private fields */ }
Expand description

An atomic SQL transaction.

-

Implementations§

source§

impl<'a> Transaction<'a>

source

pub async fn execute<T, P>( +
pub struct Transaction<'a> { /* private fields */ }
Expand description

An atomic SQL transaction.

+

Implementations§

source§

impl<'a> Transaction<'a>

source

pub async fn execute<T, P>( &mut self, statement: &T, params: P @@ -12,7 +12,7 @@

The results of the statement will be reflected immediately in future statements made within this transaction, but will not be reflected in the underlying database until the transaction is committed with commit.

-

source

pub async fn execute_one<T, P>( +

source

pub async fn execute_one<T, P>( &mut self, statement: &T, params: P @@ -22,7 +22,7 @@ P::IntoIter: ExactSizeIterator, P::Item: BorrowToSql,

Execute a statement that is expected to modify exactly one row.

Returns an error if the database is not modified.

-
source

pub async fn execute_one_with_retries<T, P>( +

source

pub async fn execute_one_with_retries<T, P>( &mut self, statement: &T, params: P @@ -32,7 +32,7 @@ P::IntoIter: ExactSizeIterator, P::Item: BorrowToSql,

Execute a statement that is expected to modify exactly one row.

Returns an error if the database is not modified. Retries several times before failing.

-
source

pub async fn execute_many<T, P>( +

source

pub async fn execute_many<T, P>( &mut self, statement: &T, params: P @@ -42,7 +42,7 @@ P::IntoIter: ExactSizeIterator, P::Item: BorrowToSql,

Execute a statement that is expected to modify at least one row.

Returns an error if the database is not modified.

-
source

pub async fn execute_many_with_retries<T, P>( +

source

pub async fn execute_many_with_retries<T, P>( &mut self, statement: &T, params: P @@ -52,21 +52,21 @@ P::IntoIter: ExactSizeIterator, P::Item: BorrowToSql,

Execute a statement that is expected to modify at least one row.

Returns an error if the database is not modified. Retries several times before failing.

-
source

pub async fn upsert<const N: usize, P>( +
source

pub async fn upsert<const N: usize, P>( &mut self, table: &str, columns: [&str; N], pk: impl IntoIterator<Item = &str>, rows: impl IntoIterator<Item = [P; N]> ) -> QueryResult<()>
where - P: BorrowToSql + Clone,

Trait Implementations§

source§

impl<'a> Query for Transaction<'a>

Query the underlying SQL database.

+ P: BorrowToSql + Clone,

Trait Implementations§

source§

impl<'a> Query for Transaction<'a>

Query the underlying SQL database.

The results will reflect the state after the statements thus far added to this transaction have been applied, even though those effects have not been committed to the database yet.

-
source§

fn client<'life0, 'async_trait>( +

source§

fn client<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Cow<'_, Arc<Client>>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

source§

fn query<'life0, 'life1, 'async_trait, T, P>( + 'life0: 'async_trait,

source§

fn query<'life0, 'life1, 'async_trait, T, P>( &'life0 self, query: &'life1 T, params: P @@ -77,14 +77,14 @@ P::Item: BorrowToSql, Self: Sync + 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

source§

fn query_static<'life0, 'life1, 'async_trait, T>( + 'life1: 'async_trait,

source§

fn query_static<'life0, 'life1, 'async_trait, T>( &'life0 self, query: &'life1 T ) -> Pin<Box<dyn Future<Output = QueryResult<BoxStream<'static, QueryResult<Row>>>> + Send + 'async_trait>>
where T: ?Sized + ToStatement + Sync + 'async_trait, Self: Sync + 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

Query the underlying SQL database with no parameters.
source§

fn query_one<'life0, 'life1, 'async_trait, T, P>( + 'life1: 'async_trait,

Query the underlying SQL database with no parameters.
source§

fn query_one<'life0, 'life1, 'async_trait, T, P>( &'life0 self, query: &'life1 T, params: P @@ -95,7 +95,7 @@ P::Item: BorrowToSql, Self: Sync + 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

Query the underlying SQL database, returning exactly one result or failing.
source§

fn query_one_static<'life0, 'life1, 'async_trait, T>( + 'life1: 'async_trait,

Query the underlying SQL database, returning exactly one result or failing.
source§

fn query_one_static<'life0, 'life1, 'async_trait, T>( &'life0 self, query: &'life1 T ) -> Pin<Box<dyn Future<Output = QueryResult<Row>> + Send + 'async_trait>>
where @@ -103,7 +103,7 @@ Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Query the underlying SQL database with no parameters, returning exactly one result or -failing.
source§

fn query_opt<'life0, 'life1, 'async_trait, T, P>( +failing.

source§

fn query_opt<'life0, 'life1, 'async_trait, T, P>( &'life0 self, query: &'life1 T, params: P @@ -114,7 +114,7 @@ P::Item: BorrowToSql, Self: Sync + 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

Query the underlying SQL database, returning zero or one results.
source§

fn query_opt_static<'life0, 'life1, 'async_trait, T>( + 'life1: 'async_trait,

Query the underlying SQL database, returning zero or one results.
source§

fn query_opt_static<'life0, 'life1, 'async_trait, T>( &'life0 self, query: &'life1 T ) -> Pin<Box<dyn Future<Output = QueryResult<Option<Row>>> + Send + 'async_trait>>
where diff --git a/hotshot_query_service/data_source/storage/sql/testing/index.html b/hotshot_query_service/data_source/storage/sql/testing/index.html new file mode 100644 index 000000000..5f33a656a --- /dev/null +++ b/hotshot_query_service/data_source/storage/sql/testing/index.html @@ -0,0 +1,2 @@ +hotshot_query_service::data_source::storage::sql::testing - Rust +
\ No newline at end of file diff --git a/hotshot_query_service/data_source/storage/sql/testing/sidebar-items.js b/hotshot_query_service/data_source/storage/sql/testing/sidebar-items.js new file mode 100644 index 000000000..59c9d5cc7 --- /dev/null +++ b/hotshot_query_service/data_source/storage/sql/testing/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"struct":["TmpDb"]}; \ No newline at end of file diff --git a/hotshot_query_service/data_source/storage/sql/testing/struct.TmpDb.html b/hotshot_query_service/data_source/storage/sql/testing/struct.TmpDb.html new file mode 100644 index 000000000..14c843b8d --- /dev/null +++ b/hotshot_query_service/data_source/storage/sql/testing/struct.TmpDb.html @@ -0,0 +1,128 @@ +TmpDb in hotshot_query_service::data_source::storage::sql::testing - Rust +
pub struct TmpDb { /* private fields */ }

Implementations§

source§

impl TmpDb

source

pub async fn init() -> Self

source

pub fn host(&self) -> String

source

pub fn port(&self) -> u16

source

pub fn config(&self) -> Config

Trait Implementations§

source§

impl Debug for TmpDb

source§

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

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

impl Drop for TmpDb

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl RefUnwindSafe for TmpDb

§

impl Send for TmpDb

§

impl Sync for TmpDb

§

impl Unpin for TmpDb

§

impl UnwindSafe for TmpDb

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<'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
§

impl<T> Conv for T

§

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

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

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where + T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be +further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
§

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> Instrument for T

source§

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

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

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.

+
§

impl<D> OwoColorize for D

§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where + C: Color,

Set the foreground color generically Read more
§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where + C: Color,

Set the background color generically. Read more
§

fn black<'a>(&'a self) -> FgColorDisplay<'a, Black, Self>

Change the foreground color to black
§

fn on_black<'a>(&'a self) -> BgColorDisplay<'a, Black, Self>

Change the background color to black
§

fn red<'a>(&'a self) -> FgColorDisplay<'a, Red, Self>

Change the foreground color to red
§

fn on_red<'a>(&'a self) -> BgColorDisplay<'a, Red, Self>

Change the background color to red
§

fn green<'a>(&'a self) -> FgColorDisplay<'a, Green, Self>

Change the foreground color to green
§

fn on_green<'a>(&'a self) -> BgColorDisplay<'a, Green, Self>

Change the background color to green
§

fn yellow<'a>(&'a self) -> FgColorDisplay<'a, Yellow, Self>

Change the foreground color to yellow
§

fn on_yellow<'a>(&'a self) -> BgColorDisplay<'a, Yellow, Self>

Change the background color to yellow
§

fn blue<'a>(&'a self) -> FgColorDisplay<'a, Blue, Self>

Change the foreground color to blue
§

fn on_blue<'a>(&'a self) -> BgColorDisplay<'a, Blue, Self>

Change the background color to blue
§

fn magenta<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>

Change the foreground color to magenta
§

fn on_magenta<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>

Change the background color to magenta
§

fn purple<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>

Change the foreground color to purple
§

fn on_purple<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>

Change the background color to purple
§

fn cyan<'a>(&'a self) -> FgColorDisplay<'a, Cyan, Self>

Change the foreground color to cyan
§

fn on_cyan<'a>(&'a self) -> BgColorDisplay<'a, Cyan, Self>

Change the background color to cyan
§

fn white<'a>(&'a self) -> FgColorDisplay<'a, White, Self>

Change the foreground color to white
§

fn on_white<'a>(&'a self) -> BgColorDisplay<'a, White, Self>

Change the background color to white
§

fn default_color<'a>(&'a self) -> FgColorDisplay<'a, Default, Self>

Change the foreground color to the terminal default
§

fn on_default_color<'a>(&'a self) -> BgColorDisplay<'a, Default, Self>

Change the background color to the terminal default
§

fn bright_black<'a>(&'a self) -> FgColorDisplay<'a, BrightBlack, Self>

Change the foreground color to bright black
§

fn on_bright_black<'a>(&'a self) -> BgColorDisplay<'a, BrightBlack, Self>

Change the background color to bright black
§

fn bright_red<'a>(&'a self) -> FgColorDisplay<'a, BrightRed, Self>

Change the foreground color to bright red
§

fn on_bright_red<'a>(&'a self) -> BgColorDisplay<'a, BrightRed, Self>

Change the background color to bright red
§

fn bright_green<'a>(&'a self) -> FgColorDisplay<'a, BrightGreen, Self>

Change the foreground color to bright green
§

fn on_bright_green<'a>(&'a self) -> BgColorDisplay<'a, BrightGreen, Self>

Change the background color to bright green
§

fn bright_yellow<'a>(&'a self) -> FgColorDisplay<'a, BrightYellow, Self>

Change the foreground color to bright yellow
§

fn on_bright_yellow<'a>(&'a self) -> BgColorDisplay<'a, BrightYellow, Self>

Change the background color to bright yellow
§

fn bright_blue<'a>(&'a self) -> FgColorDisplay<'a, BrightBlue, Self>

Change the foreground color to bright blue
§

fn on_bright_blue<'a>(&'a self) -> BgColorDisplay<'a, BrightBlue, Self>

Change the background color to bright blue
§

fn bright_magenta<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>

Change the foreground color to bright magenta
§

fn on_bright_magenta<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>

Change the background color to bright magenta
§

fn bright_purple<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>

Change the foreground color to bright purple
§

fn on_bright_purple<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>

Change the background color to bright purple
§

fn bright_cyan<'a>(&'a self) -> FgColorDisplay<'a, BrightCyan, Self>

Change the foreground color to bright cyan
§

fn on_bright_cyan<'a>(&'a self) -> BgColorDisplay<'a, BrightCyan, Self>

Change the background color to bright cyan
§

fn bright_white<'a>(&'a self) -> FgColorDisplay<'a, BrightWhite, Self>

Change the foreground color to bright white
§

fn on_bright_white<'a>(&'a self) -> BgColorDisplay<'a, BrightWhite, Self>

Change the background color to bright white
§

fn bold<'a>(&'a self) -> BoldDisplay<'a, Self>

Make the text bold
§

fn dimmed<'a>(&'a self) -> DimDisplay<'a, Self>

Make the text dim
§

fn italic<'a>(&'a self) -> ItalicDisplay<'a, Self>

Make the text italicized
§

fn underline<'a>(&'a self) -> UnderlineDisplay<'a, Self>

Make the text italicized
Make the text blink
Make the text blink (but fast!)
§

fn reversed<'a>(&'a self) -> ReversedDisplay<'a, Self>

Swap the foreground and background colors
§

fn hidden<'a>(&'a self) -> HiddenDisplay<'a, Self>

Hide the text
§

fn strikethrough<'a>(&'a self) -> StrikeThroughDisplay<'a, Self>

Cross out the text
§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where + Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at +compile-time. If the color is constant, use either OwoColorize::fg or +a color-specific method, such as OwoColorize::green, Read more
§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where + Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at +compile-time. If the color is constant, use either OwoColorize::bg or +a color-specific method, such as OwoColorize::on_yellow, Read more
§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( + &self +) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( + &self +) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
§

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

impl<T> Same for T

§

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.
§

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>,

§

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>,

§

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

impl<T> WithSubscriber for T

source§

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

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more
\ No newline at end of file diff --git a/hotshot_query_service/data_source/storage/sql/trait.Query.html b/hotshot_query_service/data_source/storage/sql/trait.Query.html index 5d7785fd8..d0164752e 100644 --- a/hotshot_query_service/data_source/storage/sql/trait.Query.html +++ b/hotshot_query_service/data_source/storage/sql/trait.Query.html @@ -1,5 +1,5 @@ Query in hotshot_query_service::data_source::storage::sql - Rust -
pub trait Query {
+    
pub trait Query {
     // Required method
     fn client<'life0, 'async_trait>(
         &'life0 self
@@ -68,11 +68,11 @@
              Self: Sync + 'async_trait,
              'life0: 'async_trait,
              'life1: 'async_trait { ... }
-}

Required Methods§

source

fn client<'life0, 'async_trait>( +}

Required Methods§

source

fn client<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Cow<'_, Arc<Client>>> + Send + 'async_trait>>
where Self: 'async_trait, - 'life0: 'async_trait,

Provided Methods§

source

fn query<'life0, 'life1, 'async_trait, T, P>( + 'life0: 'async_trait,

Provided Methods§

source

fn query<'life0, 'life1, 'async_trait, T, P>( &'life0 self, query: &'life1 T, params: P @@ -83,7 +83,7 @@ P::Item: BorrowToSql, Self: Sync + 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

source

fn query_static<'life0, 'life1, 'async_trait, T>( + 'life1: 'async_trait,

source

fn query_static<'life0, 'life1, 'async_trait, T>( &'life0 self, query: &'life1 T ) -> Pin<Box<dyn Future<Output = QueryResult<BoxStream<'static, QueryResult<Row>>>> + Send + 'async_trait>>
where @@ -91,7 +91,7 @@ Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Query the underlying SQL database with no parameters.

-
source

fn query_one<'life0, 'life1, 'async_trait, T, P>( +

source

fn query_one<'life0, 'life1, 'async_trait, T, P>( &'life0 self, query: &'life1 T, params: P @@ -103,7 +103,7 @@ Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Query the underlying SQL database, returning exactly one result or failing.

-
source

fn query_one_static<'life0, 'life1, 'async_trait, T>( +

source

fn query_one_static<'life0, 'life1, 'async_trait, T>( &'life0 self, query: &'life1 T ) -> Pin<Box<dyn Future<Output = QueryResult<Row>> + Send + 'async_trait>>
where @@ -112,7 +112,7 @@ 'life0: 'async_trait, 'life1: 'async_trait,

Query the underlying SQL database with no parameters, returning exactly one result or failing.

-
source

fn query_opt<'life0, 'life1, 'async_trait, T, P>( +

source

fn query_opt<'life0, 'life1, 'async_trait, T, P>( &'life0 self, query: &'life1 T, params: P @@ -124,7 +124,7 @@ Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Query the underlying SQL database, returning zero or one results.

-
source

fn query_opt_static<'life0, 'life1, 'async_trait, T>( +

source

fn query_opt_static<'life0, 'life1, 'async_trait, T>( &'life0 self, query: &'life1 T ) -> Pin<Box<dyn Future<Output = QueryResult<Option<Row>>> + Send + 'async_trait>>
where @@ -132,7 +132,7 @@ Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Query the underlying SQL database with no parameters, returning zero or one results.

-

Object Safety§

This trait is not object safe.

Implementors§

source§

impl Query for SqlStorage

source§

impl<'a> Query for Transaction<'a>

Query the underlying SQL database.

+

Object Safety§

This trait is not object safe.

Implementors§

source§

impl Query for SqlStorage

source§

impl<'a> Query for Transaction<'a>

Query the underlying SQL database.

The results will reflect the state after the statements thus far added to this transaction have been applied, even though those effects have not been committed to the database yet.

source§

impl<Types, P: Send + Sync> Query for SqlDataSource<Types, P>
where diff --git a/hotshot_query_service/data_source/storage/trait.AvailabilityStorage.html b/hotshot_query_service/data_source/storage/trait.AvailabilityStorage.html index 2b8aab37f..edc571862 100644 --- a/hotshot_query_service/data_source/storage/trait.AvailabilityStorage.html +++ b/hotshot_query_service/data_source/storage/trait.AvailabilityStorage.html @@ -111,5 +111,6 @@ Self: 'async_trait, 'life0: 'async_trait,

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<Types> AvailabilityStorage<Types> for SqlStorage
where Types: NodeType, - Payload<Types>: QueryablePayload,

source§

impl<Types: NodeType> AvailabilityStorage<Types> for FileSystemStorage<Types>
where + Payload<Types>: QueryablePayload,

source§

impl<Types: NodeType> AvailabilityStorage<Types> for FileSystemStorage<Types>
where + Payload<Types>: QueryablePayload,

source§

impl<Types: NodeType> AvailabilityStorage<Types> for NoStorage
where Payload<Types>: QueryablePayload,

\ 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 42461a847..5f12f9adb 100644 --- a/hotshot_query_service/data_source/struct.ExtensibleDataSource.html +++ b/hotshot_query_service/data_source/struct.ExtensibleDataSource.html @@ -1,4 +1,4 @@ -ExtensibleDataSource in hotshot_query_service::data_source - Rust +ExtensibleDataSource in hotshot_query_service::data_source - Rust
pub struct ExtensibleDataSource<D, U> { /* private fields */ }
Expand description

Wrapper to add extensibility to an existing data source.

ExtensibleDataSource adds app-specific data to any existing data source. It implements all the data source traits defined in this crate as long as the underlying data source does so, @@ -97,7 +97,30 @@ from: usize ) -> Pin<Box<dyn Future<Output = BoxStream<'static, LeafQueryData<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: 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> NodeDataSource<Types> for ExtensibleDataSource<D, U>
where + '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 + D: TestableDataSource, + U: Default + Send + Sync + 'static,

§

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>( + 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>( + 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 mut self, + event: &'life1 Event<MockTypes> +) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where + Self: 'async_trait, + 'life0: 'async_trait, + 'life1: 'async_trait,

source§

fn setup<'life0, 'async_trait>( + _network: &'life0 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> NodeDataSource<Types> for ExtensibleDataSource<D, U>
where D: NodeDataSource<Types> + Send + Sync, U: Send + Sync, Types: NodeType,

source§

fn block_height<'life0, 'async_trait>( @@ -117,17 +140,25 @@ ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

source§

fn sync_status<'life0, 'async_trait>( + 'life1: 'async_trait,

source§

fn count_transactions<'life0, 'async_trait>( + &'life0 self +) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
where + Self: 'async_trait, + 'life0: 'async_trait,

source§

fn payload_size<'life0, 'async_trait>( + &'life0 self +) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
where + Self: '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,

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, - 'life0: 'async_trait,

source§

fn metrics(&self) -> &PrometheusMetrics

source§

fn consensus_metrics(&self) -> QueryResult<PrometheusMetrics>

source§

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

source§

fn metrics(&self) -> &PrometheusMetrics

source§

fn consensus_metrics(&self) -> QueryResult<PrometheusMetrics>

source§

fn mempool_info<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = QueryResult<MempoolQueryData>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, @@ -138,7 +169,7 @@ '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,

§

type Error = <D as UpdateAvailabilityData<Types>>::Error

source§

fn insert_leaf<'life0, 'async_trait>( + Types: NodeType,

§

type Error = <D as UpdateAvailabilityData<Types>>::Error

source§

fn insert_leaf<'life0, 'async_trait>( &'life0 mut self, leaf: LeafQueryData<Types> ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where @@ -147,18 +178,10 @@ &'life0 mut self, block: BlockQueryData<Types> ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where - Self: 'async_trait, - 'life0: 'async_trait,

source§

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

§

type Error = <D as UpdateNodeData<Types>>::Error

source§

fn insert_leaf<'life0, 'async_trait>( - &'life0 mut self, - leaf: LeafQueryData<Types> -) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

source§

impl<D, U> VersionedDataSource for ExtensibleDataSource<D, U>
where D: VersionedDataSource + Send, - U: Send,

§

type Error = <D as VersionedDataSource>::Error

source§

fn commit<'life0, 'async_trait>( + U: Send,

§

type Error = <D as VersionedDataSource>::Error

source§

fn commit<'life0, 'async_trait>( &'life0 mut self ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, @@ -297,8 +320,8 @@ builds.

source§

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

§

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>,

§

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>,

§

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.
source§

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

§

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>,

§

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.
source§

impl<T> UpdateStatusData for T

source§

fn populate_metrics(&self) -> Box<dyn Metrics>

§

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 @@ -306,4 +329,5 @@ [WithDispatch] wrapper. Read more
source§

impl<T> WithSubscriber for T

source§

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

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
\ No newline at end of file +WithDispatch wrapper. Read more
source§

impl<T> TestableDataSource for T

\ No newline at end of file diff --git a/hotshot_query_service/data_source/struct.MetricsDataSource.html b/hotshot_query_service/data_source/struct.MetricsDataSource.html index 1296e09ec..8bac3eb4b 100644 --- a/hotshot_query_service/data_source/struct.MetricsDataSource.html +++ b/hotshot_query_service/data_source/struct.MetricsDataSource.html @@ -1,4 +1,4 @@ -MetricsDataSource in hotshot_query_service::data_source - Rust +MetricsDataSource in hotshot_query_service::data_source - Rust
pub struct MetricsDataSource { /* private fields */ }
Expand description

A minimal data source for the status API provided in this crate, with no persistent storage.

MetricsDataSource uses the metrics provided by HotShot to implement StatusDataSource. It updates automatically whenever HotShot updates its metrics. All of the state for the metrics @@ -17,7 +17,28 @@ ConsensusMetricsValue::new(&*data_source.populate_metrics()), // Other fields omitted ).await.map_err(Error::internal)?.0;

-

Trait Implementations§

source§

impl Clone for MetricsDataSource

source§

fn clone(&self) -> MetricsDataSource

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 MetricsDataSource

source§

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

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

impl Default for MetricsDataSource

source§

fn default() -> MetricsDataSource

Returns the “default value” for a type. Read more
source§

impl StatusDataSource for MetricsDataSource

source§

fn block_height<'life0, 'async_trait>( +

Trait Implementations§

source§

impl Clone for MetricsDataSource

source§

fn clone(&self) -> MetricsDataSource

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 MetricsDataSource

§

type Storage = PrometheusMetrics

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>( + 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>( + 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 mut self, + _event: &'life1 Event<MockTypes> +) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where + Self: 'async_trait, + 'life0: 'async_trait, + 'life1: 'async_trait,

source§

fn setup<'life0, 'async_trait>( + _network: &'life0 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 Debug for MetricsDataSource

source§

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

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

impl Default for MetricsDataSource

source§

fn default() -> MetricsDataSource

Returns the “default value” for a type. Read more
source§

impl StatusDataSource for MetricsDataSource

source§

fn block_height<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
where Self: 'async_trait, diff --git a/hotshot_query_service/data_source/trait.UpdateDataSource.html b/hotshot_query_service/data_source/trait.UpdateDataSource.html index 5da4a259f..c5eaffa37 100644 --- a/hotshot_query_service/data_source/trait.UpdateDataSource.html +++ b/hotshot_query_service/data_source/trait.UpdateDataSource.html @@ -1,5 +1,5 @@ UpdateDataSource in hotshot_query_service::data_source - Rust -
pub trait UpdateDataSource<Types: NodeType>: UpdateAvailabilityData<Types> + UpdateNodeData<Types, Error = <Self as UpdateAvailabilityData<Types>>::Error> + UpdateStatusData {
+    
pub trait UpdateDataSource<Types: NodeType>: UpdateAvailabilityData<Types> + UpdateStatusData {
     // Required method
     fn update<'life0, 'life1, 'async_trait>(
         &'life0 mut self,
@@ -17,7 +17,7 @@
 SystemContextHandle
 
  • update, to update the query state when a new HotShot event is emitted
  • -

    Required Methods§

    source

    fn update<'life0, 'life1, 'async_trait>( +

    Required Methods§

    source

    fn update<'life0, 'life1, 'async_trait>( &'life0 mut self, event: &'life1 Event<Types> ) -> Pin<Box<dyn Future<Output = Result<(), <Self as UpdateAvailabilityData<Types>>::Error>> + Send + 'async_trait>>
    where @@ -32,6 +32,6 @@ trusted.

    If you want to update the data source with an untrusted event, for example one received from a peer over the network, you must authenticate it first.

    -

    Implementors§

    source§

    impl<Types: NodeType, T> UpdateDataSource<Types> for T
    where - T: UpdateAvailabilityData<Types> + UpdateNodeData<Types, Error = <Self as UpdateAvailabilityData<Types>>::Error> + UpdateStatusData + Send, +

    Implementors§

    source§

    impl<Types: NodeType, T> UpdateDataSource<Types> for T

    \ 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 4046f94f6..c9fd64b2a 100644 --- a/hotshot_query_service/data_source/trait.VersionedDataSource.html +++ b/hotshot_query_service/data_source/trait.VersionedDataSource.html @@ -1,5 +1,5 @@ VersionedDataSource in hotshot_query_service::data_source - Rust -
    pub trait VersionedDataSource {
    +    
    pub trait VersionedDataSource {
         type Error: Error + Debug + Send + Sync + 'static;
     
         // Required methods
    @@ -24,24 +24,24 @@
     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 Associated Types§

    source

    type Error: Error + Debug + Send + Sync + 'static

    Required Methods§

    source

    fn commit<'life0, 'async_trait>( +

    Required Associated Types§

    source

    type Error: Error + Debug + Send + Sync + 'static

    Required Methods§

    source

    fn commit<'life0, 'async_trait>( &'life0 mut self ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    Atomically commit to all outstanding modifications to the data.

    If this method fails, outstanding changes are left unmodified. The caller may opt to retry or to erase outstanding changes with revert.

    -
    source

    fn revert<'life0, 'async_trait>( +

    source

    fn revert<'life0, 'async_trait>( &'life0 mut self ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    Erase all oustanding modifications to the data.

    This function must not return if it has failed to revert changes. Inability to revert changes to the database is considered a fatal error, and this function may panic.

    -

    Implementors§

    Implementors§

    source§

    impl VersionedDataSource for DataSource

    source§

    impl VersionedDataSource for NoStorage

    source§

    impl VersionedDataSource for SqlStorage

    §

    type Error = Error

    source§

    impl<D, U> VersionedDataSource for ExtensibleDataSource<D, U>
    where D: VersionedDataSource + Send, - U: Send,

    source§

    impl<Types, S, P> VersionedDataSource for FetchingDataSource<Types, S, P>
    where + U: Send,

    source§

    impl<Types, S, P> VersionedDataSource for FetchingDataSource<Types, S, P>
    where Types: NodeType, S: VersionedDataSource + Send + Sync, - P: Send + Sync,

    source§

    impl<Types: NodeType> VersionedDataSource for FileSystemStorage<Types>
    where - Payload<Types>: QueryablePayload,

    §

    type Error = PersistenceError

    \ No newline at end of file + P: Send + Sync,
    source§

    impl<Types: NodeType> VersionedDataSource for FileSystemStorage<Types>
    where + Payload<Types>: QueryablePayload,

    §

    type Error = PersistenceError

    \ No newline at end of file diff --git a/hotshot_query_service/data_source/type.FileSystemDataSource.html b/hotshot_query_service/data_source/type.FileSystemDataSource.html index 163770586..8e7708794 100644 --- a/hotshot_query_service/data_source/type.FileSystemDataSource.html +++ b/hotshot_query_service/data_source/type.FileSystemDataSource.html @@ -1,4 +1,4 @@ -FileSystemDataSource in hotshot_query_service::data_source - Rust +FileSystemDataSource in hotshot_query_service::data_source - Rust
    pub type FileSystemDataSource<Types, P> = FetchingDataSource<Types, FileSystemStorage<Types>, P>;
    Expand description

    A data source for the APIs provided in this crate, backed by the local file system.

    Synchronization and atomicity of persisted data structures are provided via [atomic_store]. The methods commit, @@ -123,4 +123,25 @@

    Composition

    this FileSystemDataSource must be advanced, either by commit or, if there are no outstanding changes, skip_version.

    -
    \ No newline at end of file +

    Trait Implementations§

    source§

    impl<P: AvailabilityProvider<MockTypes> + Default> DataSourceLifeCycle for FileSystemDataSource<MockTypes, P>

    §

    type Storage = TempDir

    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>( + 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>( + 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 mut self, + event: &'life1 Event<MockTypes> +) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
    where + Self: 'async_trait, + 'life0: 'async_trait, + 'life1: 'async_trait,

    source§

    fn setup<'life0, 'async_trait>( + _network: &'life0 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.
    \ No newline at end of file diff --git a/hotshot_query_service/enum.Error.html b/hotshot_query_service/enum.Error.html index ec5c73eca..325390147 100644 --- a/hotshot_query_service/enum.Error.html +++ b/hotshot_query_service/enum.Error.html @@ -13,14 +13,14 @@ message: String, status: StatusCode, }, -}

    Variants§

    §

    Availability

    Fields

    §source: Error
    §

    Node

    Fields

    §source: Error
    §

    Status

    Fields

    §source: Error
    §

    Custom

    Fields

    §message: String
    §status: StatusCode

    Implementations§

    source§

    impl Error

    source

    pub fn internal<M: Display>(message: M) -> Self

    Trait Implementations§

    source§

    impl Clone for Error

    source§

    fn clone(&self) -> Error

    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 Error

    source§

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

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

    impl<'de> Deserialize<'de> for Error

    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 Error

    source§

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

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

    impl Error for Error

    source§

    fn catch_all(status: StatusCode, message: String) -> Self

    source§

    fn status(&self) -> StatusCode

    §

    fn from_io_error(source: Error) -> Self

    §

    fn from_config_error(source: ConfigError) -> Self

    §

    fn from_route_error<E>(source: RouteError<E>) -> Self
    where +}

    Variants§

    §

    Availability

    Fields

    §source: Error
    §

    Node

    Fields

    §source: Error
    §

    Status

    Fields

    §source: Error
    §

    Custom

    Fields

    §message: String
    §status: StatusCode

    Implementations§

    source§

    impl Error

    source

    pub fn internal<M: Display>(message: M) -> Self

    Trait Implementations§

    source§

    impl Clone for Error

    source§

    fn clone(&self) -> Error

    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 Error

    source§

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

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

    impl<'de> Deserialize<'de> for Error

    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 Error

    source§

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

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

    impl Error for Error

    source§

    fn catch_all(status: StatusCode, message: String) -> Self

    source§

    fn status(&self) -> StatusCode

    §

    fn from_io_error(source: Error) -> Self

    §

    fn from_config_error(source: ConfigError) -> Self

    §

    fn from_route_error<E>(source: RouteError<E>) -> Self
    where E: Display,

    §

    fn from_request_error(source: RequestError) -> Self

    §

    fn from_socket_error<E>(source: SocketError<E>) -> Self
    where E: Display,

    §

    fn into_tide_error(self) -> Error

    §

    fn from_server_error(source: Error) -> Self

    source§

    impl Error for Error
    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)>

    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 Error

    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<(String, StatusCode)> for Error

    source§

    fn from(original: (String, StatusCode)) -> Error

    Converts to this type from the input type.
    source§

    impl From<Error> for Error

    source§

    fn from(original: Error) -> Error

    Converts to this type from the input type.
    source§

    impl From<Error> for Error

    source§

    fn from(original: Error) -> Error

    Converts to this type from the input type.
    source§

    impl From<Error> for Error

    source§

    fn from(original: Error) -> Error

    Converts to this type from the input type.
    source§

    impl Serialize for Error

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where +and continuing with recursive calls to Error::source. Read more

    source§

    impl From<(String, StatusCode)> for Error

    source§

    fn from(original: (String, StatusCode)) -> Error

    Converts to this type from the input type.
    source§

    impl From<Error> for Error

    source§

    fn from(original: Error) -> Error

    Converts to this type from the input type.
    source§

    impl From<Error> for Error

    source§

    fn from(original: Error) -> Error

    Converts to this type from the input type.
    source§

    impl From<Error> for Error

    source§

    fn from(original: Error) -> Error

    Converts to this type from the input type.
    source§

    impl Serialize for Error

    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§

    §

    impl RefUnwindSafe for Error

    §

    impl Send for Error

    §

    impl Sync for Error

    §

    impl Unpin for Error

    §

    impl UnwindSafe for Error

    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> AsErrorSource for T
    where T: Error + 'static,

    §

    fn as_error_source(&self) -> &(dyn Error + 'static)

    For maximum effectiveness, this needs to be called as a method diff --git a/hotshot_query_service/enum.QueryError.html b/hotshot_query_service/enum.QueryError.html index 67001b00c..f41108864 100644 --- a/hotshot_query_service/enum.QueryError.html +++ b/hotshot_query_service/enum.QueryError.html @@ -1,5 +1,5 @@ -QueryError in hotshot_query_service - Rust -

    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)>

    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 +

    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)>

    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 IntoError<QueryError> for MissingSnafu
    where - QueryError: Error + ErrorCompat,

    §

    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,

    §

    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> IntoError<QueryError> for Snafu<__T0>
    where +and continuing with recursive calls to Error::source. Read more

    source§

    impl From<QueryError> for Error

    source§

    fn from(original: QueryError) -> Error

    Converts to this type from the input type.
    source§

    impl IntoError<QueryError> for MissingSnafu
    where + QueryError: Error + ErrorCompat,

    §

    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,

    §

    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> IntoError<QueryError> for Snafu<__T0>
    where QueryError: Error + ErrorCompat, - __T0: Into<String>,

    §

    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>,

    §

    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> AsErrorSource for T
    where T: Error + 'static,

    §

    fn as_error_source(&self) -> &(dyn Error + 'static)

    For maximum effectiveness, this needs to be called as a method @@ -57,7 +57,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> Instrument for T

    source§

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

    Instruments this type with the provided Span, returning an diff --git a/hotshot_query_service/fetching/provider/index.html b/hotshot_query_service/fetching/provider/index.html index dc967560d..bfe9552ca 100644 --- a/hotshot_query_service/fetching/provider/index.html +++ b/hotshot_query_service/fetching/provider/index.html @@ -20,6 +20,6 @@

    We also provide combinators for modularly adding functionality to existing fetchers:

    -

    Structs

    Traits

    • A provider which is able to satisfy requests for data of type T.
    \ No newline at end of file +

    Structs

    Traits

    • A provider which is able to satisfy requests for data of type T.
    \ No newline at end of file diff --git a/hotshot_query_service/fetching/provider/sidebar-items.js b/hotshot_query_service/fetching/provider/sidebar-items.js index fa36bd44a..66c2c62f3 100644 --- a/hotshot_query_service/fetching/provider/sidebar-items.js +++ b/hotshot_query_service/fetching/provider/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"struct":["AnyProvider","NoFetching","QueryServiceProvider"],"trait":["Provider"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"struct":["AnyProvider","NoFetching","QueryServiceProvider","TestProvider"],"trait":["Provider"]}; \ No newline at end of file diff --git a/hotshot_query_service/fetching/provider/struct.AnyProvider.html b/hotshot_query_service/fetching/provider/struct.AnyProvider.html index 29b296f33..80a4c3e28 100644 --- a/hotshot_query_service/fetching/provider/struct.AnyProvider.html +++ b/hotshot_query_service/fetching/provider/struct.AnyProvider.html @@ -32,13 +32,13 @@

    Examples

    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> Debug for AnyProvider<Types>
    where Types: NodeType,

    source§

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

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

    impl<Types> Default for AnyProvider<Types>
    where Types: NodeType,

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    source§

    impl<Types> Provider<Types, LeafRequest> for AnyProvider<Types>
    where - Types: NodeType,

    source§

    fn fetch<'life0, 'async_trait>( + Types: NodeType,

    source§

    fn fetch<'life0, 'async_trait>( &'life0 self, req: LeafRequest ) -> Pin<Box<dyn Future<Output = Option<LeafQueryData<Types>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    Fetch a resource.
    source§

    impl<Types> Provider<Types, PayloadRequest> for AnyProvider<Types>
    where - Types: NodeType,

    source§

    fn fetch<'life0, 'async_trait>( + Types: NodeType,

    source§

    fn fetch<'life0, 'async_trait>( &'life0 self, req: PayloadRequest ) -> Pin<Box<dyn Future<Output = Option<Payload<Types>>> + Send + 'async_trait>>
    where @@ -172,6 +172,6 @@

    Examples

    [WithDispatch] wrapper. Read more

    source§

    impl<T> WithSubscriber for T

    source§

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

    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> + Sync + 'static,

    \ 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 6a43d0a41..5e22275a7 100644 --- a/hotshot_query_service/fetching/provider/struct.NoFetching.html +++ b/hotshot_query_service/fetching/provider/struct.NoFetching.html @@ -135,6 +135,6 @@ [WithDispatch] wrapper. Read more
    source§

    impl<T> WithSubscriber for T

    source§

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

    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> + Sync + 'static,

    \ 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 1c0b893ca..5132c246d 100644 --- a/hotshot_query_service/fetching/provider/struct.QueryServiceProvider.html +++ b/hotshot_query_service/fetching/provider/struct.QueryServiceProvider.html @@ -143,6 +143,6 @@ [WithDispatch] wrapper. Read more
    source§

    impl<T> WithSubscriber for T

    source§

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

    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> + Sync + 'static,

    \ No newline at end of file diff --git a/hotshot_query_service/node/struct.SyncStatusSnafu.html b/hotshot_query_service/fetching/provider/struct.TestProvider.html similarity index 79% rename from hotshot_query_service/node/struct.SyncStatusSnafu.html rename to hotshot_query_service/fetching/provider/struct.TestProvider.html index e5de5257b..e395b914a 100644 --- a/hotshot_query_service/node/struct.SyncStatusSnafu.html +++ b/hotshot_query_service/fetching/provider/struct.TestProvider.html @@ -1,7 +1,31 @@ -SyncStatusSnafu in hotshot_query_service::node - Rust -
    pub struct SyncStatusSnafu;
    Expand description

    SNAFU context selector for the Error::SyncStatus variant

    -

    Trait Implementations§

    source§

    impl Clone for SyncStatusSnafu

    source§

    fn clone(&self) -> SyncStatusSnafu

    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 SyncStatusSnafu

    source§

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

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

    impl IntoError<Error> for SyncStatusSnafu
    where - Error: Error + ErrorCompat,

    §

    type Source = QueryError

    The underlying error
    source§

    fn into_error(self, error: Self::Source) -> Error

    Combine the information to produce the error
    source§

    impl Copy for SyncStatusSnafu

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +TestProvider in hotshot_query_service::fetching::provider - Rust +
    pub struct TestProvider<P> { /* private fields */ }
    Expand description

    Adaptor to add test-only functionality to an existing Provider.

    +

    TestProvider wraps an existing provider P and adds some additional functionality which can +be useful in tests, such as the ability to inject delays into the handling of fetch requests.

    +

    Implementations§

    source§

    impl<P> TestProvider<P>

    source

    pub fn new(inner: P) -> Self

    source

    pub async fn block(&self)

    Delay fetch requests until unblock.

    +

    Fetch requests started after this method returns will block without completing until +unblock is called. This can be useful for tests to examine the state of a +data source before a fetch request completes, to check that the subsequent fetch actually +has an effect.

    +
    source

    pub async fn unblock(&self)

    Allow blocked fetch requests to proceed.

    +

    Fetch requests which are blocked as a result of a preceding call to block +will become unblocked.

    +
    source

    pub fn fail(&self)

    Cause subsequent requests to fail.

    +

    All requests to the provider after this function is called will fail, until +unfail is called.

    +
    source

    pub fn unfail(&self)

    Stop requests from failing as a result of a previous call to fail.

    +

    Trait Implementations§

    source§

    impl<P> Clone for TestProvider<P>

    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<P> Debug for TestProvider<P>
    where + P: Debug,

    source§

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

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

    impl<Types, P, T> Provider<Types, T> for TestProvider<P>
    where + Types: NodeType, + T: Request<Types> + 'static, + P: Provider<Types, T> + Sync,

    source§

    fn fetch<'life0, 'async_trait>( + &'life0 self, + req: T +) -> Pin<Box<dyn Future<Output = Option<T::Response>> + Send + 'async_trait>>
    where + Self: 'async_trait, + 'life0: 'async_trait,

    Fetch a resource.

    Auto Trait Implementations§

    §

    impl<P> !RefUnwindSafe for TestProvider<P>

    §

    impl<P> Send for TestProvider<P>
    where + P: Send + Sync,

    §

    impl<P> Sync for TestProvider<P>
    where + P: Send + Sync,

    §

    impl<P> Unpin for TestProvider<P>

    §

    impl<P> !UnwindSafe for TestProvider<P>

    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<'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( @@ -130,4 +154,6 @@ [WithDispatch] wrapper. Read more

    source§

    impl<T> WithSubscriber for T

    source§

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more
    \ No newline at end of file +WithDispatch wrapper. Read more
    source§

    impl<Types, P> AvailabilityProvider<Types> for P
    where + Types: NodeType, + P: Provider<Types, LeafRequest> + Provider<Types, PayloadRequest> + Sync + 'static,

    \ No newline at end of file diff --git a/hotshot_query_service/fetching/provider/testing/struct.TestProvider.html b/hotshot_query_service/fetching/provider/testing/struct.TestProvider.html new file mode 100644 index 000000000..65d803811 --- /dev/null +++ b/hotshot_query_service/fetching/provider/testing/struct.TestProvider.html @@ -0,0 +1,11 @@ + + + + + Redirection + + +

    Redirecting to ../../../../hotshot_query_service/fetching/provider/struct.TestProvider.html...

    + + + \ No newline at end of file diff --git a/hotshot_query_service/fetching/provider/trait.Provider.html b/hotshot_query_service/fetching/provider/trait.Provider.html index 22fbbb40e..4e2fe036b 100644 --- a/hotshot_query_service/fetching/provider/trait.Provider.html +++ b/hotshot_query_service/fetching/provider/trait.Provider.html @@ -27,4 +27,7 @@ Types: NodeType,
    source§

    impl<Types> Provider<Types, LeafRequest> for QueryServiceProvider
    where Types: NodeType,

    source§

    impl<Types> Provider<Types, PayloadRequest> for AnyProvider<Types>
    where Types: NodeType,

    source§

    impl<Types> Provider<Types, PayloadRequest> for QueryServiceProvider
    where - Types: NodeType,

    source§

    impl<Types, T: Send + Request<Types> + 'static> Provider<Types, T> for NoFetching

    \ No newline at end of file + Types: NodeType,
    source§

    impl<Types, P, T> Provider<Types, T> for TestProvider<P>
    where + Types: NodeType, + T: Request<Types> + 'static, + P: Provider<Types, T> + Sync,

    source§

    impl<Types, T: Send + Request<Types> + 'static> Provider<Types, T> for NoFetching

    \ No newline at end of file diff --git a/hotshot_query_service/fetching/request/struct.LeafRequest.html b/hotshot_query_service/fetching/request/struct.LeafRequest.html index cc81715b3..5356104fb 100644 --- a/hotshot_query_service/fetching/request/struct.LeafRequest.html +++ b/hotshot_query_service/fetching/request/struct.LeafRequest.html @@ -1,17 +1,17 @@ LeafRequest in hotshot_query_service::fetching::request - Rust
    pub struct LeafRequest(/* private fields */);
    Expand description

    A request for a leaf with a given height.

    -

    Trait Implementations§

    source§

    impl Clone for LeafRequest

    source§

    fn clone(&self) -> LeafRequest

    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 LeafRequest

    source§

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

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

    impl From<LeafRequest> for usize

    source§

    fn from(original: LeafRequest) -> Self

    Converts to this type from the input type.
    source§

    impl From<usize> for LeafRequest

    source§

    fn from(original: usize) -> LeafRequest

    Converts to this type from the input type.
    source§

    impl Hash for LeafRequest

    source§

    fn hash<__H: Hasher>(&self, state: &mut __H)

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

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

    Trait Implementations§

    source§

    impl Clone for LeafRequest

    source§

    fn clone(&self) -> LeafRequest

    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 LeafRequest

    source§

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

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

    impl From<LeafRequest> for usize

    source§

    fn from(original: LeafRequest) -> Self

    Converts to this type from the input type.
    source§

    impl From<usize> for LeafRequest

    source§

    fn from(original: usize) -> LeafRequest

    Converts to this type from the input type.
    source§

    impl Hash for LeafRequest

    source§

    fn hash<__H: Hasher>(&self, state: &mut __H)

    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 PartialEq for LeafRequest

    source§

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

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

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

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

    impl<Types> Provider<Types, LeafRequest> for AnyProvider<Types>
    where - Types: NodeType,

    source§

    fn fetch<'life0, 'async_trait>( + Types: NodeType,

    source§

    fn fetch<'life0, 'async_trait>( &'life0 self, req: LeafRequest ) -> Pin<Box<dyn Future<Output = Option<LeafQueryData<Types>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait,

    Fetch a resource.
    source§

    impl<Types> Provider<Types, LeafRequest> for QueryServiceProvider
    where - Types: NodeType,

    source§

    fn fetch<'life0, 'async_trait>( + Types: NodeType,

    source§

    fn fetch<'life0, 'async_trait>( &'life0 self, req: LeafRequest ) -> Pin<Box<dyn Future<Output = Option<LeafQueryData<Types>>> + Send + 'async_trait>>
    where diff --git a/hotshot_query_service/fn.run_standalone_service.html b/hotshot_query_service/fn.run_standalone_service.html index 9554982c1..822fce1f0 100644 --- a/hotshot_query_service/fn.run_standalone_service.html +++ b/hotshot_query_service/fn.run_standalone_service.html @@ -1,5 +1,5 @@ run_standalone_service in hotshot_query_service - Rust -
    pub async fn run_standalone_service<Types: NodeType, I: NodeImplementation<Types>, D>(
    +    
    pub async fn run_standalone_service<Types: NodeType, I: NodeImplementation<Types>, D>(
         options: Options,
         data_source: D,
         hotshot: SystemContextHandle<Types, I>
    diff --git a/hotshot_query_service/index.html b/hotshot_query_service/index.html
    index 071442d01..7d42351ed 100644
    --- a/hotshot_query_service/index.html
    +++ b/hotshot_query_service/index.html
    @@ -1,6 +1,6 @@
     hotshot_query_service - Rust
    -    
    Expand description

    The HotShot Query Service is a minimal, generic query service that can be integrated into any +

    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 @@ -233,6 +233,14 @@

    Composition

    self.hotshot_qs.count_proposals(id).await } + async fn count_transactions(&self) -> QueryResult<usize> { + self.hotshot_qs.count_transactions().await + } + + async fn payload_size(&self) -> QueryResult<usize> { + self.hotshot_qs.payload_size().await + } + async fn sync_status(&self) -> QueryResult<SyncStatus> { self.hotshot_qs.sync_status().await } @@ -269,6 +277,6 @@

    Composition

    which you can add additional data to the same persistent store and synchronize the entire store together. Refer to the documentation for you specific data source for information on how to achieve this.

    -

    Modules

    • Queries for HotShot chain state.
    • Persistent storage and sources of data consumed by APIs.
    • Fetching missing data from remote providers.
    • A node’s view of a HotShot chain
    • Queries for node-specific state and uncommitted data.

    Macros

    Structs

    • This is the consensus-internal analogous concept to a block, and it contains the block proper, +

    Modules

    Macros

    Structs

    • This is the consensus-internal analogous concept to a block, and it contains the block proper, as well as the hash of its parent Leaf. NOTE: State is constrained to implementing BlockContents, is TypeMap::BlockPayload
    • SNAFU context selector for the QueryError::Missing variant
    • SNAFU context selector for the QueryError::NotFound variant
    • SNAFU context selector for the QueryError::Error variant

    Enums

    Traits

    • A reference to a T which can be resolved into a whole T.

    Functions

    Type Aliases

    \ No newline at end of file diff --git a/hotshot_query_service/macro.instantiate_availability_tests!.html b/hotshot_query_service/macro.instantiate_availability_tests!.html new file mode 100644 index 000000000..6310e9df4 --- /dev/null +++ b/hotshot_query_service/macro.instantiate_availability_tests!.html @@ -0,0 +1,11 @@ + + + + + Redirection + + +

    Redirecting to macro.instantiate_availability_tests.html...

    + + + \ No newline at end of file diff --git a/hotshot_query_service/macro.instantiate_availability_tests.html b/hotshot_query_service/macro.instantiate_availability_tests.html new file mode 100644 index 000000000..bca75d3a0 --- /dev/null +++ b/hotshot_query_service/macro.instantiate_availability_tests.html @@ -0,0 +1,4 @@ +instantiate_availability_tests in hotshot_query_service - Rust +
    macro_rules! instantiate_availability_tests {
    +    ($($t:ty),*) => { ... };
    +}
    \ No newline at end of file diff --git a/hotshot_query_service/macro.instantiate_data_source_tests.html b/hotshot_query_service/macro.instantiate_data_source_tests.html index 680a4fc38..2b8ff10b3 100644 --- a/hotshot_query_service/macro.instantiate_data_source_tests.html +++ b/hotshot_query_service/macro.instantiate_data_source_tests.html @@ -1,4 +1,4 @@ instantiate_data_source_tests in hotshot_query_service - Rust -
    macro_rules! instantiate_data_source_tests {
    +    
    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 new file mode 100644 index 000000000..5e7476082 --- /dev/null +++ b/hotshot_query_service/macro.instantiate_node_tests!.html @@ -0,0 +1,11 @@ + + + + + Redirection + + +

    Redirecting to macro.instantiate_node_tests.html...

    + + + \ 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 new file mode 100644 index 000000000..d6a47f103 --- /dev/null +++ b/hotshot_query_service/macro.instantiate_node_tests.html @@ -0,0 +1,4 @@ +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 new file mode 100644 index 000000000..011e0b3a6 --- /dev/null +++ b/hotshot_query_service/macro.instantiate_persistence_tests!.html @@ -0,0 +1,11 @@ + + + + + Redirection + + +

    Redirecting to macro.instantiate_persistence_tests.html...

    + + + \ 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 new file mode 100644 index 000000000..765b9be9c --- /dev/null +++ b/hotshot_query_service/macro.instantiate_persistence_tests.html @@ -0,0 +1,4 @@ +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 new file mode 100644 index 000000000..005c37372 --- /dev/null +++ b/hotshot_query_service/macro.instantiate_status_tests!.html @@ -0,0 +1,11 @@ + + + + + Redirection + + +

    Redirecting to macro.instantiate_status_tests.html...

    + + + \ 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 new file mode 100644 index 000000000..141f8b6a0 --- /dev/null +++ b/hotshot_query_service/macro.instantiate_status_tests.html @@ -0,0 +1,4 @@ +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/node/data_source/trait.UpdateNodeData.html b/hotshot_query_service/node/data_source/trait.UpdateNodeData.html deleted file mode 100644 index 1c709b56a..000000000 --- a/hotshot_query_service/node/data_source/trait.UpdateNodeData.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirection - - -

    Redirecting to ../../../hotshot_query_service/node/trait.UpdateNodeData.html...

    - - - \ No newline at end of file diff --git a/hotshot_query_service/node/enum.Error.html b/hotshot_query_service/node/enum.Error.html index 4e2e3e391..ab694fe34 100644 --- a/hotshot_query_service/node/enum.Error.html +++ b/hotshot_query_service/node/enum.Error.html @@ -1,5 +1,5 @@ -Error in hotshot_query_service::node - Rust -
    pub enum Error {
    +Error in hotshot_query_service::node - Rust
    +    
    pub enum Error {
         Request {
             source: RequestError,
         },
    @@ -11,28 +11,24 @@
             proposer: String,
         },
         InvalidSignatureKey,
    -    SyncStatus {
    -        source: QueryError,
    -    },
         Custom {
             message: String,
             status: StatusCode,
         },
    -}

    Variants§

    §

    Request

    Fields

    §source: RequestError
    §

    Query

    Fields

    §source: QueryError
    §

    QueryProposals

    Fields

    §source: QueryError
    §proposer: String
    §

    InvalidSignatureKey

    §

    SyncStatus

    Fields

    §source: QueryError
    §

    Custom

    Fields

    §message: String
    §status: StatusCode

    Implementations§

    source§

    impl Error

    source

    pub fn internal<M: Display>(message: M) -> Self

    source

    pub fn status(&self) -> StatusCode

    Trait Implementations§

    source§

    impl Clone for Error

    source§

    fn clone(&self) -> Error

    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 Error

    source§

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

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

    impl<'de> Deserialize<'de> for Error

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where +}

    Variants§

    §

    Request

    Fields

    §source: RequestError
    §

    Query

    Fields

    §source: QueryError
    §

    QueryProposals

    Fields

    §source: QueryError
    §proposer: String
    §

    InvalidSignatureKey

    §

    Custom

    Fields

    §message: String
    §status: StatusCode

    Implementations§

    source§

    impl Error

    source

    pub fn internal<M: Display>(message: M) -> Self

    source

    pub fn status(&self) -> StatusCode

    Trait Implementations§

    source§

    impl Clone for Error

    source§

    fn clone(&self) -> Error

    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 Error

    source§

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

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

    impl<'de> Deserialize<'de> for Error

    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 Error

    source§

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

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

    impl Error for Error
    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)>

    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 Error

    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<(String, StatusCode)> for Error

    source§

    fn from(original: (String, StatusCode)) -> Error

    Converts to this type from the input type.
    source§

    impl From<Error> for Error

    source§

    fn from(original: Error) -> Error

    Converts to this type from the input type.
    source§

    impl From<RequestError> for Error

    source§

    fn from(original: RequestError) -> Error

    Converts to this type from the input type.
    source§

    impl<__T0, __T1> IntoError<Error> for CustomSnafu<__T0, __T1>
    where +and continuing with recursive calls to Error::source. Read more

    source§

    impl From<(String, StatusCode)> for Error

    source§

    fn from(original: (String, StatusCode)) -> Error

    Converts to this type from the input type.
    source§

    impl From<Error> for Error

    source§

    fn from(original: Error) -> 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<RequestError> for Error

    source§

    fn from(original: RequestError) -> Error

    Converts to this type from the input type.
    source§

    impl<__T0, __T1> IntoError<Error> for CustomSnafu<__T0, __T1>
    where Error: Error + ErrorCompat, __T0: Into<String>, - __T1: Into<StatusCode>,

    §

    type Source = NoneError

    The underlying error
    source§

    fn into_error(self, error: Self::Source) -> Error

    Combine the information to produce the error
    source§

    impl IntoError<Error> for InvalidSignatureKeySnafu
    where - Error: Error + ErrorCompat,

    §

    type Source = NoneError

    The underlying error
    source§

    fn into_error(self, error: Self::Source) -> Error

    Combine the information to produce the error
    source§

    impl<__T0> IntoError<Error> for QueryProposalsSnafu<__T0>
    where + __T1: Into<StatusCode>,

    §

    type Source = NoneError

    The underlying error
    source§

    fn into_error(self, error: Self::Source) -> Error

    Combine the information to produce the error
    source§

    impl IntoError<Error> for InvalidSignatureKeySnafu
    where + Error: Error + ErrorCompat,

    §

    type Source = NoneError

    The underlying error
    source§

    fn into_error(self, error: Self::Source) -> Error

    Combine the information to produce the error
    source§

    impl<__T0> IntoError<Error> for QueryProposalsSnafu<__T0>
    where Error: Error + ErrorCompat, - __T0: Into<String>,

    §

    type Source = QueryError

    The underlying error
    source§

    fn into_error(self, error: Self::Source) -> Error

    Combine the information to produce the error
    source§

    impl IntoError<Error> for QuerySnafu
    where - Error: Error + ErrorCompat,

    §

    type Source = QueryError

    The underlying error
    source§

    fn into_error(self, error: Self::Source) -> Error

    Combine the information to produce the error
    source§

    impl IntoError<Error> for RequestSnafu
    where - Error: Error + ErrorCompat,

    §

    type Source = RequestError

    The underlying error
    source§

    fn into_error(self, error: Self::Source) -> Error

    Combine the information to produce the error
    source§

    impl IntoError<Error> for SyncStatusSnafu
    where - Error: Error + ErrorCompat,

    §

    type Source = QueryError

    The underlying error
    source§

    fn into_error(self, error: Self::Source) -> Error

    Combine the information to produce the error
    source§

    impl Serialize for Error

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __T0: Into<String>,

    §

    type Source = QueryError

    The underlying error
    source§

    fn into_error(self, error: Self::Source) -> Error

    Combine the information to produce the error
    source§

    impl IntoError<Error> for QuerySnafu
    where + Error: Error + ErrorCompat,

    §

    type Source = QueryError

    The underlying error
    source§

    fn into_error(self, error: Self::Source) -> Error

    Combine the information to produce the error
    source§

    impl IntoError<Error> for RequestSnafu
    where + Error: Error + ErrorCompat,

    §

    type Source = RequestError

    The underlying error
    source§

    fn into_error(self, error: Self::Source) -> Error

    Combine the information to produce the error
    source§

    impl Serialize for Error

    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§

    §

    impl RefUnwindSafe for Error

    §

    impl Send for Error

    §

    impl Sync for Error

    §

    impl Unpin for Error

    §

    impl UnwindSafe for Error

    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> AsErrorSource for T
    where T: Error + 'static,

    §

    fn as_error_source(&self) -> &(dyn Error + 'static)

    For maximum effectiveness, this needs to be called as a method @@ -71,7 +67,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> Instrument for T

    source§

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

    Instruments this type with the provided Span, returning an diff --git a/hotshot_query_service/node/fn.define_api.html b/hotshot_query_service/node/fn.define_api.html index 740c0d80b..0986e7459 100644 --- a/hotshot_query_service/node/fn.define_api.html +++ b/hotshot_query_service/node/fn.define_api.html @@ -1,5 +1,5 @@ define_api in hotshot_query_service::node - Rust -
    pub fn define_api<State, Types: NodeType>(
    +    
    pub fn define_api<State, Types: NodeType>(
         options: &Options
     ) -> Result<Api<State, Error>, ApiError>
    where State: 'static + Send + Sync + ReadState, diff --git a/hotshot_query_service/node/index.html b/hotshot_query_service/node/index.html index 84c44863c..31c9e15e3 100644 --- a/hotshot_query_service/node/index.html +++ b/hotshot_query_service/node/index.html @@ -1,5 +1,5 @@ hotshot_query_service::node - Rust -
    Expand description

    A node’s view of a HotShot chain

    +
    Expand description

    A node’s view of a HotShot chain

    The node API provides a subjective view of the HotShot blockchain, from the perspective of one particular node. It provides access to information that the availability API does not, because this information depends on the @@ -7,4 +7,4 @@ /node/block-height and /node/proposals/:proposer_id/count may both return smaller counts than expected, if the node being queried is not fully synced with the entire history of the chain. However, the node will eventually sync and return the expected counts.

    -

    Re-exports

    Structs

    Enums

    Traits

    Functions

    \ No newline at end of file +

    Re-exports

    Structs

    Enums

    Traits

    Functions

    \ No newline at end of file diff --git a/hotshot_query_service/node/sidebar-items.js b/hotshot_query_service/node/sidebar-items.js index cc8a1eaee..9df8f88e4 100644 --- a/hotshot_query_service/node/sidebar-items.js +++ b/hotshot_query_service/node/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"enum":["Error"],"fn":["define_api"],"struct":["CustomSnafu","InvalidSignatureKeySnafu","Options","QueryProposalsSnafu","QuerySnafu","RequestSnafu","SyncStatus","SyncStatusSnafu"],"trait":["NodeDataSource","UpdateNodeData"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"enum":["Error"],"fn":["define_api"],"struct":["CustomSnafu","InvalidSignatureKeySnafu","Options","QueryProposalsSnafu","QuerySnafu","RequestSnafu","SyncStatus"],"trait":["NodeDataSource"]}; \ 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 f92060f4c..44ada8853 100644 --- a/hotshot_query_service/node/trait.NodeDataSource.html +++ b/hotshot_query_service/node/trait.NodeDataSource.html @@ -1,5 +1,5 @@ -NodeDataSource in hotshot_query_service::node - Rust -
    pub trait NodeDataSource<Types: NodeType> {
    +NodeDataSource in hotshot_query_service::node - Rust
    +    
    pub trait NodeDataSource<Types: NodeType> {
         // Required methods
         fn block_height<'life0, 'async_trait>(
             &'life0 self
    @@ -21,38 +21,57 @@
            where Self: 'async_trait,
                  'life0: 'async_trait,
                  'life1: 'async_trait;
    +    fn count_transactions<'life0, 'async_trait>(
    +        &'life0 self
    +    ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    +       where Self: 'async_trait,
    +             'life0: 'async_trait;
    +    fn payload_size<'life0, 'async_trait>(
    +        &'life0 self
    +    ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    +       where Self: 'async_trait,
    +             'life0: 'async_trait;
         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;
    -}

    Required Methods§

    source

    fn block_height<'life0, 'async_trait>( +}

    Required Methods§

    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 get_proposals<'life0, 'life1, 'async_trait>( + 'life0: 'async_trait,

    source

    fn get_proposals<'life0, 'life1, 'async_trait>( &'life0 self, proposer: &'life1 SignatureKey<Types>, limit: Option<usize> ) -> Pin<Box<dyn Future<Output = QueryResult<Vec<LeafQueryData<Types>>>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

    source

    fn count_proposals<'life0, 'life1, 'async_trait>( + 'life1: 'async_trait,

    source

    fn count_proposals<'life0, 'life1, 'async_trait>( &'life0 self, proposer: &'life1 SignatureKey<Types> ) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where Self: 'async_trait, 'life0: 'async_trait, - 'life1: 'async_trait,

    source

    fn sync_status<'life0, 'async_trait>( + 'life1: 'async_trait,

    source

    fn count_transactions<'life0, 'async_trait>( + &'life0 self +) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where + Self: 'async_trait, + 'life0: 'async_trait,

    source

    fn payload_size<'life0, 'async_trait>( + &'life0 self +) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where + Self: '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,

    Implementors§

    source§

    impl<D, U, Types> NodeDataSource<Types> for ExtensibleDataSource<D, U>
    where + 'life0: 'async_trait,

    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> NodeDataSource<Types> for SqlStorage
    where - Types: NodeType,

    source§

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

    source§

    impl<Types> NodeDataSource<Types> for SqlStorage
    where + Types: NodeType,

    source§

    impl<Types, S, P> NodeDataSource<Types> for FetchingDataSource<Types, S, P>
    where Types: NodeType, S: NodeDataSource<Types> + Send + Sync, - P: Send + Sync,

    source§

    impl<Types: NodeType> NodeDataSource<Types> for FileSystemStorage<Types>
    where + P: Send + Sync,

    source§

    impl<Types: NodeType> NodeDataSource<Types> for FileSystemStorage<Types>
    where + Payload<Types>: QueryablePayload,

    source§

    impl<Types: NodeType> NodeDataSource<Types> for NoStorage
    where Payload<Types>: QueryablePayload,

    \ No newline at end of file diff --git a/hotshot_query_service/node/trait.UpdateNodeData.html b/hotshot_query_service/node/trait.UpdateNodeData.html deleted file mode 100644 index 1263a8d0e..000000000 --- a/hotshot_query_service/node/trait.UpdateNodeData.html +++ /dev/null @@ -1,25 +0,0 @@ -UpdateNodeData in hotshot_query_service::node - Rust -
    pub trait UpdateNodeData<Types: NodeType> {
    -    type Error: Error + Debug + Send + Sync + 'static;
    -
    -    // Required method
    -    fn insert_leaf<'life0, 'async_trait>(
    -        &'life0 mut self,
    -        leaf: LeafQueryData<Types>
    -    ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
    -       where Self: 'async_trait,
    -             'life0: 'async_trait;
    -}

    Required Associated Types§

    source

    type Error: Error + Debug + Send + Sync + 'static

    Required Methods§

    source

    fn insert_leaf<'life0, 'async_trait>( - &'life0 mut self, - leaf: LeafQueryData<Types> -) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
    where - Self: 'async_trait, - 'life0: 'async_trait,

    Implementors§

    source§

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

    §

    type Error = <D as UpdateNodeData<Types>>::Error

    source§

    impl<Types> UpdateNodeData<Types> for SqlStorage
    where - Types: NodeType,

    source§

    impl<Types, S, P> UpdateNodeData<Types> for FetchingDataSource<Types, S, P>
    where - Types: NodeType, - S: UpdateNodeData<Types> + Send + Sync, - P: Send + Sync,

    §

    type Error = <S as UpdateNodeData<Types>>::Error

    source§

    impl<Types: NodeType> UpdateNodeData<Types> for FileSystemStorage<Types>
    where - Payload<Types>: QueryablePayload,

    §

    type Error = PersistenceError

    \ No newline at end of file diff --git a/hotshot_query_service/sidebar-items.js b/hotshot_query_service/sidebar-items.js index e3e175c2b..9fa3b5404 100644 --- a/hotshot_query_service/sidebar-items.js +++ b/hotshot_query_service/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"enum":["Error","QueryError"],"fn":["run_standalone_service"],"macro":["include_migrations","instantiate_data_source_tests"],"mod":["availability","data_source","fetching","metrics","node","status"],"struct":["Leaf","MissingSnafu","NotFoundSnafu","Options","Snafu"],"trait":["Resolvable"],"type":["Header","Metadata","Payload","QueryResult","SignatureKey","Transaction"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"enum":["Error","QueryError"],"fn":["run_standalone_service"],"macro":["include_migrations","instantiate_availability_tests","instantiate_data_source_tests","instantiate_node_tests","instantiate_persistence_tests","instantiate_status_tests"],"mod":["availability","data_source","fetching","metrics","node","status","testing"],"struct":["Leaf","MissingSnafu","NotFoundSnafu","Options","Snafu"],"trait":["Resolvable"],"type":["Header","Metadata","Payload","QueryResult","SignatureKey","Transaction"]}; \ 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 a90b200c0..48b528706 100644 --- a/hotshot_query_service/status/trait.StatusDataSource.html +++ b/hotshot_query_service/status/trait.StatusDataSource.html @@ -32,9 +32,9 @@ &'life0 self ) -> Pin<Box<dyn Future<Output = QueryResult<f64>> + Send + 'async_trait>>
    where Self: Sync + 'async_trait, - 'life0: 'async_trait,

    Implementors§

    source§

    impl StatusDataSource for MetricsDataSource

    source§

    impl<D, U> StatusDataSource for ExtensibleDataSource<D, U>
    where + 'life0: 'async_trait,

    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: NodeDataSource<Types> + Send + Sync, P: Send + Sync,

    \ No newline at end of file diff --git a/hotshot_query_service/struct.MissingSnafu.html b/hotshot_query_service/struct.MissingSnafu.html index 345bd7fd4..a6ab726ff 100644 --- a/hotshot_query_service/struct.MissingSnafu.html +++ b/hotshot_query_service/struct.MissingSnafu.html @@ -1,9 +1,9 @@ MissingSnafu in hotshot_query_service - Rust -
    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,

    §

    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 +
    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,

    §

    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<'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( diff --git a/hotshot_query_service/struct.NotFoundSnafu.html b/hotshot_query_service/struct.NotFoundSnafu.html index bcedef896..c19b5487b 100644 --- a/hotshot_query_service/struct.NotFoundSnafu.html +++ b/hotshot_query_service/struct.NotFoundSnafu.html @@ -1,9 +1,9 @@ NotFoundSnafu in hotshot_query_service - Rust -
    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,

    §

    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 +
    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,

    §

    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<'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( diff --git a/hotshot_query_service/struct.Options.html b/hotshot_query_service/struct.Options.html index 2b5469050..407a845de 100644 --- a/hotshot_query_service/struct.Options.html +++ b/hotshot_query_service/struct.Options.html @@ -1,15 +1,15 @@ Options in hotshot_query_service - Rust -
    pub struct Options {
    +    
    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 Args for Options

    source§

    fn group_id() -> Option<Id>

    Report the [ArgGroup::id][crate::ArgGroup::id] for this set of arguments
    source§

    fn augment_args<'b>(__clap_app: Command) -> Command

    Append to [Command] so it can instantiate Self. Read more
    source§

    fn augment_args_for_update<'b>(__clap_app: Command) -> Command

    Append to [Command] so it can update self. Read more
    source§

    impl Default for Options

    source§

    fn default() -> Options

    Returns the “default value” for a type. Read more
    source§

    impl FromArgMatches for Options

    source§

    fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn from_arg_matches_mut( +}

    Fields§

    §availability: Options§node: Options§status: Options§port: u16

    Trait Implementations§

    source§

    impl Args for Options

    source§

    fn group_id() -> Option<Id>

    Report the [ArgGroup::id][crate::ArgGroup::id] for this set of arguments
    source§

    fn augment_args<'b>(__clap_app: Command) -> Command

    Append to [Command] so it can instantiate Self. Read more
    source§

    fn augment_args_for_update<'b>(__clap_app: Command) -> Command

    Append to [Command] so it can update self. Read more
    source§

    impl Default for Options

    source§

    fn default() -> Options

    Returns the “default value” for a type. Read more
    source§

    impl FromArgMatches for Options

    source§

    fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches -) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn update_from_arg_matches( +) -> Result<Self, Error>

    Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
    source§

    fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches -) -> Result<(), Error>

    Assign values from ArgMatches to self.
    source§

    fn update_from_arg_matches_mut( +) -> Result<(), Error>

    Assign values from ArgMatches to self.
    source§

    fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches ) -> Result<(), Error>

    Assign values from ArgMatches to self.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where diff --git a/hotshot_query_service/struct.Snafu.html b/hotshot_query_service/struct.Snafu.html index db9354758..ff1f4f0f9 100644 --- a/hotshot_query_service/struct.Snafu.html +++ b/hotshot_query_service/struct.Snafu.html @@ -1,14 +1,14 @@ Snafu in hotshot_query_service - Rust -
    pub struct Snafu<__T0> {
    +    
    pub struct Snafu<__T0> {
         pub message: __T0,
     }
    Expand description

    SNAFU context selector for the QueryError::Error variant

    -

    Fields§

    §message: __T0

    Implementations§

    source§

    impl<__T0> Snafu<__T0>

    source

    pub fn build(self) -> QueryError
    where +

    Fields§

    §message: __T0

    Implementations§

    source§

    impl<__T0> Snafu<__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 Snafu<__T0>

    source§

    fn clone(&self) -> Snafu<__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 Snafu<__T0>

    source§

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

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

    impl<__T0> IntoError<QueryError> for Snafu<__T0>
    where +

    Trait Implementations§

    source§

    impl<__T0: Clone> Clone for Snafu<__T0>

    source§

    fn clone(&self) -> Snafu<__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 Snafu<__T0>

    source§

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

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

    impl<__T0> IntoError<QueryError> for Snafu<__T0>
    where QueryError: Error + ErrorCompat, - __T0: Into<String>,

    §

    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 Snafu<__T0>

    Auto Trait Implementations§

    §

    impl<__T0> RefUnwindSafe for Snafu<__T0>
    where + __T0: Into<String>,

    §

    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 Snafu<__T0>

    Auto Trait Implementations§

    §

    impl<__T0> RefUnwindSafe for Snafu<__T0>
    where __T0: RefUnwindSafe,

    §

    impl<__T0> Send for Snafu<__T0>
    where __T0: Send,

    §

    impl<__T0> Sync for Snafu<__T0>
    where __T0: Sync,

    §

    impl<__T0> Unpin for Snafu<__T0>
    where diff --git a/hotshot_query_service/testing/consensus/constant.NUM_NODES.html b/hotshot_query_service/testing/consensus/constant.NUM_NODES.html new file mode 100644 index 000000000..a5f44f713 --- /dev/null +++ b/hotshot_query_service/testing/consensus/constant.NUM_NODES.html @@ -0,0 +1,2 @@ +NUM_NODES in hotshot_query_service::testing::consensus - Rust +
    pub const NUM_NODES: usize = 2;
    \ No newline at end of file diff --git a/hotshot_query_service/testing/consensus/index.html b/hotshot_query_service/testing/consensus/index.html new file mode 100644 index 000000000..c38bfc497 --- /dev/null +++ b/hotshot_query_service/testing/consensus/index.html @@ -0,0 +1,2 @@ +hotshot_query_service::testing::consensus - Rust +
    \ No newline at end of file diff --git a/hotshot_query_service/testing/consensus/sidebar-items.js b/hotshot_query_service/testing/consensus/sidebar-items.js new file mode 100644 index 000000000..9be785c0b --- /dev/null +++ b/hotshot_query_service/testing/consensus/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"constant":["NUM_NODES"],"struct":["MockNetwork"],"trait":["DataSourceLifeCycle","TestableDataSource"],"type":["MockDataSource"]}; \ No newline at end of file diff --git a/hotshot_query_service/testing/consensus/struct.MockNetwork.html b/hotshot_query_service/testing/consensus/struct.MockNetwork.html new file mode 100644 index 000000000..c40c32d34 --- /dev/null +++ b/hotshot_query_service/testing/consensus/struct.MockNetwork.html @@ -0,0 +1,129 @@ +MockNetwork in hotshot_query_service::testing::consensus - Rust +
    pub struct MockNetwork<D: DataSourceLifeCycle> { /* private fields */ }

    Implementations§

    source§

    impl<D: DataSourceLifeCycle + UpdateStatusData> MockNetwork<D>

    source

    pub async fn init() -> Self

    source§

    impl<D: DataSourceLifeCycle> MockNetwork<D>

    source

    pub fn handle(&self) -> SystemContextHandle<MockTypes, MockNodeImpl>

    source

    pub async fn submit_transaction(&self, tx: MockTransaction)

    source

    pub fn num_nodes(&self) -> usize

    source

    pub fn proposer(&self, i: usize) -> SignatureKey<MockTypes>

    source

    pub fn data_source_index(&self, i: usize) -> Arc<RwLock<D>>

    source

    pub fn data_source(&self) -> Arc<RwLock<D>>

    source

    pub fn storage(&self) -> &D::Storage

    source

    pub async fn shut_down(self)

    source§

    impl<D: DataSourceLifeCycle> MockNetwork<D>

    source

    pub async fn start(&mut self)

    Trait Implementations§

    source§

    impl<D: DataSourceLifeCycle> Drop for MockNetwork<D>

    source§

    fn drop(&mut self)

    Executes the destructor for this type. Read more

    Auto Trait Implementations§

    §

    impl<D> !RefUnwindSafe for MockNetwork<D>

    §

    impl<D> Send for MockNetwork<D>

    §

    impl<D> Sync for MockNetwork<D>

    §

    impl<D> Unpin for MockNetwork<D>

    §

    impl<D> !UnwindSafe for MockNetwork<D>

    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<'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
    §

    impl<T> Conv for T

    §

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

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

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where + T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be +further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    §

    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> Instrument for T

    source§

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

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

    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.

    +
    §

    impl<D> OwoColorize for D

    §

    fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
    where + C: Color,

    Set the foreground color generically Read more
    §

    fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
    where + C: Color,

    Set the background color generically. Read more
    §

    fn black<'a>(&'a self) -> FgColorDisplay<'a, Black, Self>

    Change the foreground color to black
    §

    fn on_black<'a>(&'a self) -> BgColorDisplay<'a, Black, Self>

    Change the background color to black
    §

    fn red<'a>(&'a self) -> FgColorDisplay<'a, Red, Self>

    Change the foreground color to red
    §

    fn on_red<'a>(&'a self) -> BgColorDisplay<'a, Red, Self>

    Change the background color to red
    §

    fn green<'a>(&'a self) -> FgColorDisplay<'a, Green, Self>

    Change the foreground color to green
    §

    fn on_green<'a>(&'a self) -> BgColorDisplay<'a, Green, Self>

    Change the background color to green
    §

    fn yellow<'a>(&'a self) -> FgColorDisplay<'a, Yellow, Self>

    Change the foreground color to yellow
    §

    fn on_yellow<'a>(&'a self) -> BgColorDisplay<'a, Yellow, Self>

    Change the background color to yellow
    §

    fn blue<'a>(&'a self) -> FgColorDisplay<'a, Blue, Self>

    Change the foreground color to blue
    §

    fn on_blue<'a>(&'a self) -> BgColorDisplay<'a, Blue, Self>

    Change the background color to blue
    §

    fn magenta<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>

    Change the foreground color to magenta
    §

    fn on_magenta<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>

    Change the background color to magenta
    §

    fn purple<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>

    Change the foreground color to purple
    §

    fn on_purple<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>

    Change the background color to purple
    §

    fn cyan<'a>(&'a self) -> FgColorDisplay<'a, Cyan, Self>

    Change the foreground color to cyan
    §

    fn on_cyan<'a>(&'a self) -> BgColorDisplay<'a, Cyan, Self>

    Change the background color to cyan
    §

    fn white<'a>(&'a self) -> FgColorDisplay<'a, White, Self>

    Change the foreground color to white
    §

    fn on_white<'a>(&'a self) -> BgColorDisplay<'a, White, Self>

    Change the background color to white
    §

    fn default_color<'a>(&'a self) -> FgColorDisplay<'a, Default, Self>

    Change the foreground color to the terminal default
    §

    fn on_default_color<'a>(&'a self) -> BgColorDisplay<'a, Default, Self>

    Change the background color to the terminal default
    §

    fn bright_black<'a>(&'a self) -> FgColorDisplay<'a, BrightBlack, Self>

    Change the foreground color to bright black
    §

    fn on_bright_black<'a>(&'a self) -> BgColorDisplay<'a, BrightBlack, Self>

    Change the background color to bright black
    §

    fn bright_red<'a>(&'a self) -> FgColorDisplay<'a, BrightRed, Self>

    Change the foreground color to bright red
    §

    fn on_bright_red<'a>(&'a self) -> BgColorDisplay<'a, BrightRed, Self>

    Change the background color to bright red
    §

    fn bright_green<'a>(&'a self) -> FgColorDisplay<'a, BrightGreen, Self>

    Change the foreground color to bright green
    §

    fn on_bright_green<'a>(&'a self) -> BgColorDisplay<'a, BrightGreen, Self>

    Change the background color to bright green
    §

    fn bright_yellow<'a>(&'a self) -> FgColorDisplay<'a, BrightYellow, Self>

    Change the foreground color to bright yellow
    §

    fn on_bright_yellow<'a>(&'a self) -> BgColorDisplay<'a, BrightYellow, Self>

    Change the background color to bright yellow
    §

    fn bright_blue<'a>(&'a self) -> FgColorDisplay<'a, BrightBlue, Self>

    Change the foreground color to bright blue
    §

    fn on_bright_blue<'a>(&'a self) -> BgColorDisplay<'a, BrightBlue, Self>

    Change the background color to bright blue
    §

    fn bright_magenta<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>

    Change the foreground color to bright magenta
    §

    fn on_bright_magenta<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>

    Change the background color to bright magenta
    §

    fn bright_purple<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>

    Change the foreground color to bright purple
    §

    fn on_bright_purple<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>

    Change the background color to bright purple
    §

    fn bright_cyan<'a>(&'a self) -> FgColorDisplay<'a, BrightCyan, Self>

    Change the foreground color to bright cyan
    §

    fn on_bright_cyan<'a>(&'a self) -> BgColorDisplay<'a, BrightCyan, Self>

    Change the background color to bright cyan
    §

    fn bright_white<'a>(&'a self) -> FgColorDisplay<'a, BrightWhite, Self>

    Change the foreground color to bright white
    §

    fn on_bright_white<'a>(&'a self) -> BgColorDisplay<'a, BrightWhite, Self>

    Change the background color to bright white
    §

    fn bold<'a>(&'a self) -> BoldDisplay<'a, Self>

    Make the text bold
    §

    fn dimmed<'a>(&'a self) -> DimDisplay<'a, Self>

    Make the text dim
    §

    fn italic<'a>(&'a self) -> ItalicDisplay<'a, Self>

    Make the text italicized
    §

    fn underline<'a>(&'a self) -> UnderlineDisplay<'a, Self>

    Make the text italicized
    Make the text blink
    Make the text blink (but fast!)
    §

    fn reversed<'a>(&'a self) -> ReversedDisplay<'a, Self>

    Swap the foreground and background colors
    §

    fn hidden<'a>(&'a self) -> HiddenDisplay<'a, Self>

    Hide the text
    §

    fn strikethrough<'a>(&'a self) -> StrikeThroughDisplay<'a, Self>

    Cross out the text
    §

    fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
    where + Color: DynColor,

    Set the foreground color at runtime. Only use if you do not know which color will be used at +compile-time. If the color is constant, use either OwoColorize::fg or +a color-specific method, such as OwoColorize::green, Read more
    §

    fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
    where + Color: DynColor,

    Set the background color at runtime. Only use if you do not know what color to use at +compile-time. If the color is constant, use either OwoColorize::bg or +a color-specific method, such as OwoColorize::on_yellow, Read more
    §

    fn fg_rgb<const R: u8, const G: u8, const B: u8>( + &self +) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

    Set the foreground color to a specific RGB value.
    §

    fn bg_rgb<const R: u8, const G: u8, const B: u8>( + &self +) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

    Set the background color to a specific RGB value.
    §

    fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

    Sets the foreground color to an RGB value.
    §

    fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

    Sets the background color to an RGB value.
    §

    fn style(&self, style: Style) -> Styled<&Self>

    Apply a runtime-determined style
    §

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

    impl<T> Same for T

    §

    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.
    §

    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>,

    §

    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>,

    §

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

    impl<T> WithSubscriber for T

    source§

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

    Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more
    \ No newline at end of file diff --git a/hotshot_query_service/testing/consensus/trait.DataSourceLifeCycle.html b/hotshot_query_service/testing/consensus/trait.DataSourceLifeCycle.html new file mode 100644 index 000000000..bfe27efd3 --- /dev/null +++ b/hotshot_query_service/testing/consensus/trait.DataSourceLifeCycle.html @@ -0,0 +1,61 @@ +DataSourceLifeCycle in hotshot_query_service::testing::consensus - Rust +
    pub trait DataSourceLifeCycle: Send + Sync + Sized + 'static {
    +    type Storage: Send + Sync;
    +
    +    // Required methods
    +    fn create<'async_trait>(
    +        node_id: usize
    +    ) -> Pin<Box<dyn Future<Output = Self::Storage> + Send + 'async_trait>>
    +       where Self: 'async_trait;
    +    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;
    +    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;
    +    fn handle_event<'life0, 'life1, 'async_trait>(
    +        &'life0 mut self,
    +        event: &'life1 Event<MockTypes>
    +    ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
    +       where Self: 'async_trait,
    +             'life0: 'async_trait,
    +             'life1: 'async_trait;
    +
    +    // Provided method
    +    fn setup<'life0, 'async_trait>(
    +        _network: &'life0 MockNetwork<Self>
    +    ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
    +       where Self: 'async_trait,
    +             'life0: 'async_trait { ... }
    +}

    Required Associated Types§

    source

    type Storage: Send + Sync

    Backing storage for the data source.

    +

    This can be used to connect to data sources to the same underlying data. It must be kept +alive as long as the related data sources are open.

    +

    Required Methods§

    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>( + 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>( + 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 mut self, + event: &'life1 Event<MockTypes> +) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
    where + Self: 'async_trait, + 'life0: 'async_trait, + 'life1: 'async_trait,

    Provided Methods§

    source

    fn setup<'life0, 'async_trait>( + _network: &'life0 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.

    +

    Object Safety§

    This trait is not object safe.

    Implementors§

    \ No newline at end of file diff --git a/hotshot_query_service/testing/consensus/trait.TestableDataSource.html b/hotshot_query_service/testing/consensus/trait.TestableDataSource.html new file mode 100644 index 000000000..ee1d5a74e --- /dev/null +++ b/hotshot_query_service/testing/consensus/trait.TestableDataSource.html @@ -0,0 +1,3 @@ +TestableDataSource in hotshot_query_service::testing::consensus - Rust +
    \ No newline at end of file diff --git a/hotshot_query_service/testing/consensus/type.MockDataSource.html b/hotshot_query_service/testing/consensus/type.MockDataSource.html new file mode 100644 index 000000000..0d25db5cb --- /dev/null +++ b/hotshot_query_service/testing/consensus/type.MockDataSource.html @@ -0,0 +1,2 @@ +MockDataSource in hotshot_query_service::testing::consensus - Rust +
    pub type MockDataSource = FileSystemDataSource<MockTypes, NoFetching>;

    Aliased Type§

    struct MockDataSource { /* private fields */ }
    \ No newline at end of file diff --git a/hotshot_query_service/testing/fn.setup_test.html b/hotshot_query_service/testing/fn.setup_test.html new file mode 100644 index 000000000..a829018bc --- /dev/null +++ b/hotshot_query_service/testing/fn.setup_test.html @@ -0,0 +1,2 @@ +setup_test in hotshot_query_service::testing - Rust +
    pub fn setup_test()
    \ No newline at end of file diff --git a/hotshot_query_service/testing/fn.sleep.html b/hotshot_query_service/testing/fn.sleep.html new file mode 100644 index 000000000..086a45fba --- /dev/null +++ b/hotshot_query_service/testing/fn.sleep.html @@ -0,0 +1,2 @@ +sleep in hotshot_query_service::testing - Rust +
    pub async fn sleep(dur: Duration)
    \ No newline at end of file diff --git a/hotshot_query_service/testing/index.html b/hotshot_query_service/testing/index.html new file mode 100644 index 000000000..a089bd736 --- /dev/null +++ b/hotshot_query_service/testing/index.html @@ -0,0 +1,2 @@ +hotshot_query_service::testing - Rust +
    \ No newline at end of file diff --git a/hotshot_query_service/testing/mocks/fn.mock_transaction.html b/hotshot_query_service/testing/mocks/fn.mock_transaction.html new file mode 100644 index 000000000..a1637917a --- /dev/null +++ b/hotshot_query_service/testing/mocks/fn.mock_transaction.html @@ -0,0 +1,2 @@ +mock_transaction in hotshot_query_service::testing::mocks - Rust +
    pub fn mock_transaction(payload: Vec<u8>) -> MockTransaction
    \ No newline at end of file diff --git a/hotshot_query_service/testing/mocks/index.html b/hotshot_query_service/testing/mocks/index.html new file mode 100644 index 000000000..2d50c2f40 --- /dev/null +++ b/hotshot_query_service/testing/mocks/index.html @@ -0,0 +1,2 @@ +hotshot_query_service::testing::mocks - Rust +
    \ No newline at end of file diff --git a/hotshot_query_service/testing/mocks/sidebar-items.js b/hotshot_query_service/testing/mocks/sidebar-items.js new file mode 100644 index 000000000..68b51c2cb --- /dev/null +++ b/hotshot_query_service/testing/mocks/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"fn":["mock_transaction"],"struct":["MockNodeImpl","MockTypes"],"type":["MockHeader","MockMembership","MockNetwork","MockPayload","MockQuorumProposal","MockTransaction"]}; \ No newline at end of file diff --git a/hotshot_query_service/testing/mocks/struct.MockNodeImpl.html b/hotshot_query_service/testing/mocks/struct.MockNodeImpl.html new file mode 100644 index 000000000..591f6ec00 --- /dev/null +++ b/hotshot_query_service/testing/mocks/struct.MockNodeImpl.html @@ -0,0 +1,157 @@ +MockNodeImpl in hotshot_query_service::testing::mocks - Rust +
    pub struct MockNodeImpl;

    Trait Implementations§

    source§

    impl Clone for MockNodeImpl

    source§

    fn clone(&self) -> MockNodeImpl

    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 MockNodeImpl

    source§

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

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

    impl Default for MockNodeImpl

    source§

    fn default() -> MockNodeImpl

    Returns the “default value” for a type. Read more
    source§

    impl<'de> Deserialize<'de> for MockNodeImpl

    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 Hash for MockNodeImpl

    source§

    fn hash<__H: Hasher>(&self, state: &mut __H)

    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 NodeImplementation<MockTypes> for MockNodeImpl

    §

    type Storage = MemoryStorage<MockTypes>

    Storage type for this consensus implementation
    §

    type QuorumNetwork = MemoryNetwork<Message<MockTypes>, VerKey>

    Network for all nodes
    §

    type CommitteeNetwork = MemoryNetwork<Message<MockTypes>, VerKey>

    Network for those in the DA committee
    source§

    impl Ord for MockNodeImpl

    source§

    fn cmp(&self, other: &MockNodeImpl) -> 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 PartialEq for MockNodeImpl

    source§

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

    This method tests for self and other values to be equal, and is used +by ==.
    1.0.0 · source§

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

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

    impl PartialOrd for MockNodeImpl

    source§

    fn partial_cmp(&self, other: &MockNodeImpl) -> 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

    This method 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

    This method 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

    This method 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

    This method tests greater than or equal to (for self and other) and is used by the >= +operator. Read more
    source§

    impl Serialize for MockNodeImpl

    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 Copy for MockNodeImpl

    source§

    impl Eq for MockNodeImpl

    source§

    impl StructuralEq for MockNodeImpl

    source§

    impl StructuralPartialEq for MockNodeImpl

    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<'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
    §

    impl<T> CallHasher for T
    where + T: Hash + ?Sized,

    §

    fn get_hash<H, B>(value: &H, build_hasher: &B) -> u64
    where + H: Hash + ?Sized, + B: BuildHasher,

    §

    impl<Q, K> Comparable<K> for Q
    where + Q: Ord + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn compare(&self, key: &K) -> Ordering

    Compare self to key and return their ordering.
    §

    impl<T> Conv for T

    §

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

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

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where + T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be +further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

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

    source§

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

    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> Instrument for T

    source§

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

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

    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.

    +
    §

    impl<D> OwoColorize for D

    §

    fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
    where + C: Color,

    Set the foreground color generically Read more
    §

    fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
    where + C: Color,

    Set the background color generically. Read more
    §

    fn black<'a>(&'a self) -> FgColorDisplay<'a, Black, Self>

    Change the foreground color to black
    §

    fn on_black<'a>(&'a self) -> BgColorDisplay<'a, Black, Self>

    Change the background color to black
    §

    fn red<'a>(&'a self) -> FgColorDisplay<'a, Red, Self>

    Change the foreground color to red
    §

    fn on_red<'a>(&'a self) -> BgColorDisplay<'a, Red, Self>

    Change the background color to red
    §

    fn green<'a>(&'a self) -> FgColorDisplay<'a, Green, Self>

    Change the foreground color to green
    §

    fn on_green<'a>(&'a self) -> BgColorDisplay<'a, Green, Self>

    Change the background color to green
    §

    fn yellow<'a>(&'a self) -> FgColorDisplay<'a, Yellow, Self>

    Change the foreground color to yellow
    §

    fn on_yellow<'a>(&'a self) -> BgColorDisplay<'a, Yellow, Self>

    Change the background color to yellow
    §

    fn blue<'a>(&'a self) -> FgColorDisplay<'a, Blue, Self>

    Change the foreground color to blue
    §

    fn on_blue<'a>(&'a self) -> BgColorDisplay<'a, Blue, Self>

    Change the background color to blue
    §

    fn magenta<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>

    Change the foreground color to magenta
    §

    fn on_magenta<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>

    Change the background color to magenta
    §

    fn purple<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>

    Change the foreground color to purple
    §

    fn on_purple<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>

    Change the background color to purple
    §

    fn cyan<'a>(&'a self) -> FgColorDisplay<'a, Cyan, Self>

    Change the foreground color to cyan
    §

    fn on_cyan<'a>(&'a self) -> BgColorDisplay<'a, Cyan, Self>

    Change the background color to cyan
    §

    fn white<'a>(&'a self) -> FgColorDisplay<'a, White, Self>

    Change the foreground color to white
    §

    fn on_white<'a>(&'a self) -> BgColorDisplay<'a, White, Self>

    Change the background color to white
    §

    fn default_color<'a>(&'a self) -> FgColorDisplay<'a, Default, Self>

    Change the foreground color to the terminal default
    §

    fn on_default_color<'a>(&'a self) -> BgColorDisplay<'a, Default, Self>

    Change the background color to the terminal default
    §

    fn bright_black<'a>(&'a self) -> FgColorDisplay<'a, BrightBlack, Self>

    Change the foreground color to bright black
    §

    fn on_bright_black<'a>(&'a self) -> BgColorDisplay<'a, BrightBlack, Self>

    Change the background color to bright black
    §

    fn bright_red<'a>(&'a self) -> FgColorDisplay<'a, BrightRed, Self>

    Change the foreground color to bright red
    §

    fn on_bright_red<'a>(&'a self) -> BgColorDisplay<'a, BrightRed, Self>

    Change the background color to bright red
    §

    fn bright_green<'a>(&'a self) -> FgColorDisplay<'a, BrightGreen, Self>

    Change the foreground color to bright green
    §

    fn on_bright_green<'a>(&'a self) -> BgColorDisplay<'a, BrightGreen, Self>

    Change the background color to bright green
    §

    fn bright_yellow<'a>(&'a self) -> FgColorDisplay<'a, BrightYellow, Self>

    Change the foreground color to bright yellow
    §

    fn on_bright_yellow<'a>(&'a self) -> BgColorDisplay<'a, BrightYellow, Self>

    Change the background color to bright yellow
    §

    fn bright_blue<'a>(&'a self) -> FgColorDisplay<'a, BrightBlue, Self>

    Change the foreground color to bright blue
    §

    fn on_bright_blue<'a>(&'a self) -> BgColorDisplay<'a, BrightBlue, Self>

    Change the background color to bright blue
    §

    fn bright_magenta<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>

    Change the foreground color to bright magenta
    §

    fn on_bright_magenta<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>

    Change the background color to bright magenta
    §

    fn bright_purple<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>

    Change the foreground color to bright purple
    §

    fn on_bright_purple<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>

    Change the background color to bright purple
    §

    fn bright_cyan<'a>(&'a self) -> FgColorDisplay<'a, BrightCyan, Self>

    Change the foreground color to bright cyan
    §

    fn on_bright_cyan<'a>(&'a self) -> BgColorDisplay<'a, BrightCyan, Self>

    Change the background color to bright cyan
    §

    fn bright_white<'a>(&'a self) -> FgColorDisplay<'a, BrightWhite, Self>

    Change the foreground color to bright white
    §

    fn on_bright_white<'a>(&'a self) -> BgColorDisplay<'a, BrightWhite, Self>

    Change the background color to bright white
    §

    fn bold<'a>(&'a self) -> BoldDisplay<'a, Self>

    Make the text bold
    §

    fn dimmed<'a>(&'a self) -> DimDisplay<'a, Self>

    Make the text dim
    §

    fn italic<'a>(&'a self) -> ItalicDisplay<'a, Self>

    Make the text italicized
    §

    fn underline<'a>(&'a self) -> UnderlineDisplay<'a, Self>

    Make the text italicized
    Make the text blink
    Make the text blink (but fast!)
    §

    fn reversed<'a>(&'a self) -> ReversedDisplay<'a, Self>

    Swap the foreground and background colors
    §

    fn hidden<'a>(&'a self) -> HiddenDisplay<'a, Self>

    Hide the text
    §

    fn strikethrough<'a>(&'a self) -> StrikeThroughDisplay<'a, Self>

    Cross out the text
    §

    fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
    where + Color: DynColor,

    Set the foreground color at runtime. Only use if you do not know which color will be used at +compile-time. If the color is constant, use either OwoColorize::fg or +a color-specific method, such as OwoColorize::green, Read more
    §

    fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
    where + Color: DynColor,

    Set the background color at runtime. Only use if you do not know what color to use at +compile-time. If the color is constant, use either OwoColorize::bg or +a color-specific method, such as OwoColorize::on_yellow, Read more
    §

    fn fg_rgb<const R: u8, const G: u8, const B: u8>( + &self +) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

    Set the foreground color to a specific RGB value.
    §

    fn bg_rgb<const R: u8, const G: u8, const B: u8>( + &self +) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

    Set the background color to a specific RGB value.
    §

    fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

    Sets the foreground color to an RGB value.
    §

    fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

    Sets the background color to an RGB value.
    §

    fn style(&self, style: Style) -> Styled<&Self>

    Apply a runtime-determined style
    §

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

    impl<T> Same for T

    §

    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,

    §

    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>,

    §

    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>,

    §

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

    impl<T> WithSubscriber for T

    source§

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> Element for T
    where + T: Clone + Eq + PartialEq + Hash,

    §

    impl<T> Index for T
    where + T: Debug + Eq + PartialEq + Hash + Ord + PartialOrd + Clone,

    source§

    impl<T> RuleType for T
    where + T: Copy + Debug + Eq + Hash + Ord,

    \ 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 new file mode 100644 index 000000000..696821f84 --- /dev/null +++ b/hotshot_query_service/testing/mocks/struct.MockTypes.html @@ -0,0 +1,260 @@ +MockTypes in hotshot_query_service::testing::mocks - Rust +
    pub struct MockTypes;

    Trait Implementations§

    source§

    impl AvailabilityDataSource<MockTypes> for DataSource

    source§

    fn get_block_with_transaction<'life0, 'async_trait>( + &'life0 self, + hash: TransactionHash<MockTypes> +) -> Pin<Box<dyn Future<Output = Fetch<(BlockQueryData<MockTypes>, TransactionIndex<MockTypes>)>> + Send + 'async_trait>>
    where + Self: 'async_trait, + 'life0: 'async_trait,

    Returns the block containing a transaction with the given hash and the transaction’s +position in the block.

    +
    §

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

    §

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

    §

    type PayloadRange<R> = Pin<Box<dyn Stream<Item = Fetch<PayloadQueryData<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 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 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_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 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 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 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 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 self, + from: usize +) -> Pin<Box<dyn Future<Output = BoxStream<'static, LeafQueryData<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 Hash for MockTypes

    source§

    fn hash<__H: Hasher>(&self, state: &mut __H)

    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 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 get_proposals<'life0, 'life1, 'async_trait>( + &'life0 self, + proposer: &'life1 SignatureKey<MockTypes>, + limit: Option<usize> +) -> Pin<Box<dyn Future<Output = QueryResult<Vec<LeafQueryData<MockTypes>>>> + Send + 'async_trait>>
    where + Self: 'async_trait, + 'life0: 'async_trait, + 'life1: 'async_trait,

    source§

    fn count_proposals<'life0, 'life1, 'async_trait>( + &'life0 self, + proposer: &'life1 SignatureKey<MockTypes> +) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where + Self: 'async_trait, + 'life0: 'async_trait, + 'life1: 'async_trait,

    source§

    fn count_transactions<'life0, 'async_trait>( + &'life0 self +) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn payload_size<'life0, 'async_trait>( + &'life0 self +) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where + Self: '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,

    source§

    impl NodeImplementation<MockTypes> for MockNodeImpl

    §

    type Storage = MemoryStorage<MockTypes>

    Storage type for this consensus implementation
    §

    type QuorumNetwork = MemoryNetwork<Message<MockTypes>, VerKey>

    Network for all nodes
    §

    type CommitteeNetwork = MemoryNetwork<Message<MockTypes>, VerKey>

    Network for those in the DA committee
    source§

    impl NodeType for MockTypes

    §

    type Time = ViewNumber

    The time type that this hotshot setup is using. Read more
    §

    type BlockHeader = TestBlockHeader

    The block header type that this hotshot setup is using.
    §

    type BlockPayload = TestBlockPayload

    The block type that this hotshot setup is using. Read more
    §

    type SignatureKey = VerKey

    The signature key that this hotshot setup is using.
    §

    type Transaction = TestTransaction

    The transaction type that this hotshot setup is using. Read more
    §

    type ElectionConfigType = StaticElectionConfig

    The election config type that this hotshot setup is using.
    §

    type InstanceState = TestInstanceState

    The instance-level state type that this hotshot setup is using.
    §

    type ValidatedState = TestValidatedState

    The validated state type that this hotshot setup is using.
    §

    type Membership = GeneralStaticCommittee<MockTypes, VerKey>

    Membership used for this implementation
    source§

    impl Ord for MockTypes

    source§

    fn cmp(&self, other: &MockTypes) -> 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 PartialEq for MockTypes

    source§

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

    This method tests for self and other values to be equal, and is used +by ==.
    1.0.0 · source§

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

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

    impl PartialOrd for MockTypes

    source§

    fn partial_cmp(&self, other: &MockTypes) -> 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

    This method 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

    This method 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

    This method 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

    This method tests greater than or equal to (for self and other) and is used by the >= +operator. Read more
    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

    §

    type Error = QueryError

    source§

    fn insert_leaf<'life0, 'async_trait>( + &'life0 mut self, + leaf: LeafQueryData<MockTypes> +) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
    where + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    fn insert_block<'life0, 'async_trait>( + &'life0 mut self, + block: BlockQueryData<MockTypes> +) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
    where + Self: 'async_trait, + 'life0: 'async_trait,

    source§

    impl Copy for MockTypes

    source§

    impl Eq for MockTypes

    source§

    impl StructuralEq for MockTypes

    source§

    impl StructuralPartialEq for MockTypes

    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<'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
    §

    impl<T> CallHasher for T
    where + T: Hash + ?Sized,

    §

    fn get_hash<H, B>(value: &H, build_hasher: &B) -> u64
    where + H: Hash + ?Sized, + B: BuildHasher,

    §

    impl<Q, K> Comparable<K> for Q
    where + Q: Ord + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn compare(&self, key: &K) -> Ordering

    Compare self to key and return their ordering.
    §

    impl<T> Conv for T

    §

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

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

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where + T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be +further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

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

    source§

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

    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> Instrument for T

    source§

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

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

    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.

    +
    §

    impl<D> OwoColorize for D

    §

    fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
    where + C: Color,

    Set the foreground color generically Read more
    §

    fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
    where + C: Color,

    Set the background color generically. Read more
    §

    fn black<'a>(&'a self) -> FgColorDisplay<'a, Black, Self>

    Change the foreground color to black
    §

    fn on_black<'a>(&'a self) -> BgColorDisplay<'a, Black, Self>

    Change the background color to black
    §

    fn red<'a>(&'a self) -> FgColorDisplay<'a, Red, Self>

    Change the foreground color to red
    §

    fn on_red<'a>(&'a self) -> BgColorDisplay<'a, Red, Self>

    Change the background color to red
    §

    fn green<'a>(&'a self) -> FgColorDisplay<'a, Green, Self>

    Change the foreground color to green
    §

    fn on_green<'a>(&'a self) -> BgColorDisplay<'a, Green, Self>

    Change the background color to green
    §

    fn yellow<'a>(&'a self) -> FgColorDisplay<'a, Yellow, Self>

    Change the foreground color to yellow
    §

    fn on_yellow<'a>(&'a self) -> BgColorDisplay<'a, Yellow, Self>

    Change the background color to yellow
    §

    fn blue<'a>(&'a self) -> FgColorDisplay<'a, Blue, Self>

    Change the foreground color to blue
    §

    fn on_blue<'a>(&'a self) -> BgColorDisplay<'a, Blue, Self>

    Change the background color to blue
    §

    fn magenta<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>

    Change the foreground color to magenta
    §

    fn on_magenta<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>

    Change the background color to magenta
    §

    fn purple<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>

    Change the foreground color to purple
    §

    fn on_purple<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>

    Change the background color to purple
    §

    fn cyan<'a>(&'a self) -> FgColorDisplay<'a, Cyan, Self>

    Change the foreground color to cyan
    §

    fn on_cyan<'a>(&'a self) -> BgColorDisplay<'a, Cyan, Self>

    Change the background color to cyan
    §

    fn white<'a>(&'a self) -> FgColorDisplay<'a, White, Self>

    Change the foreground color to white
    §

    fn on_white<'a>(&'a self) -> BgColorDisplay<'a, White, Self>

    Change the background color to white
    §

    fn default_color<'a>(&'a self) -> FgColorDisplay<'a, Default, Self>

    Change the foreground color to the terminal default
    §

    fn on_default_color<'a>(&'a self) -> BgColorDisplay<'a, Default, Self>

    Change the background color to the terminal default
    §

    fn bright_black<'a>(&'a self) -> FgColorDisplay<'a, BrightBlack, Self>

    Change the foreground color to bright black
    §

    fn on_bright_black<'a>(&'a self) -> BgColorDisplay<'a, BrightBlack, Self>

    Change the background color to bright black
    §

    fn bright_red<'a>(&'a self) -> FgColorDisplay<'a, BrightRed, Self>

    Change the foreground color to bright red
    §

    fn on_bright_red<'a>(&'a self) -> BgColorDisplay<'a, BrightRed, Self>

    Change the background color to bright red
    §

    fn bright_green<'a>(&'a self) -> FgColorDisplay<'a, BrightGreen, Self>

    Change the foreground color to bright green
    §

    fn on_bright_green<'a>(&'a self) -> BgColorDisplay<'a, BrightGreen, Self>

    Change the background color to bright green
    §

    fn bright_yellow<'a>(&'a self) -> FgColorDisplay<'a, BrightYellow, Self>

    Change the foreground color to bright yellow
    §

    fn on_bright_yellow<'a>(&'a self) -> BgColorDisplay<'a, BrightYellow, Self>

    Change the background color to bright yellow
    §

    fn bright_blue<'a>(&'a self) -> FgColorDisplay<'a, BrightBlue, Self>

    Change the foreground color to bright blue
    §

    fn on_bright_blue<'a>(&'a self) -> BgColorDisplay<'a, BrightBlue, Self>

    Change the background color to bright blue
    §

    fn bright_magenta<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>

    Change the foreground color to bright magenta
    §

    fn on_bright_magenta<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>

    Change the background color to bright magenta
    §

    fn bright_purple<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>

    Change the foreground color to bright purple
    §

    fn on_bright_purple<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>

    Change the background color to bright purple
    §

    fn bright_cyan<'a>(&'a self) -> FgColorDisplay<'a, BrightCyan, Self>

    Change the foreground color to bright cyan
    §

    fn on_bright_cyan<'a>(&'a self) -> BgColorDisplay<'a, BrightCyan, Self>

    Change the background color to bright cyan
    §

    fn bright_white<'a>(&'a self) -> FgColorDisplay<'a, BrightWhite, Self>

    Change the foreground color to bright white
    §

    fn on_bright_white<'a>(&'a self) -> BgColorDisplay<'a, BrightWhite, Self>

    Change the background color to bright white
    §

    fn bold<'a>(&'a self) -> BoldDisplay<'a, Self>

    Make the text bold
    §

    fn dimmed<'a>(&'a self) -> DimDisplay<'a, Self>

    Make the text dim
    §

    fn italic<'a>(&'a self) -> ItalicDisplay<'a, Self>

    Make the text italicized
    §

    fn underline<'a>(&'a self) -> UnderlineDisplay<'a, Self>

    Make the text italicized
    Make the text blink
    Make the text blink (but fast!)
    §

    fn reversed<'a>(&'a self) -> ReversedDisplay<'a, Self>

    Swap the foreground and background colors
    §

    fn hidden<'a>(&'a self) -> HiddenDisplay<'a, Self>

    Hide the text
    §

    fn strikethrough<'a>(&'a self) -> StrikeThroughDisplay<'a, Self>

    Cross out the text
    §

    fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
    where + Color: DynColor,

    Set the foreground color at runtime. Only use if you do not know which color will be used at +compile-time. If the color is constant, use either OwoColorize::fg or +a color-specific method, such as OwoColorize::green, Read more
    §

    fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
    where + Color: DynColor,

    Set the background color at runtime. Only use if you do not know what color to use at +compile-time. If the color is constant, use either OwoColorize::bg or +a color-specific method, such as OwoColorize::on_yellow, Read more
    §

    fn fg_rgb<const R: u8, const G: u8, const B: u8>( + &self +) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

    Set the foreground color to a specific RGB value.
    §

    fn bg_rgb<const R: u8, const G: u8, const B: u8>( + &self +) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

    Set the background color to a specific RGB value.
    §

    fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

    Sets the foreground color to an RGB value.
    §

    fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

    Sets the background color to an RGB value.
    §

    fn style(&self, style: Style) -> Styled<&Self>

    Apply a runtime-determined style
    §

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

    impl<T> Same for T

    §

    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,

    §

    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>,

    §

    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>,

    §

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

    impl<T> WithSubscriber for T

    source§

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

    fn with_current_subscriber(self) -> WithDispatch<Self>

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

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> Element for T
    where + T: Clone + Eq + PartialEq + Hash,

    §

    impl<T> Index for T
    where + T: Debug + Eq + PartialEq + Hash + Ord + PartialOrd + Clone,

    source§

    impl<T> RuleType for T
    where + T: Copy + Debug + Eq + Hash + Ord,

    \ No newline at end of file diff --git a/hotshot_query_service/testing/mocks/type.MockHeader.html b/hotshot_query_service/testing/mocks/type.MockHeader.html new file mode 100644 index 000000000..e460c4cd2 --- /dev/null +++ b/hotshot_query_service/testing/mocks/type.MockHeader.html @@ -0,0 +1,7 @@ +MockHeader in hotshot_query_service::testing::mocks - Rust +
    pub type MockHeader = TestBlockHeader;

    Aliased Type§

    struct MockHeader {
    +    pub block_number: u64,
    +    pub payload_commitment: HasherNode<CoreWrapper<CtVariableCoreWrapper<Sha256VarCore, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, OidSha256>>>,
    +}

    Fields§

    §block_number: u64

    Block number.

    +
    §payload_commitment: HasherNode<CoreWrapper<CtVariableCoreWrapper<Sha256VarCore, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, OidSha256>>>

    VID commitment to the payload.

    +
    \ No newline at end of file diff --git a/hotshot_query_service/testing/mocks/type.MockMembership.html b/hotshot_query_service/testing/mocks/type.MockMembership.html new file mode 100644 index 000000000..81b32c428 --- /dev/null +++ b/hotshot_query_service/testing/mocks/type.MockMembership.html @@ -0,0 +1,2 @@ +MockMembership in hotshot_query_service::testing::mocks - Rust +
    pub type MockMembership = GeneralStaticCommittee<MockTypes, <MockTypes as NodeType>::SignatureKey>;

    Aliased Type§

    struct MockMembership { /* private fields */ }
    \ No newline at end of file diff --git a/hotshot_query_service/testing/mocks/type.MockNetwork.html b/hotshot_query_service/testing/mocks/type.MockNetwork.html new file mode 100644 index 000000000..676e8ebd2 --- /dev/null +++ b/hotshot_query_service/testing/mocks/type.MockNetwork.html @@ -0,0 +1,2 @@ +MockNetwork in hotshot_query_service::testing::mocks - Rust +
    pub type MockNetwork = MemoryNetwork<Message<MockTypes>, BLSPubKey>;

    Aliased Type§

    struct MockNetwork { /* private fields */ }
    \ No newline at end of file diff --git a/hotshot_query_service/testing/mocks/type.MockPayload.html b/hotshot_query_service/testing/mocks/type.MockPayload.html new file mode 100644 index 000000000..67f1478a7 --- /dev/null +++ b/hotshot_query_service/testing/mocks/type.MockPayload.html @@ -0,0 +1,40 @@ +MockPayload in hotshot_query_service::testing::mocks - Rust +
    pub type MockPayload = TestBlockPayload;

    Aliased Type§

    struct MockPayload {
    +    pub transactions: Vec<TestTransaction>,
    +}

    Fields§

    §transactions: Vec<TestTransaction>

    List of transactions.

    +

    Trait Implementations§

    source§

    impl QueryablePayload for MockPayload

    §

    type TransactionIndex = usize

    An index which can be used to efficiently retrieve a transaction for the block. Read more
    §

    type Iter<'a> = Range<usize>

    Enumerate the transactions in this block.
    §

    type InclusionProof = ()

    A proof that a certain transaction exists in the block. Read more
    source§

    fn len(&self, _meta: &Self::Metadata) -> usize

    The number of transactions in the block.
    source§

    fn iter(&self, meta: &Self::Metadata) -> Self::Iter<'_>

    List the transaction indices in the block.
    source§

    fn transaction_with_proof( + &self, + _meta: &Self::Metadata, + index: &Self::TransactionIndex +) -> Option<(Self::Transaction, Self::InclusionProof)>

    Get a transaction by its block-specific index, along with an inclusion proof.
    source§

    fn is_empty(&self, meta: &Self::Metadata) -> bool

    Whether this block is empty of transactions.
    source§

    fn enumerate<'a>( + &'a self, + meta: &'a Self::Metadata +) -> Box<dyn Iterator<Item = (Self::TransactionIndex, Self::Transaction)> + 'a>

    Enumerate the transactions in the block with their indices.
    source§

    fn transaction( + &self, + meta: &Self::Metadata, + index: &Self::TransactionIndex +) -> Option<Self::Transaction>

    Get a transaction by its block-specific index.
    source§

    fn proof( + &self, + meta: &Self::Metadata, + index: &Self::TransactionIndex +) -> Option<Self::InclusionProof>

    Get an inclusion proof for a transaction with a given index.
    source§

    fn nth(&self, meta: &Self::Metadata, n: usize) -> Option<Self::TransactionIndex>

    Get the index of the nth transaction.
    source§

    fn nth_transaction( + &self, + meta: &Self::Metadata, + n: usize +) -> Option<Self::Transaction>

    Get the nth transaction.
    source§

    fn nth_transaction_with_proof( + &self, + meta: &Self::Metadata, + n: usize +) -> Option<(Self::Transaction, Self::InclusionProof)>

    Get the nth transaction, along with an inclusion proof.
    source§

    fn by_hash( + &self, + meta: &Self::Metadata, + hash: Commitment<Self::Transaction> +) -> Option<Self::TransactionIndex>

    Get the index of the transaction with a given hash, if it is in the block.
    source§

    fn transaction_by_hash( + &self, + meta: &Self::Metadata, + hash: Commitment<Self::Transaction> +) -> Option<Self::Transaction>

    Get the transaction with a given hash, if it is in the block.
    source§

    fn transaction_by_hash_with_proof( + &self, + meta: &Self::Metadata, + hash: Commitment<Self::Transaction> +) -> Option<(Self::Transaction, Self::InclusionProof)>

    Get the transaction with a given hash, if it is in the block, along with an inclusion proof.
    \ No newline at end of file diff --git a/hotshot_query_service/testing/mocks/type.MockQuorumProposal.html b/hotshot_query_service/testing/mocks/type.MockQuorumProposal.html new file mode 100644 index 000000000..83c6fa1a3 --- /dev/null +++ b/hotshot_query_service/testing/mocks/type.MockQuorumProposal.html @@ -0,0 +1,15 @@ +MockQuorumProposal in hotshot_query_service::testing::mocks - Rust +
    pub type MockQuorumProposal = QuorumProposal<MockTypes>;

    Aliased Type§

    struct MockQuorumProposal {
    +    pub block_header: TestBlockHeader,
    +    pub view_number: ViewNumber,
    +    pub justify_qc: SimpleCertificate<MockTypes, QuorumData<MockTypes>, SuccessThreshold>,
    +    pub timeout_certificate: Option<SimpleCertificate<MockTypes, TimeoutData<MockTypes>, SuccessThreshold>>,
    +    pub upgrade_certificate: Option<SimpleCertificate<MockTypes, UpgradeProposalData<MockTypes>, UpgradeThreshold>>,
    +    pub proposer_id: VerKey,
    +}

    Fields§

    §block_header: TestBlockHeader

    The block header to append

    +
    §view_number: ViewNumber

    CurView from leader when proposing leaf

    +
    §justify_qc: SimpleCertificate<MockTypes, QuorumData<MockTypes>, SuccessThreshold>

    Per spec, justification

    +
    §timeout_certificate: Option<SimpleCertificate<MockTypes, TimeoutData<MockTypes>, SuccessThreshold>>

    Possible timeout certificate. Only present if the justify_qc is not for the preceding view

    +
    §upgrade_certificate: Option<SimpleCertificate<MockTypes, UpgradeProposalData<MockTypes>, UpgradeThreshold>>

    Possible upgrade certificate, which the leader may optionally attach.

    +
    §proposer_id: VerKey

    the propser id

    +
    \ No newline at end of file diff --git a/hotshot_query_service/testing/mocks/type.MockTransaction.html b/hotshot_query_service/testing/mocks/type.MockTransaction.html new file mode 100644 index 000000000..e26c9c693 --- /dev/null +++ b/hotshot_query_service/testing/mocks/type.MockTransaction.html @@ -0,0 +1,2 @@ +MockTransaction in hotshot_query_service::testing::mocks - Rust +
    pub type MockTransaction = TestTransaction;

    Aliased Type§

    struct MockTransaction(pub Vec<u8>);

    Fields§

    §0: Vec<u8>
    \ No newline at end of file diff --git a/hotshot_query_service/testing/sidebar-items.js b/hotshot_query_service/testing/sidebar-items.js new file mode 100644 index 000000000..c77e6440c --- /dev/null +++ b/hotshot_query_service/testing/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"fn":["setup_test","sleep"],"mod":["consensus","mocks"]}; \ No newline at end of file diff --git a/hotshot_query_service/type.Header.html b/hotshot_query_service/type.Header.html index 1e03d0052..e5dfd14ca 100644 --- a/hotshot_query_service/type.Header.html +++ b/hotshot_query_service/type.Header.html @@ -1,2 +1,2 @@ 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 +

    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 7a8dea1e8..1730a09e2 100644 --- a/hotshot_query_service/type.Metadata.html +++ b/hotshot_query_service/type.Metadata.html @@ -1,2 +1,2 @@ Metadata in hotshot_query_service - Rust -
    pub type Metadata<Types> = <Payload<Types> as BlockPayload>::Metadata;
    \ No newline at end of file +
    pub type Metadata<Types> = <Payload<Types> as BlockPayload>::Metadata;
    \ No newline at end of file diff --git a/hotshot_query_service/type.Payload.html b/hotshot_query_service/type.Payload.html index e7e30055b..e7734e0be 100644 --- a/hotshot_query_service/type.Payload.html +++ b/hotshot_query_service/type.Payload.html @@ -1,2 +1,2 @@ Payload in hotshot_query_service - Rust -
    pub type Payload<Types> = <Types as NodeType>::BlockPayload;
    \ No newline at end of file +
    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 4c7a0aa70..39dbbe8d6 100644 --- a/hotshot_query_service/type.QueryResult.html +++ b/hotshot_query_service/type.QueryResult.html @@ -1,5 +1,5 @@ QueryResult in hotshot_query_service - Rust -
    pub type QueryResult<T> = Result<T, QueryError>;

    Aliased Type§

    enum QueryResult<T> {
    +    
    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 4b6c17bc3..989da838d 100644 --- a/hotshot_query_service/type.SignatureKey.html +++ b/hotshot_query_service/type.SignatureKey.html @@ -1,2 +1,2 @@ SignatureKey in hotshot_query_service - Rust -
    pub type SignatureKey<Types> = <Types as NodeType>::SignatureKey;
    \ No newline at end of file +
    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 206b0622c..f2ac3b4e0 100644 --- a/hotshot_query_service/type.Transaction.html +++ b/hotshot_query_service/type.Transaction.html @@ -1,3 +1,3 @@ Transaction in hotshot_query_service - Rust -
    pub type Transaction<Types> = <Payload<Types> as BlockPayload>::Transaction;
    Expand description

    Item within a Payload.

    +
    pub type Transaction<Types> = <Payload<Types> as BlockPayload>::Transaction;
    Expand description

    Item within a Payload.

    \ No newline at end of file diff --git a/search-index.js b/search-index.js index 784b5d330..d95932877 100644 --- a/search-index.js +++ b/search-index.js @@ -1,5 +1,5 @@ var searchIndex = new Map(JSON.parse('[\ -["hotshot_query_service",{"doc":"The HotShot Query Service is a minimal, generic query …","t":"PPPGPIFIPFPPFPFIGIKIFPINNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCONNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQNNNNNNNQNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOCCOOOOHNNNNNCNNONNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNONNNNNNNOOOOOOKIGFRFPFGRGPFPFPFPPRFPFRIGFRPPFPFRPKPPFIIIIRFFKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMNNMMMMNNNNNNNNNNNNNNNNNNNNONNONNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNOMNNONNNNNNNNNNNNNNNNNNNNNNONOOONNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOERFEIFEKKNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNCCNNNNNNNNNMNNKGFFPFFPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNIEFFEIENNQENKEECMMMMMMMMCFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFKFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQQNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNENNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKFKEENNNNNNNNNNNNNNNNNNNCCMMNNNNNNNFFKFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFKRNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFGPPPFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOPFGRPFEKFPPFFPFFPFKNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONONNNNOMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOGPFFPKKNNNNONNNNNNNNNNMNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNMNMNNNNNNNNNONNNNNNNNNNNNNNOO","n":["Availability","Custom","Err","Error","Error","Header","Leaf","Metadata","Missing","MissingSnafu","Node","NotFound","NotFoundSnafu","Ok","Options","Payload","QueryError","QueryResult","Resolvable","SignatureKey","Snafu","Status","Transaction","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_error_source","as_error_source","augment_args","augment_args_for_update","availability","availability","backtrace","backtrace","block_header","block_payload","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","build","build","catch_all","cause","cause","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","commit","commitment","commitment","create_random_transaction","data_source","default","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","description","description","deserialize","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","eq","equivalent","equivalent","equivalent","equivalent","fail","fail","fail","fetching","fill_block_payload","fill_block_payload_unchecked","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from_arg_matches","from_arg_matches_mut","from_stored_view","genesis","get_block_header","get_block_payload","get_hash","get_height","get_justify_qc","get_parent_commitment","get_payload_commitment","get_proposer_id","get_view_number","group_id","hash","header","header","header","in_current_span","in_current_span","include_migrations","init","init","init","init","init","init","init","instantiate_data_source_tests","internal","into","into","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_error","into_error","into_error","justify_qc","message","metrics","node","node","parent_commitment","port","proposer_id","run_standalone_service","serialize","serialize","serialize","source","source","status","status","status","status","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_resolve","try_resolve","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches_mut","view_number","vzip","vzip","vzip","vzip","vzip","vzip","vzip","message","source","source","source","status","message","AvailabilityDataSource","BlockHash","BlockId","BlockQueryData","BlockRange","BlockSummaryQueryData","Custom","CustomSnafu","Error","Error","Fetch","FetchBlock","FetchBlockSnafu","FetchLeaf","FetchLeafSnafu","FetchTransaction","FetchTransactionSnafu","Hash","Hash","InclusionProof","InconsistentLeafError","InvalidTransactionIndex","InvalidTransactionIndexSnafu","Iter","LeafHash","LeafId","LeafQueryData","LeafRange","Number","Number","Options","PayloadHash","PayloadQueryData","PayloadRange","Pending","QueryablePayload","Ready","Request","RequestSnafu","Timestamp","TransactionHash","TransactionInclusionProof","TransactionIndex","TransactionIndex","TransactionQueryData","TransactionSummaryQueryData","UpdateAvailabilityData","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","api_path","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_error_source","as_error_source","augment_args","augment_args_for_update","backtrace","backtrace","block_hash","block_hash","block_hash","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","build","build","build","build","by_hash","by_hash","cause","cause","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","compare","compare","context","data","default","define_api","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","description","description","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","enumerate","enumerate","enumerate","eq","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","extensions","fail","fail","fail","fail","fail","fetch_timeout","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_arg_matches","from_arg_matches_mut","genesis","genesis","get_block","get_block_range","get_block_with_transaction","get_hash","get_hash","get_leaf","get_leaf_range","get_payload","get_payload_range","group_id","hash","hash","hash","hash","hash","hash","hash","header","header","header","header","header","header","header","height","height","height","height","height","height","in_current_span","in_current_span","index","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","insert_block","insert_leaf","internal","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_error","into_error","into_error","into_error","into_error","into_error","into_future","is_empty","is_empty","is_empty","iter","leaf","leaf","len","len","map","message","metadata","new","new","nth","nth","nth_transaction","nth_transaction","nth_transaction_with_proof","nth_transaction_with_proof","num_transactions","num_transactions","partial_cmp","partial_cmp","payload","payload_hash","payload_hash","proof","proof","proposer","proposer","proposer","qc","qc_leaf","resolve","resource","resource","resource","serialize","serialize","serialize","serialize","serialize","serialize","serialize","size","size","size","source","source","status","status","subscribe_blocks","subscribe_blocks","subscribe_leaves","subscribe_leaves","subscribe_payloads","subscribe_payloads","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","transaction","transaction","transaction","transaction","transaction_by_hash","transaction_by_hash","transaction_by_hash","transaction_by_hash_with_proof","transaction_by_hash_with_proof","transaction_with_proof","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_resolve","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","with_context","with_timeout","height","index","message","resource","resource","resource","source","status","AvailabilityProvider","Error","ExtensibleDataSource","FetchingDataSource","FileSystemDataSource","MetricsDataSource","SqlDataSource","UpdateDataSource","VersionedDataSource","__clone_box","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any_mut","as_any_mut","as_mut","as_ref","block_height","block_height","block_height","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","commit","commit","count_proposals","create","create_with_store","default","deref","deref","deref_mut","deref_mut","drop","drop","fetching","fmt","fmt","from","from","get_block","get_block_range","get_block_with_transaction","get_leaf","get_leaf_range","get_payload","get_payload_range","get_proposals","init","init","inner","inner_mut","insert_block","insert_leaf","insert_leaf","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","metrics","metrics","new","open","open_with_store","populate_metrics","populate_metrics","revert","revert","skip_version","sql","storage","sync_status","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","update","vzip","vzip","AvailabilityProvider","BlockRequest","Builder","FetchingDataSource","Id","StorageReadGuard","StorageWriteGuard","WithTransaction","__clone_box","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","block_height","block_height","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","builder","clone","clone","clone_into","clone_into","cmp","commit","compare","connect","count_proposals","create","create_with_store","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","disable_proactive_fetching","drop","drop","drop","drop","drop","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","get_block","get_block_range","get_block_with_transaction","get_hash","get_leaf","get_leaf_range","get_payload","get_payload_range","get_proposals","hash","header","init","init","init","init","init","insert_block","insert_leaf","insert_leaf","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","metrics","new","open","open_with_store","partial_cmp","populate_metrics","revert","skip_version","storage","storage_mut","sync_status","to_owned","to_owned","to_string","transaction","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","with_major_scan_interval","with_minor_scan_interval","with_proactive_range_chunk_size","with_range_chunk_size","with_retry_delay","Builder","Config","Error","Migration","Query","SqlDataSource","Transaction","client","connect","include_migrations","postgres","transaction","AvailabilityStorage","FileSystemStorage","SqlStorage","fs","get_block","get_block_range","get_block_with_transaction","get_header","get_leaf","get_leaf_range","get_payload","get_payload_range","sql","FileSystemStorage","as_any","as_any_mut","block_height","borrow","borrow_mut","commit","count_proposals","create","create_with_store","deref","deref_mut","drop","fmt","from","get_block","get_block_range","get_block_with_transaction","get_header","get_leaf","get_leaf_range","get_payload","get_payload_range","get_proposals","init","insert_block","insert_leaf","insert_leaf","into","into_any","into_any_arc","into_any_rc","open","open_with_store","revert","skip_version","sync_status","try_from","try_into","type_id","vzip","Config","Error","Migration","Query","SqlStorage","Transaction","__clone_box","__clone_box","__clone_box","__clone_box","applied_on","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_ref","as_ref","backtrace","block_height","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","builder","chain","checksum","client","client","client","clone","clone","clone_into","clone_into","cmp","commit","compare","connect","connect","context","count_proposals","database","default","default_migrations","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","downcast","downcast_mut","downcast_ref","drop","drop","drop","drop","drop","drop","drop","eq","equivalent","equivalent","equivalent","equivalent","execute","execute_many","execute_many_with_retries","execute_one","execute_one_with_retries","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_str","get_block","get_block_range","get_block_with_transaction","get_header","get_leaf","get_leaf_range","get_payload","get_payload_range","get_proposals","header","header","host","include_dir","include_migrations","init","init","init","init","init","insert_block","insert_leaf","insert_leaf","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","is","migrations","msg","name","new","no_migrations","partial_cmp","password","port","postgres","prefix","query","query_one","query_one_static","query_opt","query_opt_static","query_static","reset_schema","revert","root_cause","schema","sql","sync_status","tls","to_owned","to_owned","to_string","to_string","transaction","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","unapplied","upsert","user","version","vzip","vzip","vzip","vzip","vzip","Callback","Fetcher","LocalCallback","Provider","Request","__clone_box","__clone_box","as_any","as_any_mut","borrow","borrow_mut","clone","clone_into","default","deref","deref_mut","drop","fmt","from","init","into","into_any","into_any_arc","into_any_rc","provider","request","run","run","spawn_fetch","to_owned","try_from","try_into","type_id","vzip","with_retry_delay","AnyProvider","NoFetching","Provider","QueryServiceProvider","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","default","default","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","fetch","fetch","fetch","fetch","fetch","fetch","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","new","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","with_block_provider","with_leaf_provider","with_provider","LeafRequest","PayloadRequest","Request","Response","__clone_box","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref_mut","deref_mut","drop","drop","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","from","get_hash","get_hash","hash","hash","init","init","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Counter","Gauge","Histogram","Label","MetricsError","NoSuchMetric","NoSuchSubgroup","Prometheus","PrometheusMetrics","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","add","add_point","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_error_source","backtrace","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cause","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","create_counter","create_gauge","create_histogram","create_label","default","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","description","drop","drop","drop","drop","drop","drop","export","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","get","get","get","get_counter","get_gauge","get_histogram","get_label","get_subgroup","header","in_current_span","init","init","init","init","init","init","into","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","mean","sample_count","set","set","source","subgroup","sum","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","update","vzip","vzip","vzip","vzip","vzip","vzip","label","namespace","path","source","Custom","CustomSnafu","Error","Error","InvalidSignatureKey","InvalidSignatureKeySnafu","LeafQueryData","NodeDataSource","Options","Query","QueryProposals","QueryProposalsSnafu","QuerySnafu","Request","RequestSnafu","SyncStatus","SyncStatus","SyncStatusSnafu","UpdateNodeData","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","api_path","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_error_source","augment_args","augment_args_for_update","backtrace","block_height","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","build","cause","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","compare","count_proposals","default","define_api","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","description","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","drop","drop","eq","equivalent","equivalent","equivalent","equivalent","extensions","fail","fail","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from_arg_matches","from_arg_matches_mut","get_hash","get_proposals","group_id","hash","header","in_current_span","init","init","init","init","init","init","init","init","init","insert_leaf","internal","into","into","into","into","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_error","into_error","into_error","into_error","into_error","into_error","message","missing_blocks","missing_leaves","partial_cmp","proposer","serialize","serialize","source","status","status","sync_status","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","message","proposer","source","source","source","source","status","Error","Internal","MempoolQueryData","Options","Request","StatusDataSource","UpdateStatusData","__clone_box","__clone_box","__clone_box","__clone_box","api_path","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_error_source","augment_args","augment_args_for_update","backtrace","block_height","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","cause","clone","clone","clone_into","clone_into","cmp","compare","consensus_metrics","consensus_metrics","default","default","define_api","deref","deref","deref","deref_mut","deref_mut","deref_mut","description","deserialize","deserialize","drop","drop","drop","eq","equivalent","equivalent","equivalent","equivalent","extensions","fmt","fmt","fmt","from","from","from","from","from","from_arg_matches","from_arg_matches_mut","get_hash","group_id","hash","header","in_current_span","init","init","init","into","into","into","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","memory_footprint","mempool_info","mempool_info","metrics","partial_cmp","populate_metrics","serialize","serialize","source","status","success_rate","success_rate","to_owned","to_owned","to_string","transaction_count","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","vzip","vzip","reason","source"],"q":[[0,"hotshot_query_service"],[275,"hotshot_query_service::Error"],[280,"hotshot_query_service::QueryError"],[281,"hotshot_query_service::availability"],[950,"hotshot_query_service::availability::Error"],[958,"hotshot_query_service::data_source"],[1052,"hotshot_query_service::data_source::fetching"],[1215,"hotshot_query_service::data_source::sql"],[1227,"hotshot_query_service::data_source::storage"],[1240,"hotshot_query_service::data_source::storage::fs"],[1281,"hotshot_query_service::data_source::storage::sql"],[1478,"hotshot_query_service::fetching"],[1513,"hotshot_query_service::fetching::provider"],[1598,"hotshot_query_service::fetching::request"],[1663,"hotshot_query_service::metrics"],[1838,"hotshot_query_service::metrics::MetricsError"],[1842,"hotshot_query_service::node"],[2120,"hotshot_query_service::node::Error"],[2127,"hotshot_query_service::status"],[2246,"hotshot_query_service::status::Error"],[2248,"dyn_clone::sealed"],[2249,"dyn_clone::sealed"],[2250,"core::error"],[2251,"clap_builder::builder::command"],[2252,"snafu::backtrace_shim"],[2253,"core::option"],[2254,"alloc::string"],[2255,"core::convert"],[2256,"tide_disco::status"],[2257,"core::clone"],[2258,"hotshot_types::traits::node_implementation"],[2259,"commit"],[2260,"commit"],[2261,"core::result"],[2262,"serde::de"],[2263,"hotshot_types::data"],[2264,"core::fmt"],[2265,"core::fmt"],[2266,"clap_builder"],[2267,"hotshot_types::traits::storage"],[2268,"core::hash"],[2269,"core::marker"],[2270,"core::hash"],[2271,"hotshot_types::simple_certificate"],[2272,"hotshot_types::simple_certificate"],[2273,"core::hash"],[2274,"core::fmt"],[2275,"alloc::sync"],[2276,"alloc::rc"],[2277,"hotshot::types::handle"],[2278,"hotshot_types::traits::node_implementation"],[2279,"serde::ser"],[2280,"core::cmp"],[2281,"core::cmp"],[2282,"snafu"],[2283,"tide_disco::api"],[2284,"tide_disco::request"],[2285,"core::future::future"],[2286,"core::pin"],[2287,"futures_core::stream"],[2288,"core::marker"],[2289,"hotshot_types::data"],[2290,"hotshot_types::simple_certificate"],[2291,"std::path"],[2292,"anyhow"],[2293,"atomic_store::atomic_store"],[2294,"hotshot_types::traits::metrics"],[2295,"hotshot_types::event"],[2296,"async_lock::rwlock"],[2297,"async_lock::rwlock"],[2298,"time::offset_date_time"],[2299,"std::backtrace"],[2300,"anyhow"],[2301,"tokio_postgres::to_statement"],[2302,"core::iter::traits::collect"],[2303,"tokio_postgres::config"],[2304,"refinery_core::runner"],[2305,"refinery_core::error"],[2306,"postgres_types"],[2307,"url"],[2308,"hotshot_types::traits::metrics"]],"d":["","","Contains the error value","","There was an error while trying to fetch the requested …","","This is the consensus-internal analogous concept to a …","","The requested resource exists but is not currently …","SNAFU context selector for the QueryError::Missing variant","","The requested resource does not exist or is not known to …","SNAFU context selector for the QueryError::NotFound variant","Contains the success value","","","","","A reference to a T which can be resolved into a whole T.","","SNAFU context selector for the QueryError::Error variant","","Item within a Payload.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Queries for HotShot chain state.","","","","Block header.","Optional block payload.","","","","","","","","","","","","","","","Consume the selector and return the associated error","Consume the selector and return the associated error","Consume the selector and return the associated error","","","","","","","","","","","","","","","","","Get a commitment to the underlying object.","","","Persistent storage and sources of data consumed by APIs.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Consume the selector and return a Result with the …","Consume the selector and return a Result with the …","Consume the selector and return a Result with the …","Fetching missing data from remote providers.","Fill this leaf with the block payload.","Fill this leaf with the block payload, without checking …","","","","","","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Create a leaf from information stored about a view.","Create a new leaf from its components.","The block header contained in this leaf.","Optional block payload.","","Height of this leaf in the chain.","The QC linking this leaf to its parent in the chain.","Commitment to this leaf’s parent.","A commitment to the block payload contained in this leaf.","Identity of the network participant who proposed this leaf.","Time when this leaf was created.","","","","","","","","Embed migrations from the given directory into the current …","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","Per spec, justification","","","A node’s view of a HotShot chain","","The hash of the parent Leaf So we can ask if it extends","","the proposer id of the leaf","Run an instance of the HotShot Query service with no …","","","","","","Queries for node-specific state and uncommitted data.","","","","","","","","","","","","","","","","","","","","","","","","","","","Get the underlying object if it is available without …","","","","","","","","","","","CurView from leader when proposing leaf","","","","","","","","","","","","","","An interface for querying a HotShot blockchain.","A block hash is the hash of the block header.","","","","","","SNAFU context selector for the Error::Custom variant","","","An in-progress request to fetch some data.","","SNAFU context selector for the Error::FetchBlock variant","","SNAFU context selector for the Error::FetchLeaf variant","","SNAFU context selector for the Error::FetchTransaction …","","","A proof that a certain transaction exists in the block.","","","SNAFU context selector for the …","Enumerate the transactions in this block.","","","","","","","","","","","","A block payload whose contents (e.g. individual …","","","SNAFU context selector for the Error::Request variant","","","","","An index which can be used to efficiently retrieve a …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Consume the selector and return the associated error","Consume the selector and return the associated error","Consume the selector and return the associated error","Consume the selector and return the associated error","Consume the selector and return the associated error","Get the index of the transaction with a given hash, if it …","Get the index of the transaction with a given hash, if it …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Convert this Fetch to a Result with the provided error …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Enumerate the transactions in the block with their indices.","Enumerate the transactions in the block with their indices.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Additional API specification files to merge with …","Consume the selector and return a Result with the …","Consume the selector and return a Result with the …","Consume the selector and return a Result with the …","Consume the selector and return a Result with the …","Consume the selector and return a Result with the …","Timeout for failing requests due to missing data.","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","Returns the block containing a transaction with the given …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Whether this block is empty of transactions.","Whether this block is empty of transactions.","","List the transaction indices in the block.","","","The number of transactions in the block.","","Transform the result of this fetch.","","","Collect information about a Leaf.","","Get the index of the nth transaction.","Get the index of the nth transaction.","Get the nth transaction.","Get the nth transaction.","Get the nth transaction, along with an inclusion proof.","Get the nth transaction, along with an inclusion proof.","","","","","","","","Get an inclusion proof for a transaction with a given …","Get an inclusion proof for a transaction with a given …","","","","","","Wait for the data to become available, if it is not …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Get a transaction by its block-specific index.","Get a transaction by its block-specific index.","","","Get the transaction with a given hash, if it is in the …","Get the transaction with a given hash, if it is in the …","","Get the transaction with a given hash, if it is in the …","Get the transaction with a given hash, if it is in the …","Get a transaction by its block-specific index, along with …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Get the requested data if it is available immediately.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Convert this Fetch to a Result with the provided error …","Wait for the requested data to become available, but only …","","","","","","","","","","","Wrapper to add extensibility to an existing data source.","","A data source for the APIs provided in this crate, backed …","A minimal data source for the status API provided in this …","","An extension trait for types which implement the update …","A data source with an atomic transaction-based …","","","","","","","","","","","","","","","","","","","","","","Atomically commit to all outstanding modifications to the …","","","Create a new FileSystemDataSource with storage at path.","Create a new FileSystemDataSource using a persistent …","","","","","","","","Asynchronous retrieval of missing data.","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","Access the underlying data source.","Mutably access the underlying data source.","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","Open an existing FileSystemDataSource from storage at path.","Open an existing FileSystemDataSource using a persistent …","","","Erase all oustanding modifications to the data.","","Advance the version of the persistent store without …","","Persistent storage for data sources.","","","","","","","","","","Update query state based on a new consensus event.","","","A provider which can be used as a fetcher by the …","A request to fetch a block.","Builder for FetchingDataSource with configuration.","The most basic kind of data source.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Build a FetchingDataSource with these options.","Build a FetchingDataSource with the given storage and …","","","","","","","","Connect to a remote database.","","Create a new FileSystemDataSource with storage at path.","Create a new FileSystemDataSource using a persistent …","","","","","","","","","","","","","","Run without proactive fetching.","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","","","","","","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","Construct a new builder with the given storage and fetcher …","Open an existing FileSystemDataSource from storage at path.","Open an existing FileSystemDataSource using a persistent …","","","","Advance the version of the persistent store without …","Obtain direct, read-only access to the underlying local …","Obtain direct, mutable access the underlying local storage.","","","","","Access the transaction which is accumulating all …","","","","","","","","","","","","","","","","","","","","","Set the interval (denominated in minor scans) between …","Set the time interval between minor proactive fetching …","Set the number of items to process at a time when scanning …","Set the number of items to process at a time when loading …","Set the maximum delay between retries of fetches.","","","The Error type, a wrapper around a dynamic error type.","Represents a schema migration to be run on the database, …","","A data source for the APIs provided in this crate, backed …","","","Connect to a remote database.","Embed migrations from the given directory into the current …","","Access the transaction which is accumulating all …","Persistent storage for a HotShot blockchain.","","","","","","","","","","","","","Storage for the APIs provided in this crate, backed by a …","","","","","","","","Create a new FileSystemStorage with storage at path.","Create a new FileSystemStorage using a persistent storage …","","","","","Returns the argument unchanged.","","","","","","","","","","","","","","Calls U::from(self).","","","","Open an existing FileSystemStorage from storage at path.","Open an existing FileSystemStorage using a persistent …","","Advance the version of the persistent store without …","","","","","","Postgres client config.","The Error type, a wrapper around a dynamic error type.","Represents a schema migration to be run on the database, …","","Storage for the APIs provided in this crate, backed by a …","An atomic SQL transaction.","","","","","Get the timestamp from when the Migration was applied. None…","","","","","","","","","","","","","Get the backtrace for this Error.","","","","","","","","","","","","Connect to the database, setting options on the underlying …","An iterator of the chain of source errors contained by …","Get the Migration checksum. Checksum is formed from the …","","","","","","","","","","","Connect to the database with this config.","Connect to a remote database.","Wrap the error value with additional context.","","Set the name of the database to connect to.","","The migrations requied to build the default schema for …","","","","","","","","","","","","","Attempt to downcast the error object to a concrete type.","Downcast this error object by mutable reference.","Downcast this error object by reference.","","","","","","","","","","","","","Execute a statement against the underlying database.","Execute a statement that is expected to modify at least …","Execute a statement that is expected to modify at least …","Execute a statement that is expected to modify exactly one …","Execute a statement that is expected to modify exactly one …","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","","","","","","","","","Set the hostname of the database server.","Embed the contents of a directory in your crate.","Embed migrations from the given directory into the current …","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","Returns true if E is the type held by this error object.","Add custom migrations to run when connecting to the …","Create a new error object from a printable error message.","Get the Migration Name","Create a new error object from any error type.","Skip all migrations when connecting to the database.","","Set a password for connecting to the database.","Set the port on which to connect to the database.","","Get the Prefix","","Query the underlying SQL database, returning exactly one …","Query the underlying SQL database with no parameters, …","Query the underlying SQL database, returning zero or one …","Query the underlying SQL database with no parameters, …","Query the underlying SQL database with no parameters.","Reset the schema on connection.","","The lowest level cause of this error — this error’s …","Set the name of the schema to use for queries.","","","Use TLS for an encrypted connection to the database.","","","","","Access the transaction which is accumulating all …","","","","","","","","","","","","","","","","Create an unapplied migration, name and version are parsed …","","Set the DB user to connect as.","Get the Migration version","","","","","","A callback to process the result of a request.","Management of concurrent requests to fetch resources.","A callback to process the result of a request.","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","Asynchronous fetching from external data availability …","Requests for fetching resources.","","","Fetch a resource, if it is not already being fetched.","","","","","","","Adaptor combining multiple data availability providers.","Trivial Provider where fetching always fails.","A provider which is able to satisfy requests for data of …","Data availability provider backed by another instance of …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Fetch a resource.","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","Add a sub-provider which fetches blocks.","Add a sub-provider which fetches leaves.","Add a sub-provider which fetches both blocks and leaves.","A request for a leaf with a given height.","A request for a payload with a given commitment.","A request for a resource.","The type of resource that will be returned as a successful …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","A Counter metric.","A Gauge metric.","A Histogram metric.","A Label metric.","","","","","A Prometheus-based implementation of a Metrics registry.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Get a counter in this sub-group by name.","Get a gauge in this sub-group by name.","Get a histogram in this sub-group by name.","Get a label in this sub-group by name.","Get a (possibly nested) subgroup of this group by its path.","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","SNAFU context selector for the Error::Custom variant","","","","SNAFU context selector for the Error::InvalidSignatureKey …","","","","","","SNAFU context selector for the Error::QueryProposals …","SNAFU context selector for the Error::Query variant","","SNAFU context selector for the Error::Request variant","","","SNAFU context selector for the Error::SyncStatus variant","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Consume the selector and return the associated error","Consume the selector and return the associated error","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Additional API specification files to merge with …","Consume the selector and return a Result with the …","Consume the selector and return a Result with the …","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Additional API specification files to merge with …","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[7,7,152,0,10,0,0,0,10,0,7,10,0,152,0,0,0,0,0,0,0,7,0,17,17,7,7,11,11,12,12,13,13,10,10,17,7,11,12,13,10,25,17,7,11,12,13,10,25,7,10,25,25,0,25,7,10,17,17,17,7,11,12,13,10,25,17,7,11,12,13,10,25,11,12,13,7,7,10,17,7,11,12,13,10,17,7,11,12,13,10,17,21,17,17,0,25,17,7,11,12,13,10,25,17,7,11,12,13,10,25,7,10,17,7,10,17,7,11,12,13,10,25,17,17,17,17,17,11,12,13,0,17,17,17,17,7,7,11,12,13,10,10,17,7,7,7,7,7,11,12,13,10,25,25,25,17,17,17,17,17,17,17,17,17,17,17,25,17,17,7,10,7,10,0,17,7,11,12,13,10,25,0,7,17,7,11,12,13,10,25,17,7,11,12,13,10,25,17,7,11,12,13,10,25,17,7,11,12,13,10,25,11,12,13,17,13,0,0,25,17,25,17,0,17,7,10,7,10,0,7,10,25,17,7,11,12,13,10,17,7,10,17,7,11,12,13,10,25,17,7,11,12,13,10,25,21,17,17,7,11,12,13,10,25,25,25,17,17,7,11,12,13,10,25,205,206,207,208,205,209,0,0,0,0,58,0,37,0,0,120,0,37,0,37,0,37,0,87,88,80,0,37,0,80,0,0,0,58,87,88,0,88,0,58,94,0,94,37,0,0,0,0,0,80,0,0,0,87,87,88,88,68,68,67,67,89,89,70,70,71,71,90,90,91,91,92,92,72,72,73,73,74,74,75,75,76,76,37,37,100,94,87,88,68,67,89,70,71,90,91,100,92,72,73,74,75,76,37,94,87,88,68,67,89,70,71,90,91,100,92,72,73,74,75,76,37,67,37,100,100,67,37,68,70,71,94,87,88,68,67,89,70,71,90,91,100,92,72,73,74,75,76,37,94,87,88,68,67,89,70,71,90,91,100,92,72,73,74,75,76,37,72,73,74,75,76,80,80,67,37,87,88,68,67,89,70,71,90,91,92,72,73,74,75,76,37,87,88,68,67,89,70,71,90,91,92,72,73,74,75,76,37,87,88,87,88,94,70,100,0,94,87,88,68,67,89,70,71,90,91,100,92,72,73,74,75,76,37,94,87,88,68,67,89,70,71,90,91,100,92,72,73,74,75,76,37,67,37,68,89,70,71,90,91,37,94,87,88,68,67,89,70,71,90,91,100,92,72,73,74,75,76,37,80,80,89,87,88,68,89,70,71,90,91,87,87,87,87,88,88,88,88,68,68,68,68,89,89,89,89,70,70,70,70,71,71,71,71,90,90,90,90,91,91,91,91,100,72,73,74,75,76,100,87,87,88,88,68,67,67,89,70,71,90,91,92,72,73,74,75,76,37,37,94,87,87,87,88,88,88,68,67,89,70,70,71,90,90,91,100,92,72,73,74,75,76,37,37,37,100,100,68,89,58,58,58,87,88,58,58,58,58,100,87,88,68,89,70,71,90,87,88,68,67,89,90,37,68,89,70,71,90,75,67,37,75,94,87,88,68,67,89,70,71,90,91,100,92,72,73,74,75,76,37,120,120,37,94,87,88,68,67,89,70,71,90,91,100,92,72,73,74,75,76,37,94,87,88,68,67,89,70,71,90,91,100,92,72,73,74,75,76,37,87,88,68,67,89,70,71,90,91,100,92,72,73,74,75,76,37,94,87,88,68,67,89,70,71,90,91,100,92,72,73,74,75,76,37,92,72,73,74,75,76,94,80,80,89,80,68,67,80,89,94,76,89,68,89,80,80,80,80,80,80,89,90,87,88,89,68,89,80,80,68,89,90,68,67,94,72,73,74,68,89,70,71,90,91,37,89,70,90,67,37,37,76,58,58,58,58,58,58,87,88,68,67,89,70,71,90,91,92,72,73,74,75,76,37,87,88,67,37,80,80,89,71,80,80,89,80,80,80,94,87,88,68,67,89,70,71,90,91,100,92,72,73,74,75,76,37,94,87,88,68,67,89,70,71,90,91,100,92,72,73,74,75,76,37,94,94,87,88,68,67,89,70,71,90,91,100,92,72,73,74,75,76,37,100,100,94,87,88,68,67,89,70,71,90,91,100,92,72,73,74,75,76,37,94,94,210,210,211,212,213,214,215,211,0,62,0,0,0,0,0,0,0,127,127,128,128,127,128,127,128,127,127,127,127,128,127,128,127,128,127,128,127,128,62,127,127,130,130,128,127,128,127,128,127,128,0,127,128,127,128,127,127,127,127,127,127,127,127,127,128,127,127,127,127,127,127,128,127,128,127,128,127,128,127,128,127,130,130,127,128,62,127,130,0,0,127,127,128,127,128,127,128,127,128,61,127,128,0,0,0,0,141,0,0,141,138,138,141,141,139,138,146,147,141,139,138,146,147,141,138,138,139,138,146,147,141,139,138,146,147,141,139,138,138,141,138,141,141,138,141,138,138,138,138,139,138,146,146,147,147,141,139,138,146,147,147,141,139,139,138,146,147,141,141,141,141,141,141,138,141,141,139,138,146,146,147,147,141,141,141,141,138,138,138,141,138,138,138,138,138,141,141,139,138,146,147,141,138,138,138,139,138,146,147,141,139,138,146,147,141,139,138,146,147,141,139,138,146,147,141,138,139,138,138,141,138,138,138,138,138,138,138,141,141,138,139,138,146,147,141,139,138,146,147,141,139,138,146,147,141,139,138,146,147,141,139,139,139,139,139,0,0,0,0,0,0,0,153,153,0,0,153,0,0,0,0,140,140,140,140,140,140,140,140,0,0,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,0,0,0,0,0,0,155,155,142,142,155,144,155,151,142,150,144,155,151,142,150,144,144,144,150,144,155,151,142,150,144,155,151,142,150,142,144,155,159,151,150,155,142,155,142,155,150,155,142,150,144,150,142,142,0,144,144,155,151,142,150,144,144,155,151,142,150,144,144,144,144,144,155,151,142,150,150,155,155,155,155,155,151,151,151,151,151,144,144,155,155,142,150,144,144,144,155,151,142,142,150,142,150,150,150,150,150,150,150,150,150,144,155,142,0,0,144,155,151,142,150,150,150,150,144,155,151,142,150,144,155,151,142,150,144,155,151,142,150,144,155,151,142,150,144,142,144,155,144,142,155,142,142,0,155,159,159,159,159,159,159,142,150,144,142,155,150,142,155,142,144,155,150,144,155,151,142,150,144,155,151,142,150,144,155,151,142,150,155,151,142,155,144,155,151,142,150,0,0,0,0,0,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,0,0,172,173,171,171,171,171,171,171,171,0,0,0,0,176,176,177,177,178,178,176,177,178,176,177,178,176,177,178,176,177,178,176,177,178,176,177,178,176,178,176,177,178,176,177,178,176,177,178,175,176,176,177,177,178,176,177,178,176,177,178,176,177,178,176,177,178,176,177,178,176,177,178,176,177,178,177,176,177,178,176,177,178,176,177,178,176,177,178,176,177,178,176,176,176,0,0,0,174,179,179,180,180,179,180,179,180,179,180,179,180,179,180,179,180,179,180,179,180,179,180,179,180,179,179,179,179,180,180,180,180,179,180,179,180,180,179,180,179,180,179,180,179,180,179,180,179,180,179,180,179,180,179,180,179,180,179,180,179,180,0,0,0,0,0,185,185,185,0,135,135,182,182,186,186,183,183,187,187,182,183,185,135,182,186,183,187,185,135,182,186,183,187,185,185,185,135,182,186,183,187,185,135,182,186,183,187,185,135,182,186,183,187,135,182,186,183,187,135,135,135,135,135,185,135,182,186,183,187,185,135,182,186,183,187,185,185,135,182,186,183,187,135,185,185,135,182,186,183,187,185,185,135,182,186,183,187,182,186,187,135,135,135,135,135,185,185,185,135,182,186,183,187,185,135,182,186,183,187,185,135,182,186,183,187,185,135,182,186,183,187,185,135,182,186,183,187,183,183,186,187,185,135,183,135,182,186,183,187,185,185,135,182,186,183,187,185,135,182,186,183,187,185,135,182,186,183,187,186,185,135,182,186,183,187,216,216,217,218,38,0,0,134,38,0,0,0,0,38,38,0,0,38,0,0,38,0,0,196,196,197,197,198,198,199,199,194,194,200,200,195,195,38,38,201,196,201,197,198,199,194,200,195,38,196,201,197,198,199,194,200,195,38,38,201,201,38,59,196,201,197,198,199,194,200,195,38,196,201,197,198,199,194,200,195,38,194,195,38,196,197,198,199,194,200,195,38,196,197,198,199,194,200,195,38,196,196,59,201,0,196,201,197,198,199,194,200,195,38,196,201,197,198,199,194,200,195,38,38,196,38,196,201,197,198,199,194,200,195,38,196,196,196,196,196,201,194,195,196,197,198,199,194,200,195,38,38,196,201,197,198,199,194,200,195,38,38,38,201,201,196,59,201,196,38,38,196,201,197,198,199,194,200,195,38,134,38,196,201,197,198,199,194,200,195,38,196,201,197,198,199,194,200,195,38,196,201,197,198,199,194,200,195,38,196,201,197,198,199,194,200,195,38,197,198,199,194,200,195,195,196,196,196,199,196,38,38,38,195,59,196,197,198,199,194,200,195,38,38,196,201,197,198,199,194,200,195,38,196,201,197,198,199,194,200,195,38,196,201,197,198,199,194,200,195,38,201,201,196,201,197,198,199,194,200,195,38,219,220,221,222,220,223,219,0,36,0,0,36,0,0,202,202,36,36,203,202,203,36,202,203,36,36,203,203,36,60,202,203,36,202,203,36,36,202,36,202,36,202,202,60,60,202,203,0,202,203,36,202,203,36,36,202,36,202,203,36,202,202,202,202,202,203,202,36,36,202,203,36,36,36,203,203,202,203,202,36,36,202,203,36,202,203,36,202,203,36,202,203,36,202,203,36,202,60,60,60,202,204,202,36,36,36,60,60,202,36,36,202,202,203,36,202,203,36,202,203,36,203,203,202,203,36,224,225],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,5,[]],[-1,5,[]],[6,6],[6,6],0,0,[7,[[9,[8]]]],[10,[[9,[8]]]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[11,10],[12,10],[[[13,[-1]]],10,[[15,[14]]]],[[16,14],7],[7,[[9,[5]]]],[10,[[9,[5]]]],[[[17,[-1]]],[[17,[-1]]],[18,19]],[7,7],[11,11],[12,12],[[[13,[-1]]],[[13,[-1]]],18],[10,10],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[17,[-1]]],[[20,[[17,[-1]]]]],19],[21,[[20,[-1]]],22],[-1,[[20,[-2]]],[],[]],[[[17,[-1]],23,24],[],19],0,[[],25],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[7,27],[10,27],[-1,[[28,[[17,[-2]]]]],29,19],[-1,[[28,[7]]],29],[-1,[[28,[10]]],29],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[[[17,[-1]],[17,[-1]]],30,19],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[11,[[28,[-1,10]]],[]],[12,[[28,[-1,10]]],[]],[[[13,[-1]]],[[28,[-2,10]]],[[15,[14]]],[]],0,[[[17,[-1]],26],[[28,[2,31]]],19],[[[17,[-1]]],2,19],[[[17,[-1]],32],[[28,[2,33]]],[34,19]],[[[17,[-1]],32],[[28,[2,33]]],19],[[7,32],35],[[7,32],35],[[11,32],35],[[12,32],35],[[[13,[-1]],32],35,34],[[10,32],35],[[10,32],35],[-1,-1,[]],[36,7],[37,7],[-1,-1,[]],[38,7],[[[2,[14,16]]],7],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[39,[[28,[25,40]]]],[39,[[28,[25,40]]]],[[[41,[-1]]],[[17,[-1]]],19],[[],[[17,[-1]]],19],[[[17,[-1]]],[],19],[[[17,[-1]]],9,19],[[-1,-2],24,[42,43],44],[[[17,[-1]]],24,19],[[[17,[-1]]],[[47,[-1,[45,[-1]],46]]],19],[[[17,[-1]]],[[20,[[17,[-1]]]]],19],[[[17,[-1]]],[],19],[[[17,[-1]]],[],19],[[[17,[-1]]],[],19],[[],[[9,[48]]]],[[[17,[-1]],-2],2,19,49],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[-1,[],[]],[-1,[],[]],0,[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],0,[-1,7,51],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[11,-1],10,[]],[[12,-1],10,[]],[[[13,[-1]],-2],10,[[15,[14]]],[]],0,0,0,0,0,0,0,0,[[25,-2,[57,[-1,-3]]],[[28,[2,7]]],19,[[58,[-1]],[59,[-1]],60,[61,[-1]],62,52,53],[[63,[-1]]]],[[[17,[-1]],-2],28,[19,64],65],[[7,-1],28,65],[[10,-1],28,65],[7,[[9,[5]]]],[10,[[9,[5]]]],0,[7,16],[10,16],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[21,[[28,[-1,21]]],22],[-1,[[28,[-2,-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[[25,39],[[28,[2,40]]]],[[25,39],[[28,[2,40]]]],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],0,[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,5,[]],[-1,5,[]],[6,6],[6,6],[[[67,[-1]]],[[9,[8]]],19],[37,[[9,[8]]]],[[[68,[-1]]],[[69,[-1]]],19],[[[70,[-1]]],[[69,[-1]]],19],[[[71,[-1]]],[[69,[-1]]],19],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[72,[-1]]],37,[[15,[14]]]],[[[73,[-1]]],37,[[15,[14]]]],[[[74,[-1]]],37,[[15,[14]]]],[[[75,[-1,-2]]],37,[[15,[24]]],[[15,[24]]]],[[[76,[-1,-2]]],37,[[15,[14]]],[[15,[16]]]],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,[20,[-5]]],[[9,[-1]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[],[]],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,[20,[-5]]],[[9,[-1]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[],[]],[[[67,[-1]]],[[9,[5]]],19],[37,[[9,[5]]]],[[[87,[-1]]],[[87,[-1]]],19],[[[88,[-1]]],[[88,[-1]]],19],[[[68,[-1]]],[[68,[-1]]],[18,19]],[[[67,[-1]]],[[67,[-1]]],[18,19]],[[[89,[-1]]],[[89,[-1]]],[18,19]],[[[70,[-1]]],[[70,[-1]]],[18,19]],[[[71,[-1]]],[[71,[-1]]],[18,19]],[[[90,[-1]]],[[90,[-1]]],[18,19]],[[[91,[-1]]],[[91,[-1]]],[18,19]],[92,92],[[[72,[-1]]],[[72,[-1]]],18],[[[73,[-1]]],[[73,[-1]]],18],[[[74,[-1]]],[[74,[-1]]],18],[[[75,[-1,-2]]],[[75,[-1,-2]]],18,18],[[[76,[-1,-2]]],[[76,[-1,-2]]],18,18],[37,37],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[87,[-1]],[87,[-1]]],93,19],[[[88,[-1]],[88,[-1]]],93,19],[[-1,-2],93,[],[]],[[-1,-2],93,[],[]],[[[94,[-1]],-3],[[28,[-1,-2]]],[],[5,95],[[98,[-2],[[96,[97]]]]]],[[[70,[-1]]],[[99,[-1]]],19],[[],100],[100,[[28,[[101,[-1,37]],102]]],[52,53,103]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[[[67,[-1]]],27,19],[37,27],[-1,[[28,[[68,[-2]]]]],29,19],[-1,[[28,[[89,[-2]]]]],29,19],[-1,[[28,[[70,[-2]]]]],29,19],[-1,[[28,[[71,[-2]]]]],29,19],[-1,[[28,[[90,[-2]]]]],29,19],[-1,[[28,[[91,[-2]]]]],29,19],[-1,[[28,[37]]],29],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4],[[54,[86]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[]],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4],[[54,[86]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[]],[[[89,[-1]]],[[0,[[86,[],[[85,[[2,[[104,[-1]],[105,[-1]]]]]]]]]]],19],[[[87,[-1]],[87,[-1]]],30,19],[[[88,[-1]],[88,[-1]]],30,19],[[[68,[-1]],[68,[-1]]],30,[81,19]],[[[89,[-1]],[89,[-1]]],30,[81,19]],[[[70,[-1]],[70,[-1]]],30,[81,19]],[[[71,[-1]],[71,[-1]]],30,[81,19]],[[[90,[-1]],[90,[-1]]],30,[81,19]],[[[91,[-1]],[91,[-1]]],30,[81,19]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],0,[[[72,[-1]]],[[28,[-2,37]]],[[15,[14]]],[]],[[[73,[-1]]],[[28,[-2,37]]],[[15,[14]]],[]],[[[74,[-1]]],[[28,[-2,37]]],[[15,[14]]],[]],[[[75,[-1,-2]]],[[28,[-3,37]]],[[15,[24]]],[[15,[24]]],[]],[[[76,[-1,-2]]],[[28,[-3,37]]],[[15,[14]]],[[15,[16]]],[]],0,[[[87,[-1]],32],35,19],[[[87,[-1]],32],35,19],[[[88,[-1]],32],35,19],[[[88,[-1]],32],35,19],[[[68,[-1]],32],35,[34,19]],[[[67,[-1]],32],35,[34,19]],[[[67,[-1]],32],35,19],[[[89,[-1]],32],35,[34,19]],[[[70,[-1]],32],35,[34,19]],[[[71,[-1]],32],35,[34,19]],[[[90,[-1]],32],35,[34,19]],[[[91,[-1]],32],35,[34,19]],[[92,32],35],[[[72,[-1]],32],35,34],[[[73,[-1]],32],35,34],[[[74,[-1]],32],35,34],[[[75,[-1,-2]],32],35,34,34],[[[76,[-1,-2]],32],35,34,34],[[37,32],35],[[37,32],35],[-1,-1,[]],[26,[[87,[-1]]],19],[-1,-1,[]],[[[106,[-1]]],[[87,[-1]]],19],[26,[[88,[-1]]],19],[[[69,[-1]]],[[88,[-1]]],19],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[89,[-1]]],[[70,[-1]]],19],[-1,-1,[]],[-1,-1,[]],[[[89,[-1]]],[[90,[-1]]],19],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[107,37],[[[2,[14,16]]],37],[39,[[28,[100,40]]]],[39,[[28,[100,40]]]],[[],[[68,[-1]]],19],[[],[[89,[-1]]],19],[[[58,[],[[108,[-1]],[109,[-3]],[110,[-4]]]],-5],[[112,[[54,[111]]]]],[[113,[],[[85,[[94,[[68,[-2]]]]]]]],114,52],19,[[113,[],[[85,[[94,[[89,[-2]]]]]]]],114,52],[[113,[],[[85,[[94,[[70,[-2]]]]]]]],114,52],[[15,[[88,[-2]]]],52,53]],[[[58,[],[[108,[-1]],[109,[-3]],[110,[-4]]]],-5],[[112,[[54,[111]]]]],[[113,[],[[85,[[94,[[68,[-2]]]]]]]],114,52],19,[[113,[],[[85,[[94,[[89,[-2]]]]]]]],114,52],[[113,[],[[85,[[94,[[70,[-2]]]]]]]],114,52],[[115,[26]],52]],[[[58,[],[[108,[-1]],[109,[-3]],[110,[-4]]]],[116,[-2]]],[[112,[[54,[111]]]]],[[113,[],[[85,[[94,[[68,[-2]]]]]]]],114,52],19,[[113,[],[[85,[[94,[[89,[-2]]]]]]]],114,52],[[113,[],[[85,[[94,[[70,[-2]]]]]]]],114,52]],[[-1,-2],24,[42,43],44],[[-1,-2],24,[42,43],44],[[[58,[],[[108,[-1]],[109,[-3]],[110,[-4]]]],-5],[[112,[[54,[111]]]]],[[113,[],[[85,[[94,[[68,[-2]]]]]]]],114,52],19,[[113,[],[[85,[[94,[[89,[-2]]]]]]]],114,52],[[113,[],[[85,[[94,[[70,[-2]]]]]]]],114,52],[[15,[[87,[-2]]]],52,53]],[[[58,[],[[108,[-1]],[109,[-3]],[110,[-4]]]],-5],[[112,[[54,[111]]]]],[[113,[],[[85,[[94,[[68,[-2]]]]]]]],114,52],19,[[113,[],[[85,[[94,[[89,[-2]]]]]]]],114,52],[[113,[],[[85,[[94,[[70,[-2]]]]]]]],114,52],[[115,[26]],52]],[[[58,[],[[108,[-1]],[109,[-3]],[110,[-4]]]],-5],[[112,[[54,[111]]]]],[[113,[],[[85,[[94,[[68,[-2]]]]]]]],114,52],19,[[113,[],[[85,[[94,[[89,[-2]]]]]]]],114,52],[[113,[],[[85,[[94,[[70,[-2]]]]]]]],114,52],[[15,[[88,[-2]]]],52,53]],[[[58,[],[[108,[-1]],[109,[-3]],[110,[-4]]]],-5],[[112,[[54,[111]]]]],[[113,[],[[85,[[94,[[68,[-2]]]]]]]],114,52],19,[[113,[],[[85,[[94,[[89,[-2]]]]]]]],114,52],[[113,[],[[85,[[94,[[70,[-2]]]]]]]],114,52],[[115,[26]],52]],[[],[[9,[48]]]],[[[87,[-1]],-2],2,19,49],[[[88,[-1]],-2],2,19,49],[[[68,[-1]]],[[106,[-1]]],19],[[[89,[-1]]],[[69,[-1]]],19],[[[70,[-1]]],117,19],[[[71,[-1]]],[[116,[-1]]],19],[[[90,[-1]]],[[69,[-1]]],19],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[[68,[-1]]],[[118,[-1]]],19],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[[89,[-1]]],[[118,[-1]]],19],[[[90,[-1]]],[[118,[-1]]],19],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[[68,[-1]]],24,19],[[[89,[-1]]],24,19],[[[70,[-1]]],24,19],[[[71,[-1]]],24,19],[[[90,[-1]]],24,19],0,[-1,[],[]],[-1,[],[]],0,[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[[120,[],[[119,[-1]]]],[89,[-2]]],[[112,[[54,[111]]]]],[5,34,52,53],19],[[[120,[],[[119,[-1]]]],[68,[-2]]],[[112,[[54,[111]]]]],[5,34,52,53],19],[-1,37,51],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[92,-1],37,[]],[[[72,[-1]],-2],37,[[15,[14]]],[]],[[[73,[-1]],-2],37,[[15,[14]]],[]],[[[74,[-1]],-2],37,[[15,[14]]],[]],[[[75,[-1,-2]],-3],37,[[15,[24]]],[[15,[24]]],[]],[[[76,[-1,-2]],-3],37,[[15,[14]]],[[15,[16]]],[]],[[[94,[-1]]],-2,52,[]],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4],30,[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[]],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4],30,[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[]],[[[89,[-1]]],30,19],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4],-2,[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[]],[[[68,[-1]]],[[17,[-1]]],19],0,[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4],26,[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[]],[[[89,[-1]]],26,19],[[[94,[-1]],-3],[[94,[-2]]],[],[],[52,[122,[-1],[[121,[-2]]]]]],0,[[[89,[-1]]],[[123,[-1]]],19],[[[17,[-1]],[124,[-1]]],[[28,[[68,[-1]],[67,[-1]]]]],19],[[[118,[-1]],[99,[-1]]],[[89,[-1]]],19],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,26],[[9,[-1]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[]],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,26],[[9,[-1]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[]],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,26],[[9,[-5]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[],[]],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,26],[[9,[-5]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[],[]],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,26],[[9,[[2,[-5,-3]]]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[],[]],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,26],[[9,[[2,[-5,-3]]]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[],[]],[[[89,[-1]]],24,19],[[[90,[-1]]],24,19],[[[87,[-1]],[87,[-1]]],[[9,[93]]],19],[[[88,[-1]],[88,[-1]]],[[9,[93]]],19],[[[89,[-1]]],[[99,[-1]]],19],[[[68,[-1]]],117,19],[[[89,[-1]]],117,19],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,-1],[[9,[-3]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[]],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,-1],[[9,[-3]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[]],[[[68,[-1]]],[[125,[-1]]],19],[[[89,[-1]]],[[125,[-1]]],19],[[[90,[-1]]],[[125,[-1]]],19],[[[68,[-1]]],[[124,[-1]]],19],0,[[[94,[-1]]],-1,52],0,0,0,[[[68,[-1]],-2],28,19,65],[[[89,[-1]],-2],28,19,65],[[[70,[-1]],-2],28,19,65],[[[71,[-1]],-2],28,19,65],[[[90,[-1]],-2],28,19,65],[[[91,[-1]],-2],28,19,65],[[37,-1],28,65],[[[89,[-1]]],24,19],[[[70,[-1]]],24,19],[[[90,[-1]]],24,19],[[[67,[-1]]],[[9,[5]]],19],[37,[[9,[5]]]],[37,16],0,[[[58,[],[[108,[-1]],[109,[-3]],[110,[-4]]]],26],[[112,[[54,[111]]]]],[[113,[],[[85,[[94,[[68,[-2]]]]]]]],114,52],19,[[113,[],[[85,[[94,[[89,[-2]]]]]]]],114,52],[[113,[],[[85,[[94,[[70,[-2]]]]]]]],114,52]],[[[58,[],[[108,[-1]],[109,[-3]],[110,[-4]]]],26],[[112,[[54,[111]]]]],[[113,[],[[85,[[94,[[68,[-2]]]]]]]],114,52],19,[[113,[],[[85,[[94,[[89,[-2]]]]]]]],114,52],[[113,[],[[85,[[94,[[70,[-2]]]]]]]],114,52]],[[[58,[],[[108,[-1]],[109,[-3]],[110,[-4]]]],26],[[112,[[54,[111]]]]],[[113,[],[[85,[[94,[[68,[-2]]]]]]]],114,52],19,[[113,[],[[85,[[94,[[89,[-2]]]]]]]],114,52],[[113,[],[[85,[[94,[[70,[-2]]]]]]]],114,52]],[[[58,[],[[108,[-1]],[109,[-3]],[110,[-4]]]],26],[[112,[[54,[111]]]]],[[113,[],[[85,[[94,[[68,[-2]]]]]]]],114,52],19,[[113,[],[[85,[[94,[[89,[-2]]]]]]]],114,52],[[113,[],[[85,[[94,[[70,[-2]]]]]]]],114,52]],[[[58,[],[[108,[-1]],[109,[-3]],[110,[-4]]]],26],[[112,[[54,[111]]]]],[[113,[],[[85,[[94,[[68,[-2]]]]]]]],114,52],19,[[113,[],[[85,[[94,[[89,[-2]]]]]]]],114,52],[[113,[],[[85,[[94,[[70,[-2]]]]]]]],114,52]],[[[58,[],[[108,[-1]],[109,[-3]],[110,[-4]]]],26],[[112,[[54,[111]]]]],[[113,[],[[85,[[94,[[68,[-2]]]]]]]],114,52],19,[[113,[],[[85,[[94,[[89,[-2]]]]]]]],114,52],[[113,[],[[85,[[94,[[70,[-2]]]]]]]],114,52]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,-1],[[9,[-5]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[],[]],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,-1],[[9,[-5]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[],[]],[[[89,[-1]],[104,[-1]]],[[9,[[71,[-1]]]]],19],[[[71,[-1]]],[[105,[-1]]],19],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,[20,[-5]]],[[9,[-5]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[],[]],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,[20,[-5]]],[[9,[-5]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[],[]],[[[89,[-1]],[20,[[105,[-1]]]]],[[9,[[104,[-1]]]]],19],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,[20,[-5]]],[[9,[[2,[-5,-3]]]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[],[]],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,[20,[-5]]],[[9,[[2,[-5,-3]]]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[],[]],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,-1],[[9,[[2,[-5,-3]]]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[[[94,[-1]]],[[28,[-1,[94,[-1]]]]],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[[100,39],[[28,[2,40]]]],[[100,39],[[28,[2,40]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[94,[-1]],-4],[[28,[-1,-2]]],[],[5,95],[[98,[-2],[[96,[97]]]]],[[122,[],[[121,[-3]]]]]],[[[94,[-1]],126],[[9,[-1]]],52],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[[[127,[-1,-2]]],-2,[],[]],[[[127,[-1,-2]]],-2,[],[]],[[[127,[-1,-2]]],[[112,[[54,[111]]]]],[60,52,53],[52,53]],[[[127,[-2,-3]]],[[112,[[54,[111]]]]],19,[[59,[-1]],52,53],[52,53]],[128,[[112,[[54,[111]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[127,[-1,-2]]],[[127,[-1,-2]]],18,18],[128,128],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[62,[],[[119,[-1]]]]],[[112,[[54,[111]]]]],[5,34,52,53]],[[[127,[-1,-2]]],[[112,[[54,[111]]]]],[62,52],52],[[[127,[-2,-3]],[125,[-1]]],[[112,[[54,[111]]]]],19,[[59,[-1]],52,53],[52,53]],[[129,-2],[[131,[[130,[-1,-2]]]]],19,[[132,[-1]]]],[[133,-2],[[131,[[130,[-1,-2]]]]],19,[[132,[-1]]]],[[],128],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,2],[26,2],0,[[[127,[-1,-2]],32],35,34,34],[[128,32],35],[-1,-1,[]],[-1,-1,[]],[[[127,[-2,-3]],-4],[[112,[[54,[111]]]]],19,[[58,[-1]],52,53],[52,53],[[15,[[88,[-1]]]],52,53]],[[[127,[-2,-3]],-4],[[112,[[54,[111]]]]],19,[[58,[-1]],52,53],[52,53],[[115,[26]],52]],[[[127,[-2,-3]],[116,[-1]]],[[112,[[54,[111]]]]],19,[[58,[-1]],52,53],[52,53]],[[[127,[-2,-3]],-4],[[112,[[54,[111]]]]],19,[[58,[-1]],52,53],[52,53],[[15,[[87,[-1]]]],52,53]],[[[127,[-2,-3]],-4],[[112,[[54,[111]]]]],19,[[58,[-1]],52,53],[52,53],[[115,[26]],52]],[[[127,[-2,-3]],-4],[[112,[[54,[111]]]]],19,[[58,[-1]],52,53],[52,53],[[15,[[88,[-1]]]],52,53]],[[[127,[-2,-3]],-4],[[112,[[54,[111]]]]],19,[[58,[-1]],52,53],[52,53],[[115,[26]],52]],[[[127,[-2,-3]],[125,[-1]],[9,[26]]],[[112,[[54,[111]]]]],19,[[59,[-1]],52,53],[52,53]],[[],26],[[],26],[[[127,[-1,-2]]],-1,[],[]],[[[127,[-1,-2]]],-1,[],[]],[[[127,[-2,-3]],[89,[-1]]],[[112,[[54,[111]]]]],19,[[120,[-1]],52,53],[52,53]],[[[127,[-2,-3]],[68,[-1]]],[[112,[[54,[111]]]]],19,[[120,[-1]],52,53],[52,53]],[[[127,[-2,-3]],[68,[-1]]],[[112,[[54,[111]]]]],19,[[134,[-1]],52,53],[52,53]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[127,[-1,-2]]],135,[60,52,53],[52,53]],[128,135],[[-1,-2],[[127,[-1,-2]]],[],[]],[[129,-2],[[131,[[130,[-1,-2]]]]],19,[[132,[-1]]]],[[133,-2],[[131,[[130,[-1,-2]]]]],19,[[132,[-1]]]],[-1,[[54,[136]]],[]],[-1,[[54,[136]]],[]],[[[62,[],[[119,[-1]]]]],[[112,[[54,[111]]]]],[5,34,52,53]],[[[127,[-1,-2]]],[[112,[[54,[111]]]]],[62,52],52],[[[130,[-1,-2]]],[[131,[2]]],19,[[132,[-1]]]],0,0,[[[127,[-2,-3]]],[[112,[[54,[111]]]]],19,[[59,[-1]],52,53],[52,53]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[[61,[137,[-1]]],[[112,[[54,[111]]]]],19],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[[[138,[-1,-2,-3]]],[[112,[[54,[111]]]]],19,[[59,[-1]],52,53],[52,53]],[[[138,[-1,-2,-3]]],[[112,[[54,[111]]]]],19,[[59,[-1]],52,53],[52,53]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[139,[-1,-2,-3]]],[[131,[[138,[-1,-2,-3]]]]],19,[[59,[-1]],[134,[-1]],[140,[-1]],62],[[132,[-1]]]],[[-2,-3],[[139,[-1,-2,-3]]],19,[[59,[-1]],[134,[-1]],[140,[-1]],62],[[132,[-1]]]],[[[138,[-1,-2,-3]]],[[138,[-1,-2,-3]]],19,[],[]],[[[141,[-1]]],[[141,[-1]]],19],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[141,[-1]],[141,[-1]]],93,19],[[[138,[-1,-2,-3]]],[[112,[[54,[111]]]]],19,[62,52,53],[52,53]],[[-1,-2],93,[],[]],[[142,-2],[[28,[[143,[-1,-2]],144]]],19,[[132,[-1]]]],[[[138,[-1,-2,-3]],[125,[-1]]],[[112,[[54,[111]]]]],19,[[59,[-1]],52,53],[52,53]],[[129,-2],[[131,[[138,[-1,[145,[-1]],-2]]]]],19,[[132,[-1]]]],[[133,-2],[[131,[[138,[-1,[145,[-1]],-2]]]]],19,[[132,[-1]]]],[26,-1,[]],[26,-1,[]],[[[146,[-1,-2]]],-3,19,[],[]],[26,-1,[]],[[[147,[-1,-2]]],-3,19,[],[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[[[147,[-1,-2]]],-3,19,[],[]],[26,-1,[]],[26,-1,[]],[[[139,[-1,-2,-3]]],[[139,[-1,-2,-3]]],[],[],[]],[26,2],[26,2],[26,2],[26,2],[26,2],[[[141,[-1]],[141,[-1]]],30,19],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[[138,[-1,-2,-3]],32],35,19,34,34],[[[141,[-1]],32],35,19],[[[141,[-1]],32],35,19],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[148,[[0,[-1,-2]]]]],[[146,[-1,-2]]],19,[]],[[[149,[[0,[-1,-2]]]]],[[147,[-1,-2]]],19,[]],[-1,-1,[]],[26,[[141,[-1]]],19],[[[88,[-1]]],[[141,[-1]]],19],[[[116,[-1]]],[[141,[-1]]],19],[-1,-1,[]],[[[138,[-1,-2,-3]],-4],[[112,[[54,[111]]]]],19,[[140,[-1]]],[[132,[-1]]],[[15,[[88,[-1]]]],52,53]],[[[138,[-1,-2,-3]],-4],[[112,[[54,[111]]]]],19,[[140,[-1]]],[[132,[-1]]],[[115,[26]],52]],[[[138,[-1,-2,-3]],[116,[-1]]],[[112,[[54,[111]]]]],19,[[140,[-1]]],[[132,[-1]]]],[[-1,-2],24,[42,43],44],[[[138,[-1,-2,-3]],-4],[[112,[[54,[111]]]]],19,[[140,[-1]]],[[132,[-1]]],[[15,[[87,[-1]]]],52,53]],[[[138,[-1,-2,-3]],-4],[[112,[[54,[111]]]]],19,[[140,[-1]]],[[132,[-1]]],[[115,[26]],52]],[[[138,[-1,-2,-3]],-4],[[112,[[54,[111]]]]],19,[[140,[-1]]],[[132,[-1]]],[[15,[[88,[-1]]]],52,53]],[[[138,[-1,-2,-3]],-4],[[112,[[54,[111]]]]],19,[[140,[-1]]],[[132,[-1]]],[[115,[26]],52]],[[[138,[-1,-2,-3]],[125,[-1]],[9,[26]]],[[112,[[54,[111]]]]],19,[[59,[-1]],52,53],[52,53]],[[[141,[-1]],-2],2,19,49],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[],26],[[],26],[[],26],[[],26],[[],26],[[[138,[-1,-2,-3]],[89,[-1]]],[[112,[[54,[111]]]]],19,[[120,[-1]],52,53],[52,53]],[[[138,[-1,-2,-3]],[68,[-1]]],[[112,[[54,[111]]]]],19,[[134,[-1]],52,53],[52,53]],[[[138,[-1,-2,-3]],[68,[-1]]],[[112,[[54,[111]]]]],19,[[120,[-1]],52,53],[52,53]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[138,[-1,-2,-3]]],135,19,[[59,[-1]],52,53],[52,53]],[[-1,-2],[[139,[-3,-1,-2]]],[],[],[]],[[129,-2],[[131,[[138,[-1,[145,[-1]],-2]]]]],19,[[132,[-1]]]],[[133,-2],[[131,[[138,[-1,[145,[-1]],-2]]]]],19,[[132,[-1]]]],[[[141,[-1]],[141,[-1]]],[[9,[93]]],19],[-1,[[54,[136]]],[]],[[[138,[-1,-2,-3]]],[[112,[[54,[111]]]]],19,[62,52,53],[52,53]],[[[138,[-1,[145,[-1]],-2]]],[[131,[2]]],19,[[132,[-1]]]],[[[138,[-1,-2,-3]]],[[146,[-1,-2]]],19,[],[]],[[[138,[-1,-2,-3]]],[[147,[-1,-2]]],19,[],[]],[[[138,[-1,-2,-3]]],[[112,[[54,[111]]]]],19,[[59,[-1]],52,53],[52,53]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[[[138,[-1,150,-2]]],[[152,[151]]],19,[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[139,[-1,-2,-3]],26],[[139,[-1,-2,-3]]],[],[],[]],[[[139,[-1,-2,-3]],126],[[139,[-1,-2,-3]]],[],[],[]],[[[139,[-1,-2,-3]],26],[[139,[-1,-2,-3]]],[],[],[]],[[[139,[-1,-2,-3]],26],[[139,[-1,-2,-3]]],[],[],[]],[[[139,[-1,-2,-3]],126],[[139,[-1,-2,-3]]],[],[],[]],0,0,0,0,0,0,0,[[[153,[-1,-2]]],[[112,[[54,[111]]]]],19,[52,53]],[[142,-2],[[28,[[143,[-1,-2]],144]]],19,[[132,[-1]]]],0,0,[[[153,[-1,-2]]],[[152,[151]]],19,[]],0,0,0,0,[[140,[88,[-1]]],[[112,[[54,[111]]]]],19],[[140,-1],[[112,[[54,[111]]]]],[[115,[26]],52]],[[140,[116,[-1]]],[[112,[[54,[111]]]]],19],[[140,[88,[-1]]],[[112,[[54,[111]]]]],19],[[140,[87,[-1]]],[[112,[[54,[111]]]]],19],[[140,-1],[[112,[[54,[111]]]]],[[115,[26]],52]],[[140,[88,[-1]]],[[112,[[54,[111]]]]],19],[[140,-1],[[112,[[54,[111]]]]],[[115,[26]],52]],0,0,[-1,4,[]],[-1,4,[]],[[[145,[-1]]],[[112,[[54,[111]]]]],19],[-1,-2,[],[]],[-1,-2,[],[]],[[[145,[-1]]],[[112,[[54,[111]]]]],19],[[[145,[-1]],[125,[-1]]],[[112,[[54,[111]]]]],19],[129,[[28,[[145,[-1]],154]]],19],[133,[[28,[[145,[-1]],154]]],19],[26,-1,[]],[26,-1,[]],[26,2],[[[145,[-1]],32],35,19],[-1,-1,[]],[[[145,[-1]],[88,[-1]]],[[112,[[54,[111]]]]],19],[[[145,[-1]],-2],[[112,[[54,[111]]]]],19,[[115,[26]],52]],[[[145,[-1]],[116,[-1]]],[[112,[[54,[111]]]]],19],[[[145,[-1]],[88,[-1]]],[[112,[[54,[111]]]]],19],[[[145,[-1]],[87,[-1]]],[[112,[[54,[111]]]]],19],[[[145,[-1]],-2],[[112,[[54,[111]]]]],19,[[115,[26]],52]],[[[145,[-1]],[88,[-1]]],[[112,[[54,[111]]]]],19],[[[145,[-1]],-2],[[112,[[54,[111]]]]],19,[[115,[26]],52]],[[[145,[-1]],[125,[-1]],[9,[26]]],[[112,[[54,[111]]]]],19],[[],26],[[[145,[-1]],[89,[-1]]],[[112,[[54,[111]]]]],19],[[[145,[-1]],[68,[-1]]],[[112,[[54,[111]]]]],19],[[[145,[-1]],[68,[-1]]],[[112,[[54,[111]]]]],19],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[129,[[28,[[145,[-1]],154]]],19],[133,[[28,[[145,[-1]],154]]],19],[[[145,[-1]]],[[112,[[54,[111]]]]],19],[[[145,[-1]]],[[28,[2,154]]],19],[[[145,[-1]]],[[112,[[54,[111]]]]],19],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,-2,[],[]],0,0,0,0,0,0,[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[155,[[9,[156]]]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[144,5],[144,5],[144,157],[150,[[112,[[54,[111]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[142,-2],[[28,[[143,[-1,-2]],144]]],19,[[132,[-1]]]],[144,158],[155,24],[159,[[112,[[54,[111]]]]]],[151,[[112,[[54,[111]]]]]],[150,[[112,[[54,[111]]]]]],[155,155],[142,142],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[155,155],93],[150,[[112,[[54,[111]]]]]],[[-1,-2],93,[],[]],[[142,-2],[[28,[[153,[-1,-2]],144]]],19,[[132,[-1]]]],[142,[[28,[150,144]]]],[[144,-1],144,[51,52,53]],[[150,[125,[-1]]],[[112,[[54,[111]]]]],19],[[142,27],142],[[],142],[[],[[160,[155]]]],[26,-1,[]],[144],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[144],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[144,[[28,[-1,144]]],[51,34,52,53]],[144,[[9,[-1]]],[51,34,52,53]],[144,[[9,[-1]]],[51,34,52,53]],[26,2],[144,2],[26,2],[26,2],[26,2],[150,2],[26,2],[[155,155],30],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[151,-1,-2],[[152,[24]]],[43,161],162],[[151,-1,-2],[[152,[24]]],[43,161,51],162],[[151,-1,-2],[[152,[24]]],[43,161,51],[162,18]],[[151,-1,-2],[[152,[2]]],[43,161,51],162],[[151,-1,-2],[[152,[2]]],[43,161,51],[162,18]],[[144,32],[[28,[2,33]]]],[[144,32],[[28,[2,33]]]],[[155,32],[[28,[2,33]]]],[[155,32],[[28,[2,33]]]],[[142,32],35],[[150,32],35],[163,-1,[]],[-1,-1,[]],[-1,144,[5,52,53]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[164,142],[-1,-1,[]],[27,[[28,[142,-1]]],[]],[[150,[88,[-1]]],[[112,[[54,[111]]]]],19],[[150,-1],[[112,[[54,[111]]]]],[[115,[26]],52]],[[150,[116,[-1]]],[[112,[[54,[111]]]]],19],[[150,[88,[-1]]],[[112,[[54,[111]]]]],19],[[150,[87,[-1]]],[[112,[[54,[111]]]]],19],[[150,-1],[[112,[[54,[111]]]]],[[115,[26]],52]],[[150,[88,[-1]]],[[112,[[54,[111]]]]],19],[[150,-1],[[112,[[54,[111]]]]],[[115,[26]],52]],[[150,[125,[-1]],[9,[26]]],[[112,[[54,[111]]]]],19],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[142,-1],142,[[15,[14]]]],0,0,[[],26],[[],26],[[],26],[[],26],[[],26],[[150,[89,[-1]]],[[112,[[54,[111]]]]],19],[[150,[68,[-1]]],[[112,[[54,[111]]]]],19],[[150,[68,[-1]]],[[112,[[54,[111]]]]],19],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[144,30],[[142,-1],142,[[162,[],[[85,[155]]]]]],[-1,144,[51,34,52,53]],[155,27],[-1,144,[5,52,53]],[142,142],[[155,155],[[9,[93]]]],[[142,27],142],[[142,165],142],0,[155,166],[[159,-1,-2],[[112,[[54,[111]]]]],[43,161,53],[162,52]],[[159,-1,-2],[[112,[[54,[111]]]]],[43,161,53],[162,52]],[[159,-1],[[112,[[54,[111]]]]],[43,161,53]],[[159,-1,-2],[[112,[[54,[111]]]]],[43,161,53],[162,52]],[[159,-1],[[112,[[54,[111]]]]],[43,161,53]],[[159,-1],[[112,[[54,[111]]]]],[43,161,53]],[142,142],[150,[[112,[[54,[111]]]]]],[144,5],[[142,-1],142,[[15,[14]]]],[155,[[9,[27]]]],[150,[[112,[[54,[111]]]]]],[142,142],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,14,[]],[150,[[152,[151]]]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[[27,27],[[28,[155,167]]]],[[151,27,[168,[27]],-1,-3],[[152,[2]]],[[162,[],[[85,[27]]]]],[169,18],[[162,[],[[85,[[168,[-2]]]]]]]],[[142,27],142],[155,170],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,[[-1,3],2,[]],[[-1,1],2,[]],[-1,4,[]],[-1,4,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[171,[-1,-2]]],[[171,[-1,-2]]],[],[]],[[-1,-2],2,[],[]],[[],[[171,[-1,-2]]],[],[]],[26,-1,[]],[26,-1,[]],[26,2],[[[171,[-1,-2]],32],35,[],[]],[-1,-1,[]],[[],26],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],0,0,[[172,-1],2,[]],[[173,-1],[[0,[[111,[],[[121,[2]]]],52]]],[]],[[[171,[-2,-3]],-2,-4,-5],2,[],[[174,[-1]]],173,[[175,[-1,-2]]],[[162,[],[[85,[-3]]]],52]],[-1,-2,[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,-2,[],[]],[[[171,[-1,-2]],126],[[171,[-1,-2]]],[],[]],0,0,0,0,[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[176,[-1]]],[[176,[-1]]],19],[177,177],[178,178],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[],[[176,[-1]]],19],[[],178],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,2],[26,2],[26,2],[[175,-2],[[112,[[54,[111]]]]],[],[[174,[-1]]]],[[[176,[-1]],179],[[112,[[54,[111]]]]],19],[[[176,[-1]],180],[[112,[[54,[111]]]]],19],[[177,180],[[112,[[54,[111]]]]]],[[177,179],[[112,[[54,[111]]]]]],[[178,-2],[[112,[[54,[111]]]]],[],[52,[174,[-1]]]],[[[176,[-1]],32],35,19],[[177,32],35],[[178,32],35],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],26],[[],26],[[],26],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[181,177],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[176,[-1]],-2],[[176,[-1]]],19,[[175,[-1,179]],34]],[[[176,[-1]],-2],[[176,[-1]]],19,[[175,[-1,180]],34]],[[[176,[-1]],-2],[[176,[-1]]],19,[[175,[-1,179]],[175,[-1,180]],34]],0,0,0,0,[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[179,179],[180,180],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,2],[26,2],[[179,179],30],[[180,180],30],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[179,32],35],[[180,32],35],[-1,-1,[]],[26,180],[-1,-1,[]],[[-1,-2],24,[42,43],44],[[-1,-2],24,[42,43],44],[[179,-1],2,49],[[180,-1],2,49],[[],26],[[],26],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[182,26],2],[[183,184],2],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,5,[]],[185,[[9,[8]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[185,[[9,[5]]]],[135,135],[182,182],[186,186],[183,183],[187,187],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[135,14,[9,[14]]],[[54,[188]]]],[[135,14,[9,[14]]],[[54,[189]]]],[[135,14,[9,[14]]],[[54,[190]]]],[[135,14],[[54,[191]]]],[[],135],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[185,27],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[135,[[28,[14,-1]]],[]],[[185,32],35],[[185,32],35],[[135,32],35],[[182,32],35],[[186,32],35],[[183,32],35],[[187,32],35],[192,185],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[182,26],[186,26],[187,14],[[135,27],[[28,[182,185]]]],[[135,27],[[28,[186,185]]]],[[135,27],[[28,[183,185]]]],[[135,27],[[28,[187,185]]]],[[135,-1],[[28,[135,185]]],162],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[-1,[],[]],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[183,184],[183,26],[[186,26],2],[[187,14],2],[185,[[9,[5]]]],[[135,14],[[54,[136]]]],[183,184],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[[186,193],2],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],0,[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,5,[]],[6,6],[6,6],[38,[[9,[8]]]],[59,[[112,[[54,[111]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[194,38],[[[195,[-1,-2]]],38,[[15,[14]]],[[15,[16]]]],[38,[[9,[5]]]],[196,196],[197,197],[198,198],[[[199,[-1]]],[[199,[-1]]],18],[194,194],[200,200],[[[195,[-1,-2]]],[[195,[-1,-2]]],18,18],[38,38],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[196,196],93],[[-1,-2],93,[],[]],[[59,[125,[-1]]],[[112,[[54,[111]]]]],19],[[],201],[201,[[28,[[101,[-1,38]],102]]],[52,53,103]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[38,27],[-1,[[28,[196]]],29],[-1,[[28,[38]]],29],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[[196,196],30],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],0,[194,[[28,[-1,38]]],[]],[[[195,[-1,-2]]],[[28,[-3,38]]],[[15,[14]]],[[15,[16]]],[]],[[196,32],35],[[197,32],35],[[198,32],35],[[[199,[-1]],32],35,34],[[194,32],35],[[200,32],35],[[[195,[-1,-2]],32],35,34,34],[[38,32],35],[[38,32],35],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[107,38],[[[2,[14,16]]],38],[39,[[28,[201,40]]]],[39,[[28,[201,40]]]],[[-1,-2],24,[42,43],44],[[59,[125,[-1]],[9,[26]]],[[112,[[54,[111]]]]],19],[[],[[9,[48]]]],[[196,-1],2,49],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[-1,[],[]],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[[134,[],[[119,[-1]]]],[68,[-2]]],[[112,[[54,[111]]]]],[5,34,52,53],19],[-1,38,51],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[197,-1],38,[]],[[198,-1],38,[]],[[[199,[-1]],-2],38,[[15,[14]]],[]],[[194,-1],38,[]],[[200,-1],38,[]],[[[195,[-1,-2]],-3],38,[[15,[14]]],[[15,[16]]],[]],0,0,0,[[196,196],[[9,[93]]]],0,[[196,-1],28,65],[[38,-1],28,65],[38,[[9,[5]]]],[38,16],0,[59,[[112,[[54,[111]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[[201,39],[[28,[2,40]]]],[[201,39],[[28,[2,40]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],0,[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,5,[]],[6,6],[6,6],[36,[[9,[8]]]],[60,[[112,[[54,[111]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[36,[[9,[5]]]],[202,202],[36,36],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[202,202],93],[[-1,-2],93,[],[]],[60,[[152,[135]]]],[60,[[152,[135]]]],[[],202],[[],203],[203,[[28,[[101,[-1,36]],102]]],[52,53,103]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[36,27],[-1,[[28,[202]]],29],[-1,[[28,[36]]],29],[26,2],[26,2],[26,2],[[202,202],30],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],0,[[202,32],35],[[36,32],35],[[36,32],35],[-1,-1,[]],[-1,-1,[]],[107,36],[-1,-1,[]],[14,36],[39,[[28,[203,40]]]],[39,[[28,[203,40]]]],[[-1,-2],24,[42,43],44],[[],[[9,[48]]]],[[202,-1],2,49],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[-1,[],[]],[[],26],[[],26],[[],26],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],0,[60,[[112,[[54,[111]]]]]],[60,[[112,[[54,[111]]]]]],[60,135],[[202,202],[[9,[93]]]],[204,[[54,[136]]]],[[202,-1],28,65],[[36,-1],28,65],[36,[[9,[5]]]],[36,16],[60,[[112,[[54,[111]]]]]],[60,[[112,[[54,[111]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],0,[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[[203,39],[[28,[2,40]]]],[[203,39],[[28,[2,40]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0],"c":[],"p":[[5,"Private",2248],[1,"tuple"],[5,"Private",2248],[10,"Any",2249],[10,"Error",2250],[5,"Command",2251],[6,"Error",0],[5,"Backtrace",2252],[6,"Option",2253],[6,"QueryError",0],[5,"NotFoundSnafu",0],[5,"MissingSnafu",0],[5,"Snafu",0],[5,"String",2254],[10,"Into",2255],[6,"StatusCode",2256],[5,"Leaf",0],[10,"Clone",2257],[10,"NodeType",2258],[5,"Commitment",2259],[10,"Resolvable",0],[10,"Committable",2259],[10,"RngCore",2260],[1,"u64"],[5,"Options",0],[1,"usize"],[1,"str"],[6,"Result",2261],[10,"Deserializer",2262],[1,"bool"],[6,"BlockError",2263],[5,"Formatter",2264],[5,"Error",2264],[10,"Debug",2264],[8,"Result",2264],[6,"Error",2127],[6,"Error",281],[6,"Error",1842],[5,"ArgMatches",2265],[8,"Error",2266],[5,"StoredView",2267],[10,"Hash",2268],[10,"Sized",2269],[10,"BuildHasher",2268],[5,"QuorumData",2270],[5,"SuccessThreshold",2271],[5,"SimpleCertificate",2271],[5,"Id",2272],[10,"Hasher",2268],[5,"IndentedSection",2273],[10,"Display",2264],[10,"Send",2269],[10,"Sync",2269],[5,"Box",2274],[5,"Arc",2275],[5,"Rc",2276],[5,"SystemContextHandle",2277],[10,"AvailabilityDataSource",281],[10,"NodeDataSource",1842],[10,"StatusDataSource",2127],[10,"UpdateDataSource",958],[10,"VersionedDataSource",958],[10,"NodeImplementation",2258],[10,"Serialize",2278],[10,"Serializer",2278],[5,"TypeId",2249],[5,"InconsistentLeafError",281],[5,"LeafQueryData",281],[8,"BlockHash",281],[5,"PayloadQueryData",281],[5,"TransactionQueryData",281],[5,"FetchLeafSnafu",281],[5,"FetchBlockSnafu",281],[5,"FetchTransactionSnafu",281],[5,"InvalidTransactionIndexSnafu",281],[5,"CustomSnafu",281],[17,"TransactionIndex"],[17,"Iter"],[17,"InclusionProof"],[10,"QueryablePayload",281],[10,"PartialEq",2279],[10,"Eq",2279],[10,"Ord",2279],[10,"DeserializeOwned",2262],[17,"Item"],[10,"Iterator",2280],[6,"LeafId",281],[6,"BlockId",281],[5,"BlockQueryData",281],[5,"BlockSummaryQueryData",281],[5,"TransactionSummaryQueryData",281],[5,"RequestSnafu",281],[6,"Ordering",2279],[6,"Fetch",281],[10,"ErrorCompat",2281],[17,"Source"],[5,"NoneError",2281],[10,"IntoError",2281],[8,"Payload",0],[5,"Options",281],[5,"Api",2282],[6,"ApiError",2282],[10,"ReadState",2283],[8,"TransactionIndex",281],[8,"Transaction",0],[8,"LeafHash",281],[6,"RequestError",2284],[17,"LeafRange"],[17,"BlockRange"],[17,"PayloadRange"],[10,"Future",2285],[5,"Pin",2286],[10,"Stream",2287],[10,"Unpin",2269],[10,"RangeBounds",2288],[8,"TransactionHash",281],[8,"VidCommitment",2263],[8,"Header",0],[17,"Error"],[10,"UpdateAvailabilityData",281],[17,"Output"],[10,"FnOnce",2289],[8,"Metadata",0],[8,"QuorumCertificate",2271],[8,"SignatureKey",0],[5,"Duration",2290],[5,"ExtensibleDataSource",958],[5,"MetricsDataSource",958],[5,"Path",2291],[8,"FileSystemDataSource",958],[8,"Result",2292],[10,"AvailabilityProvider",1052],[5,"AtomicStoreLoader",2293],[10,"UpdateNodeData",1842],[5,"PrometheusMetrics",1663],[10,"Metrics",2294],[5,"Event",2295],[5,"FetchingDataSource",1052],[5,"Builder",1052],[10,"AvailabilityStorage",1227],[6,"BlockRequest",1052],[5,"Config",1281],[8,"Builder",1215],[5,"Error",1281],[5,"FileSystemStorage",1240],[5,"StorageReadGuard",1052],[5,"StorageWriteGuard",1052],[5,"RwLockReadGuard",2296],[5,"RwLockWriteGuard",2296],[5,"SqlStorage",1281],[5,"Transaction",1281],[8,"QueryResult",0],[8,"SqlDataSource",1215],[6,"PersistenceError",2297],[5,"Migration",1281],[5,"OffsetDateTime",2298],[5,"Backtrace",2299],[5,"Chain",2292],[10,"Query",1281],[5,"Vec",2300],[10,"ToStatement",2301],[10,"IntoIterator",2302],[1,"never"],[5,"Config",2303],[1,"u16"],[6,"Type",2304],[5,"Error",2305],[1,"array"],[10,"BorrowToSql",2306],[1,"u32"],[5,"Fetcher",1478],[10,"LocalCallback",1478],[10,"Callback",1478],[10,"Request",1598],[10,"Provider",1513],[5,"AnyProvider",1513],[5,"QueryServiceProvider",1513],[5,"NoFetching",1513],[5,"PayloadRequest",1598],[5,"LeafRequest",1598],[5,"Url",2307],[5,"Counter",1663],[5,"Histogram",1663],[1,"f64"],[6,"MetricsError",1663],[5,"Gauge",1663],[5,"Label",1663],[10,"Counter",2294],[10,"Gauge",2294],[10,"Histogram",2294],[10,"Label",2294],[6,"Error",2308],[1,"i64"],[5,"InvalidSignatureKeySnafu",1842],[5,"CustomSnafu",1842],[5,"SyncStatus",1842],[5,"RequestSnafu",1842],[5,"QuerySnafu",1842],[5,"QueryProposalsSnafu",1842],[5,"SyncStatusSnafu",1842],[5,"Options",1842],[5,"MempoolQueryData",2127],[5,"Options",2127],[10,"UpdateStatusData",2127],[15,"Custom",275],[15,"Availability",275],[15,"Node",275],[15,"Status",275],[15,"Error",280],[15,"InvalidTransactionIndex",950],[15,"Custom",950],[15,"FetchLeaf",950],[15,"FetchBlock",950],[15,"FetchTransaction",950],[15,"Request",950],[15,"NoSuchMetric",1838],[15,"NoSuchSubgroup",1838],[15,"Prometheus",1838],[15,"Custom",2120],[15,"QueryProposals",2120],[15,"Request",2120],[15,"Query",2120],[15,"SyncStatus",2120],[15,"Internal",2246],[15,"Request",2246]],"b":[[134,"impl-Debug-for-Leaf%3CTYPES%3E"],[135,"impl-Display-for-Leaf%3CTYPES%3E"],[136,"impl-Display-for-Error"],[137,"impl-Debug-for-Error"],[141,"impl-Display-for-QueryError"],[142,"impl-Debug-for-QueryError"],[144,"impl-From%3CError%3E-for-Error"],[145,"impl-From%3CError%3E-for-Error"],[147,"impl-From%3CError%3E-for-Error"],[148,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[604,"impl-Display-for-LeafId%3CTypes%3E"],[605,"impl-Debug-for-LeafId%3CTypes%3E"],[606,"impl-Display-for-BlockId%3CTypes%3E"],[607,"impl-Debug-for-BlockId%3CTypes%3E"],[609,"impl-Debug-for-InconsistentLeafError%3CTypes%3E"],[610,"impl-Display-for-InconsistentLeafError%3CTypes%3E"],[622,"impl-Debug-for-Error"],[623,"impl-Display-for-Error"],[625,"impl-From%3Cusize%3E-for-LeafId%3CTypes%3E"],[627,"impl-From%3CCommitment%3CLeaf%3CTypes%3E%3E%3E-for-LeafId%3CTypes%3E"],[628,"impl-From%3Cusize%3E-for-BlockId%3CTypes%3E"],[629,"impl-From%3CCommitment%3C%3CTypes+as+NodeType%3E::BlockHeader%3E%3E-for-BlockId%3CTypes%3E"],[648,"impl-From%3CRequestError%3E-for-Error"],[649,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[977,"impl-StatusDataSource-for-ExtensibleDataSource%3CD,+U%3E"],[978,"impl-NodeDataSource%3CTypes%3E-for-ExtensibleDataSource%3CD,+U%3E"],[1018,"impl-UpdateAvailabilityData%3CTypes%3E-for-ExtensibleDataSource%3CD,+U%3E"],[1019,"impl-UpdateNodeData%3CTypes%3E-for-ExtensibleDataSource%3CD,+U%3E"],[1074,"impl-NodeDataSource%3CTypes%3E-for-FetchingDataSource%3CTypes,+S,+P%3E"],[1075,"impl-StatusDataSource-for-FetchingDataSource%3CTypes,+S,+P%3E"],[1124,"impl-Debug-for-BlockRequest%3CTypes%3E"],[1125,"impl-Display-for-BlockRequest%3CTypes%3E"],[1132,"impl-From%3Cusize%3E-for-BlockRequest%3CTypes%3E"],[1133,"impl-From%3CBlockId%3CTypes%3E%3E-for-BlockRequest%3CTypes%3E"],[1134,"impl-From%3CCommitment%3C%3C%3CTypes+as+NodeType%3E::BlockPayload+as+BlockPayload%3E::Transaction%3E%3E-for-BlockRequest%3CTypes%3E"],[1153,"impl-UpdateNodeData%3CTypes%3E-for-FetchingDataSource%3CTypes,+S,+P%3E"],[1154,"impl-UpdateAvailabilityData%3CTypes%3E-for-FetchingDataSource%3CTypes,+S,+P%3E"],[1266,"impl-UpdateAvailabilityData%3CTypes%3E-for-FileSystemStorage%3CTypes%3E"],[1267,"impl-UpdateNodeData%3CTypes%3E-for-FileSystemStorage%3CTypes%3E"],[1302,"impl-AsRef%3Cdyn+Error+%2B+Send+%2B+Sync%3E-for-Error"],[1303,"impl-AsRef%3Cdyn+Error%3E-for-Error"],[1368,"impl-Display-for-Error"],[1369,"impl-Debug-for-Error"],[1370,"impl-Debug-for-Migration"],[1371,"impl-Display-for-Migration"],[1403,"impl-UpdateNodeData%3CTypes%3E-for-SqlStorage"],[1404,"impl-UpdateAvailabilityData%3CTypes%3E-for-SqlStorage"],[1553,"impl-Provider%3CTypes,+PayloadRequest%3E-for-AnyProvider%3CTypes%3E"],[1554,"impl-Provider%3CTypes,+LeafRequest%3E-for-AnyProvider%3CTypes%3E"],[1555,"impl-Provider%3CTypes,+LeafRequest%3E-for-QueryServiceProvider"],[1556,"impl-Provider%3CTypes,+PayloadRequest%3E-for-QueryServiceProvider"],[1746,"impl-Debug-for-MetricsError"],[1747,"impl-Display-for-MetricsError"],[1988,"impl-Display-for-Error"],[1989,"impl-Debug-for-Error"],[1999,"impl-From%3CRequestError%3E-for-Error"],[2000,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[2187,"impl-Debug-for-Error"],[2188,"impl-Display-for-Error"],[2191,"impl-From%3CRequestError%3E-for-Error"],[2193,"impl-From%3CString%3E-for-Error"]]}]\ +["hotshot_query_service",{"doc":"The HotShot Query Service is a minimal, generic query …","t":"PPPGPIFIPFPPFPFIGIKIFPINNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCONNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQNNNNNNNQQQQQNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOCCOOOOHNNNNNCNNOCNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNONNNNNNNOOOOOOKIGFRFPFGRGPFPFPFPPRFPFRIGFRPPFPFRPKPPFIIIIRFFKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMNNMMMMNNNNNNNNNNNNNNNNNNNNONNONNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNOMNNONNNNNNNNNNNNNNNNNNNNNNONOOONNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOERFEIFEKKNNNNNNNNNNCNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNCNNNNNMNNCCCNNNNNNNNNMNNHHKGFFPFFPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHHHHIEFFEIENNNNNQENCNEHKEEECMMMMMMMMCCFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNGPPPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOFFFKFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQQNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNENNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNKFKEENNNNNNNNNNNNNNNNNNNCCMMNNNNNNNFFKFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFKRNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFGPPPFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOPFGPFEKFPPFFPFFNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONMONNNNOMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOGPFFPKKNNNNONNNNNNNNNNMNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNMNMNNNNNNNNNONNNNNNNNNNNNNNOOCCHHKIFSRKNNNNMMNNNNNNNNMNNNNNNNNMNNNNNNNNNIIIFIIIFNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONHNNOONNONNNONNNNNNOONN","n":["Availability","Custom","Err","Error","Error","Header","Leaf","Metadata","Missing","MissingSnafu","Node","NotFound","NotFoundSnafu","Ok","Options","Payload","QueryError","QueryResult","Resolvable","SignatureKey","Snafu","Status","Transaction","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_error_source","as_error_source","augment_args","augment_args_for_update","availability","availability","backtrace","backtrace","block_header","block_payload","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","build","build","catch_all","cause","cause","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","commit","commitment","commitment","create_random_transaction","data_source","default","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","description","description","deserialize","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","eq","equivalent","equivalent","equivalent","equivalent","fail","fail","fail","fetching","fill_block_payload","fill_block_payload_unchecked","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from_arg_matches","from_arg_matches_mut","from_stored_view","genesis","get_block_header","get_block_payload","get_hash","get_height","get_justify_qc","get_parent_commitment","get_payload_commitment","get_proposer_id","get_view_number","group_id","hash","header","header","header","in_current_span","in_current_span","include_migrations","init","init","init","init","init","init","init","instantiate_availability_tests","instantiate_data_source_tests","instantiate_node_tests","instantiate_persistence_tests","instantiate_status_tests","internal","into","into","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_error","into_error","into_error","justify_qc","message","metrics","node","node","parent_commitment","port","proposer_id","run_standalone_service","serialize","serialize","serialize","source","source","status","status","status","status","testing","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_resolve","try_resolve","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches_mut","view_number","vzip","vzip","vzip","vzip","vzip","vzip","vzip","message","source","source","source","status","message","AvailabilityDataSource","BlockHash","BlockId","BlockQueryData","BlockRange","BlockSummaryQueryData","Custom","CustomSnafu","Error","Error","Fetch","FetchBlock","FetchBlockSnafu","FetchLeaf","FetchLeafSnafu","FetchTransaction","FetchTransactionSnafu","Hash","Hash","InclusionProof","InconsistentLeafError","InvalidTransactionIndex","InvalidTransactionIndexSnafu","Iter","LeafHash","LeafId","LeafQueryData","LeafRange","Number","Number","Options","PayloadHash","PayloadQueryData","PayloadRange","Pending","QueryablePayload","Ready","Request","RequestSnafu","Timestamp","TransactionHash","TransactionInclusionProof","TransactionIndex","TransactionIndex","TransactionQueryData","TransactionSummaryQueryData","UpdateAvailabilityData","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","api_path","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_error_source","as_error_source","augment_args","augment_args_for_update","backtrace","backtrace","block_hash","block_hash","block_hash","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","build","build","build","build","by_hash","by_hash","cause","cause","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","compare","compare","context","data","default","define_api","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","description","description","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","enumerate","enumerate","enumerate","eq","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","extensions","fail","fail","fail","fail","fail","fetch_timeout","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_arg_matches","from_arg_matches_mut","genesis","genesis","get_block","get_block_range","get_block_with_transaction","get_hash","get_hash","get_leaf","get_leaf_range","get_payload","get_payload_range","group_id","hash","hash","hash","hash","hash","hash","hash","header","header","header","header","header","header","header","height","height","height","height","height","height","in_current_span","in_current_span","index","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","insert_block","insert_leaf","internal","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_error","into_error","into_error","into_error","into_error","into_error","into_future","is_empty","is_empty","is_empty","iter","leaf","leaf","len","len","map","message","metadata","new","new","nth","nth","nth_transaction","nth_transaction","nth_transaction_with_proof","nth_transaction_with_proof","num_transactions","num_transactions","partial_cmp","partial_cmp","payload","payload_hash","payload_hash","proof","proof","proposer","proposer","proposer","qc","qc_leaf","resolve","resource","resource","resource","serialize","serialize","serialize","serialize","serialize","serialize","serialize","size","size","size","source","source","status","status","subscribe_blocks","subscribe_blocks","subscribe_leaves","subscribe_leaves","subscribe_payloads","subscribe_payloads","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","transaction","transaction","transaction","transaction","transaction_by_hash","transaction_by_hash","transaction_by_hash","transaction_by_hash_with_proof","transaction_by_hash_with_proof","transaction_with_proof","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_resolve","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","with_context","with_timeout","height","index","message","resource","resource","resource","source","status","AvailabilityProvider","Error","ExtensibleDataSource","FetchingDataSource","FileSystemDataSource","MetricsDataSource","SqlDataSource","UpdateDataSource","VersionedDataSource","__clone_box","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any_mut","as_any_mut","as_mut","as_ref","availability_tests","block_height","block_height","block_height","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","commit","commit","connect","connect","connect","count_proposals","count_transactions","create","create","create","create","create_with_store","default","deref","deref","deref_mut","deref_mut","drop","drop","fetching","fmt","fmt","from","from","get_block","get_block_range","get_block_with_transaction","get_leaf","get_leaf_range","get_payload","get_payload_range","get_proposals","handle_event","handle_event","handle_event","init","init","inner","inner_mut","insert_block","insert_leaf","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","metrics","metrics","new","node_tests","open","open_with_store","payload_size","persistence_tests","populate_metrics","populate_metrics","reset","reset","reset","revert","revert","skip_version","sql","status_tests","storage","sync_status","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","update","vzip","vzip","test_range","test_update","AvailabilityProvider","BlockRequest","Builder","FetchingDataSource","Id","StorageReadGuard","StorageWriteGuard","WithTransaction","__clone_box","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","block_height","block_height","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","builder","clone","clone","clone_into","clone_into","cmp","commit","compare","connect","count_proposals","count_transactions","create","create_with_store","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","disable_proactive_fetching","drop","drop","drop","drop","drop","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","get_block","get_block_range","get_block_with_transaction","get_hash","get_leaf","get_leaf_range","get_payload","get_payload_range","get_proposals","hash","header","init","init","init","init","init","insert_block","insert_leaf","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","metrics","new","open","open_with_store","partial_cmp","payload_size","populate_metrics","revert","skip_version","storage","storage_mut","sync_status","to_owned","to_owned","to_string","transaction","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","with_major_scan_interval","with_minor_scan_interval","with_proactive_range_chunk_size","with_range_chunk_size","with_retry_delay","test_counters","test_proposer_queries","test_sync_status","test_reset","test_revert","Builder","Config","Error","Migration","Query","SqlDataSource","Transaction","client","connect","connect","create","handle_event","include_migrations","postgres","reset","testing","transaction","TmpDb","test_metrics","AvailabilityStorage","FileSystemStorage","NoStorage","SqlStorage","fs","get_block","get_block_range","get_block_with_transaction","get_header","get_leaf","get_leaf_range","get_payload","get_payload_range","no_storage","sql","FileSystemStorage","as_any","as_any_mut","block_height","borrow","borrow_mut","commit","count_proposals","count_transactions","create","create_with_store","deref","deref_mut","drop","fmt","from","get_block","get_block_range","get_block_with_transaction","get_header","get_leaf","get_leaf_range","get_payload","get_payload_range","get_proposals","init","insert_block","insert_leaf","into","into_any","into_any_arc","into_any_rc","open","open_with_store","payload_size","revert","skip_version","sync_status","try_from","try_into","type_id","vzip","NoStorage","__clone_box","__clone_box","as_any","as_any_mut","block_height","borrow","borrow_mut","clone","clone_into","commit","count_proposals","count_transactions","default","deref","deref_mut","drop","fmt","from","get_block","get_block_range","get_block_with_transaction","get_header","get_leaf","get_leaf_range","get_payload","get_payload_range","get_proposals","init","insert_block","insert_leaf","into","into_any","into_any_arc","into_any_rc","payload_size","revert","sync_status","testing","to_owned","try_from","try_into","type_id","vzip","DataSource","NoStorage","NoStorage","Sql","Sql","Storage","as_any","as_any","as_any_mut","as_any_mut","block_height","block_height","borrow","borrow","borrow_mut","borrow_mut","commit","connect","count_proposals","count_transactions","create","deref","deref","deref_mut","deref_mut","drop","drop","from","from","get_block","get_block_range","get_block_with_transaction","get_leaf","get_leaf_range","get_payload","get_payload_range","get_proposals","handle_event","init","init","insert_block","insert_leaf","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","metrics","payload_size","populate_metrics","reset","revert","setup","sync_status","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","fetch_from_port","Config","Error","Migration","Query","SqlStorage","Transaction","__clone_box","__clone_box","__clone_box","__clone_box","applied_on","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_ref","as_ref","backtrace","block_height","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","builder","chain","checksum","client","client","client","clone","clone","clone_into","clone_into","cmp","commit","compare","connect","connect","context","count_proposals","count_transactions","database","default","default_migrations","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","downcast","downcast_mut","downcast_ref","drop","drop","drop","drop","drop","drop","drop","eq","equivalent","equivalent","equivalent","equivalent","execute","execute_many","execute_many_with_retries","execute_one","execute_one_with_retries","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_str","get_block","get_block_range","get_block_with_transaction","get_header","get_leaf","get_leaf_range","get_payload","get_payload_range","get_proposals","header","header","host","include_dir","include_migrations","init","init","init","init","init","insert_block","insert_leaf","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","is","migrations","msg","name","new","no_migrations","partial_cmp","password","payload_size","port","postgres","prefix","query","query_one","query_one_static","query_opt","query_opt_static","query_static","reset_schema","revert","root_cause","schema","sql","sync_status","testing","tls","to_owned","to_owned","to_string","to_string","transaction","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","unapplied","upsert","user","version","vzip","vzip","vzip","vzip","vzip","TmpDb","as_any","as_any_mut","borrow","borrow_mut","config","deref","deref_mut","drop","drop","fmt","from","host","init","init","into","into_any","into_any_arc","into_any_rc","port","try_from","try_into","type_id","vzip","Callback","Fetcher","LocalCallback","Provider","Request","__clone_box","__clone_box","as_any","as_any_mut","borrow","borrow_mut","clone","clone_into","default","deref","deref_mut","drop","fmt","from","init","into","into_any","into_any_arc","into_any_rc","provider","request","run","run","spawn_fetch","to_owned","try_from","try_into","type_id","vzip","with_retry_delay","AnyProvider","NoFetching","Provider","QueryServiceProvider","TestProvider","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","block","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","default","default","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","fail","fetch","fetch","fetch","fetch","fetch","fetch","fetch","fmt","fmt","fmt","fmt","from","from","from","from","init","init","init","init","into","into","into","into","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","new","new","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","unblock","unfail","vzip","vzip","vzip","vzip","with_block_provider","with_leaf_provider","with_provider","LeafRequest","PayloadRequest","Request","Response","__clone_box","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref_mut","deref_mut","drop","drop","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","from","get_hash","get_hash","hash","hash","init","init","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Counter","Gauge","Histogram","Label","MetricsError","NoSuchMetric","NoSuchSubgroup","Prometheus","PrometheusMetrics","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","add","add_point","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_error_source","backtrace","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cause","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","create_counter","create_gauge","create_histogram","create_label","default","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","description","drop","drop","drop","drop","drop","drop","export","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","get","get","get","get_counter","get_gauge","get_histogram","get_label","get_subgroup","header","in_current_span","init","init","init","init","init","init","into","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","mean","sample_count","set","set","source","subgroup","sum","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","update","vzip","vzip","vzip","vzip","vzip","vzip","label","namespace","path","source","Custom","CustomSnafu","Error","InvalidSignatureKey","InvalidSignatureKeySnafu","LeafQueryData","NodeDataSource","Options","Query","QueryProposals","QueryProposalsSnafu","QuerySnafu","Request","RequestSnafu","SyncStatus","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","api_path","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_error_source","augment_args","augment_args_for_update","backtrace","block_height","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","build","cause","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","compare","count_proposals","count_transactions","default","define_api","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","description","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","drop","eq","equivalent","equivalent","equivalent","equivalent","extensions","fail","fail","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from_arg_matches","from_arg_matches_mut","get_hash","get_proposals","group_id","hash","header","in_current_span","init","init","init","init","init","init","init","init","internal","into","into","into","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_error","into_error","into_error","into_error","into_error","message","missing_blocks","missing_leaves","partial_cmp","payload_size","proposer","serialize","serialize","source","status","status","sync_status","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","message","proposer","source","source","source","status","Error","Internal","MempoolQueryData","Options","Request","StatusDataSource","UpdateStatusData","__clone_box","__clone_box","__clone_box","__clone_box","api_path","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_error_source","augment_args","augment_args_for_update","backtrace","block_height","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","cause","clone","clone","clone_into","clone_into","cmp","compare","consensus_metrics","consensus_metrics","default","default","define_api","deref","deref","deref","deref_mut","deref_mut","deref_mut","description","deserialize","deserialize","drop","drop","drop","eq","equivalent","equivalent","equivalent","equivalent","extensions","fmt","fmt","fmt","from","from","from","from","from","from_arg_matches","from_arg_matches_mut","get_hash","group_id","hash","header","in_current_span","init","init","init","into","into","into","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","memory_footprint","mempool_info","mempool_info","metrics","partial_cmp","populate_metrics","serialize","serialize","source","status","success_rate","success_rate","to_owned","to_owned","to_string","transaction_count","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","vzip","vzip","reason","source","consensus","mocks","setup_test","sleep","DataSourceLifeCycle","MockDataSource","MockNetwork","NUM_NODES","Storage","TestableDataSource","as_any","as_any_mut","borrow","borrow_mut","connect","create","data_source","data_source_index","deref","deref_mut","drop","drop","from","handle","handle_event","init","init","into","into_any","into_any_arc","into_any_rc","num_nodes","proposer","reset","setup","shut_down","start","storage","submit_transaction","try_from","try_into","type_id","vzip","MockHeader","MockMembership","MockNetwork","MockNodeImpl","MockPayload","MockQuorumProposal","MockTransaction","MockTypes","__clone_box","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any_mut","as_any_mut","block_header","block_number","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","cmp","compare","compare","default","default","deref","deref","deref_mut","deref_mut","deserialize","deserialize","drop","drop","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","get_hash","get_hash","hash","hash","init","init","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","iter","justify_qc","len","mock_transaction","partial_cmp","partial_cmp","payload_commitment","proposer_id","serialize","serialize","timeout_certificate","to_owned","to_owned","transaction_with_proof","transactions","try_from","try_from","try_into","try_into","type_id","type_id","upgrade_certificate","view_number","vzip","vzip"],"q":[[0,"hotshot_query_service"],[280,"hotshot_query_service::Error"],[285,"hotshot_query_service::QueryError"],[286,"hotshot_query_service::availability"],[955,"hotshot_query_service::availability::Error"],[963,"hotshot_query_service::data_source"],[1074,"hotshot_query_service::data_source::availability_tests"],[1076,"hotshot_query_service::data_source::fetching"],[1240,"hotshot_query_service::data_source::node_tests"],[1243,"hotshot_query_service::data_source::persistence_tests"],[1245,"hotshot_query_service::data_source::sql"],[1262,"hotshot_query_service::data_source::sql::testing"],[1263,"hotshot_query_service::data_source::status_tests"],[1264,"hotshot_query_service::data_source::storage"],[1279,"hotshot_query_service::data_source::storage::fs"],[1321,"hotshot_query_service::data_source::storage::no_storage"],[1365,"hotshot_query_service::data_source::storage::no_storage::testing"],[1430,"hotshot_query_service::data_source::storage::no_storage::testing::Storage"],[1431,"hotshot_query_service::data_source::storage::sql"],[1630,"hotshot_query_service::data_source::storage::sql::testing"],[1654,"hotshot_query_service::fetching"],[1689,"hotshot_query_service::fetching::provider"],[1804,"hotshot_query_service::fetching::request"],[1869,"hotshot_query_service::metrics"],[2044,"hotshot_query_service::metrics::MetricsError"],[2048,"hotshot_query_service::node"],[2300,"hotshot_query_service::node::Error"],[2306,"hotshot_query_service::status"],[2425,"hotshot_query_service::status::Error"],[2427,"hotshot_query_service::testing"],[2431,"hotshot_query_service::testing::consensus"],[2470,"hotshot_query_service::testing::mocks"],[2563,"dyn_clone::sealed"],[2564,"dyn_clone::sealed"],[2565,"core::error"],[2566,"clap_builder::builder::command"],[2567,"snafu::backtrace_shim"],[2568,"core::option"],[2569,"alloc::string"],[2570,"core::convert"],[2571,"tide_disco::status"],[2572,"core::clone"],[2573,"hotshot_types::traits::node_implementation"],[2574,"commit"],[2575,"commit"],[2576,"core::result"],[2577,"serde::de"],[2578,"hotshot_types::data"],[2579,"core::fmt"],[2580,"core::fmt"],[2581,"clap_builder"],[2582,"hotshot_types::traits::storage"],[2583,"core::hash"],[2584,"core::marker"],[2585,"core::hash"],[2586,"hotshot_types::simple_certificate"],[2587,"hotshot_types::simple_certificate"],[2588,"core::hash"],[2589,"core::fmt"],[2590,"alloc::sync"],[2591,"alloc::rc"],[2592,"hotshot::types::handle"],[2593,"hotshot_types::traits::node_implementation"],[2594,"serde::ser"],[2595,"core::cmp"],[2596,"core::cmp"],[2597,"snafu"],[2598,"tide_disco::api"],[2599,"tide_disco::request"],[2600,"core::future::future"],[2601,"core::pin"],[2602,"futures_core::stream"],[2603,"core::marker"],[2604,"hotshot_types::data"],[2605,"hotshot_types::simple_certificate"],[2606,"std::path"],[2607,"anyhow"],[2608,"atomic_store::atomic_store"],[2609,"hotshot_types::event"],[2610,"core::default"],[2611,"hotshot_types::traits::metrics"],[2612,"async_lock::rwlock"],[2613,"async_lock::rwlock"],[2614,"time::offset_date_time"],[2615,"std::backtrace"],[2616,"anyhow"],[2617,"tokio_postgres::to_statement"],[2618,"core::iter::traits::collect"],[2619,"tokio_postgres::config"],[2620,"refinery_core::runner"],[2621,"refinery_core::error"],[2622,"postgres_types"],[2623,"url"],[2624,"hotshot_types::traits::metrics"],[2625,"async_lock::rwlock"]],"d":["","","Contains the error value","","There was an error while trying to fetch the requested …","","This is the consensus-internal analogous concept to a …","","The requested resource exists but is not currently …","SNAFU context selector for the QueryError::Missing variant","","The requested resource does not exist or is not known to …","SNAFU context selector for the QueryError::NotFound variant","Contains the success value","","","","","A reference to a T which can be resolved into a whole T.","","SNAFU context selector for the QueryError::Error variant","","Item within a Payload.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Queries for HotShot chain state.","","","","Block header.","Optional block payload.","","","","","","","","","","","","","","","Consume the selector and return the associated error","Consume the selector and return the associated error","Consume the selector and return the associated error","","","","","","","","","","","","","","","","","Get a commitment to the underlying object.","","","Persistent storage and sources of data consumed by APIs.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Consume the selector and return a Result with the …","Consume the selector and return a Result with the …","Consume the selector and return a Result with the …","Fetching missing data from remote providers.","Fill this leaf with the block payload.","Fill this leaf with the block payload, without checking …","","","","","","","","","","Returns the argument unchanged.","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Create a leaf from information stored about a view.","Create a new leaf from its components.","The block header contained in this leaf.","Optional block payload.","","Height of this leaf in the chain.","The QC linking this leaf to its parent in the chain.","Commitment to this leaf’s parent.","A commitment to the block payload contained in this leaf.","Identity of the network participant who proposed this leaf.","Time when this leaf was created.","","","","","","","","Embed migrations from the given directory into the current …","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","Per spec, justification","","","A node’s view of a HotShot chain","","The hash of the parent Leaf So we can ask if it extends","","the proposer id of the leaf","Run an instance of the HotShot Query service with no …","","","","","","Queries for node-specific state and uncommitted data.","","","","","","","","","","","","","","","","","","","","","","","","","","","","Get the underlying object if it is available without …","","","","","","","","","","","CurView from leader when proposing leaf","","","","","","","","","","","","","","An interface for querying a HotShot blockchain.","A block hash is the hash of the block header.","","","","","","SNAFU context selector for the Error::Custom variant","","","An in-progress request to fetch some data.","","SNAFU context selector for the Error::FetchBlock variant","","SNAFU context selector for the Error::FetchLeaf variant","","SNAFU context selector for the Error::FetchTransaction …","","","A proof that a certain transaction exists in the block.","","","SNAFU context selector for the …","Enumerate the transactions in this block.","","","","","","","","","","","","A block payload whose contents (e.g. individual …","","","SNAFU context selector for the Error::Request variant","","","","","An index which can be used to efficiently retrieve a …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Consume the selector and return the associated error","Consume the selector and return the associated error","Consume the selector and return the associated error","Consume the selector and return the associated error","Consume the selector and return the associated error","Get the index of the transaction with a given hash, if it …","Get the index of the transaction with a given hash, if it …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Convert this Fetch to a Result with the provided error …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Enumerate the transactions in the block with their indices.","Enumerate the transactions in the block with their indices.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Additional API specification files to merge with …","Consume the selector and return a Result with the …","Consume the selector and return a Result with the …","Consume the selector and return a Result with the …","Consume the selector and return a Result with the …","Consume the selector and return a Result with the …","Timeout for failing requests due to missing data.","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","","","","Returns the block containing a transaction with the given …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Whether this block is empty of transactions.","Whether this block is empty of transactions.","","List the transaction indices in the block.","","","The number of transactions in the block.","","Transform the result of this fetch.","","","Collect information about a Leaf.","","Get the index of the nth transaction.","Get the index of the nth transaction.","Get the nth transaction.","Get the nth transaction.","Get the nth transaction, along with an inclusion proof.","Get the nth transaction, along with an inclusion proof.","","","","","","","","Get an inclusion proof for a transaction with a given …","Get an inclusion proof for a transaction with a given …","","","","","","Wait for the data to become available, if it is not …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Get a transaction by its block-specific index.","Get a transaction by its block-specific index.","","","Get the transaction with a given hash, if it is in the …","Get the transaction with a given hash, if it is in the …","","Get the transaction with a given hash, if it is in the …","Get the transaction with a given hash, if it is in the …","Get a transaction by its block-specific index, along with …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Get the requested data if it is available immediately.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Convert this Fetch to a Result with the provided error …","Wait for the requested data to become available, but only …","","","","","","","","","","","Wrapper to add extensibility to an existing data source.","","A data source for the APIs provided in this crate, backed …","A minimal data source for the status API provided in this …","","An extension trait for types which implement the update …","A data source with an atomic transaction-based …","","","","","","","","","","","Generic tests we can instantiate for all the availability …","","","","","","","","","","","","Atomically commit to all outstanding modifications to the …","","","","","","","","Create a new FileSystemDataSource with storage at path.","","","Create a new FileSystemDataSource using a persistent …","","","","","","","","Asynchronous retrieval of missing data.","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","Access the underlying data source.","Mutably access the underlying data source.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","Generic tests we can instantiate for all the node data …","Open an existing FileSystemDataSource from storage at path.","Open an existing FileSystemDataSource using a persistent …","","Generic tests we can instantiate for any data source with …","","","","","","Erase all oustanding modifications to the data.","","Advance the version of the persistent store without …","","Generic tests we can instantiate for all the status data …","Persistent storage for data sources.","","","","","","","","","","Update query state based on a new consensus event.","","","","","A provider which can be used as a fetcher by the …","A request to fetch a block.","Builder for FetchingDataSource with configuration.","The most basic kind of data source.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Build a FetchingDataSource with these options.","Build a FetchingDataSource with the given storage and …","","","","","","","","Connect to a remote database.","","","Create a new FileSystemDataSource with storage at path.","Create a new FileSystemDataSource using a persistent …","","","","","","","","","","","","","","Run without proactive fetching.","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Returns the argument unchanged.","","","","","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","Construct a new builder with the given storage and fetcher …","Open an existing FileSystemDataSource from storage at path.","Open an existing FileSystemDataSource using a persistent …","","","","","Advance the version of the persistent store without …","Obtain direct, read-only access to the underlying local …","Obtain direct, mutable access the underlying local storage.","","","","","Access the transaction which is accumulating all …","","","","","","","","","","","","","","","","","","","","","Set the interval (denominated in minor scans) between …","Set the time interval between minor proactive fetching …","Set the number of items to process at a time when scanning …","Set the number of items to process at a time when loading …","Set the maximum delay between retries of fetches.","","","","","","","","The Error type, a wrapper around a dynamic error type.","Represents a schema migration to be run on the database, …","","A data source for the APIs provided in this crate, backed …","","","Connect to a remote database.","","","","Embed migrations from the given directory into the current …","","","","Access the transaction which is accumulating all …","","","Persistent storage for a HotShot blockchain.","","","","","","","","","","","","","","","Storage for the APIs provided in this crate, backed by a …","","","","","","","","","Create a new FileSystemStorage with storage at path.","Create a new FileSystemStorage using a persistent storage …","","","","","Returns the argument unchanged.","","","","","","","","","","","","","Calls U::from(self).","","","","Open an existing FileSystemStorage from storage at path.","Open an existing FileSystemStorage using a persistent …","","","Advance the version of the persistent store without …","","","","","","Mock storage implementation which doesn’t actually store …","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","","","","","","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","Either Postgres or no storage.","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the block containing a transaction with the given …","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","Postgres client config.","The Error type, a wrapper around a dynamic error type.","Represents a schema migration to be run on the database, …","","Storage for the APIs provided in this crate, backed by a …","An atomic SQL transaction.","","","","","Get the timestamp from when the Migration was applied. None…","","","","","","","","","","","","","Get the backtrace for this Error.","","","","","","","","","","","","Connect to the database, setting options on the underlying …","An iterator of the chain of source errors contained by …","Get the Migration checksum. Checksum is formed from the …","","","","","","","","","","","Connect to the database with this config.","Connect to a remote database.","Wrap the error value with additional context.","","","Set the name of the database to connect to.","","The migrations requied to build the default schema for …","","","","","","","","","","","","","Attempt to downcast the error object to a concrete type.","Downcast this error object by mutable reference.","Downcast this error object by reference.","","","","","","","","","","","","","Execute a statement against the underlying database.","Execute a statement that is expected to modify at least …","Execute a statement that is expected to modify at least …","Execute a statement that is expected to modify exactly one …","Execute a statement that is expected to modify exactly one …","","","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","","","","","","","","","Set the hostname of the database server.","Embed the contents of a directory in your crate.","Embed migrations from the given directory into the current …","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","Returns true if E is the type held by this error object.","Add custom migrations to run when connecting to the …","Create a new error object from a printable error message.","Get the Migration Name","Create a new error object from any error type.","Skip all migrations when connecting to the database.","","Set a password for connecting to the database.","","Set the port on which to connect to the database.","","Get the Prefix","","Query the underlying SQL database, returning exactly one …","Query the underlying SQL database with no parameters, …","Query the underlying SQL database, returning zero or one …","Query the underlying SQL database with no parameters, …","Query the underlying SQL database with no parameters.","Reset the schema on connection.","","The lowest level cause of this error — this error’s …","Set the name of the schema to use for queries.","","","","Use TLS for an encrypted connection to the database.","","","","","Access the transaction which is accumulating all …","","","","","","","","","","","","","","","","Create an unapplied migration, name and version are parsed …","","Set the DB user to connect as.","Get the Migration version","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","Calls U::from(self).","","","","","","","","","A callback to process the result of a request.","Management of concurrent requests to fetch resources.","A callback to process the result of a request.","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","Asynchronous fetching from external data availability …","Requests for fetching resources.","","","Fetch a resource, if it is not already being fetched.","","","","","","","Adaptor combining multiple data availability providers.","Trivial Provider where fetching always fails.","A provider which is able to satisfy requests for data of …","Data availability provider backed by another instance of …","Adaptor to add test-only functionality to an existing …","","","","","","","","","","","","","","","","","Delay fetch requests until unblock.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Cause subsequent requests to fail.","Fetch a resource.","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Allow blocked fetch requests to proceed.","Stop requests from failing as a result of a previous call …","","","","","Add a sub-provider which fetches blocks.","Add a sub-provider which fetches leaves.","Add a sub-provider which fetches both blocks and leaves.","A request for a leaf with a given height.","A request for a payload with a given commitment.","A request for a resource.","The type of resource that will be returned as a successful …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","A Counter metric.","A Gauge metric.","A Histogram metric.","A Label metric.","","","","","A Prometheus-based implementation of a Metrics registry.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Get a counter in this sub-group by name.","Get a gauge in this sub-group by name.","Get a histogram in this sub-group by name.","Get a label in this sub-group by name.","Get a (possibly nested) subgroup of this group by its path.","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","SNAFU context selector for the Error::Custom variant","","","SNAFU context selector for the Error::InvalidSignatureKey …","","","","","","SNAFU context selector for the Error::QueryProposals …","SNAFU context selector for the Error::Query variant","","SNAFU context selector for the Error::Request variant","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Consume the selector and return the associated error","Consume the selector and return the associated error","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Additional API specification files to merge with …","Consume the selector and return a Result with the …","Consume the selector and return a Result with the …","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Additional API specification files to merge with …","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Backing storage for the data source.","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","Calls U::from(self).","","","","","","","Setup runs after setting up the network but before …","","","","","","","","","","","","","","","","","","","","","","","","","The block header to append","Block number.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","Per spec, justification","","","","","VID commitment to the payload.","the propser id","","","Possible timeout certificate. Only present if the …","","","","List of transactions.","","","","","","","Possible upgrade certificate, which the leader may …","CurView from leader when proposing leaf","",""],"i":[7,7,154,0,10,0,0,0,10,0,7,10,0,154,0,0,0,0,0,0,0,7,0,17,17,7,7,11,11,12,12,13,13,10,10,17,7,11,12,13,10,25,17,7,11,12,13,10,25,7,10,25,25,0,25,7,10,17,17,17,7,11,12,13,10,25,17,7,11,12,13,10,25,11,12,13,7,7,10,17,7,11,12,13,10,17,7,11,12,13,10,17,21,17,17,0,25,17,7,11,12,13,10,25,17,7,11,12,13,10,25,7,10,17,7,10,17,7,11,12,13,10,25,17,17,17,17,17,11,12,13,0,17,17,17,17,7,7,11,12,13,10,10,17,7,7,7,7,7,11,12,13,10,25,25,25,17,17,17,17,17,17,17,17,17,17,17,25,17,17,7,10,7,10,0,17,7,11,12,13,10,25,0,0,0,0,0,7,17,7,11,12,13,10,25,17,7,11,12,13,10,25,17,7,11,12,13,10,25,17,7,11,12,13,10,25,11,12,13,17,13,0,0,25,17,25,17,0,17,7,10,7,10,0,7,10,25,0,17,7,11,12,13,10,17,7,10,17,7,11,12,13,10,25,17,7,11,12,13,10,25,21,17,17,7,11,12,13,10,25,25,25,17,17,7,11,12,13,10,25,218,219,220,221,218,222,0,0,0,0,58,0,37,0,0,120,0,37,0,37,0,37,0,87,88,80,0,37,0,80,0,0,0,58,87,88,0,88,0,58,94,0,94,37,0,0,0,0,0,80,0,0,0,87,87,88,88,68,68,67,67,89,89,70,70,71,71,90,90,91,91,92,92,72,72,73,73,74,74,75,75,76,76,37,37,100,94,87,88,68,67,89,70,71,90,91,100,92,72,73,74,75,76,37,94,87,88,68,67,89,70,71,90,91,100,92,72,73,74,75,76,37,67,37,100,100,67,37,68,70,71,94,87,88,68,67,89,70,71,90,91,100,92,72,73,74,75,76,37,94,87,88,68,67,89,70,71,90,91,100,92,72,73,74,75,76,37,72,73,74,75,76,80,80,67,37,87,88,68,67,89,70,71,90,91,92,72,73,74,75,76,37,87,88,68,67,89,70,71,90,91,92,72,73,74,75,76,37,87,88,87,88,94,70,100,0,94,87,88,68,67,89,70,71,90,91,100,92,72,73,74,75,76,37,94,87,88,68,67,89,70,71,90,91,100,92,72,73,74,75,76,37,67,37,68,89,70,71,90,91,37,94,87,88,68,67,89,70,71,90,91,100,92,72,73,74,75,76,37,80,80,89,87,88,68,89,70,71,90,91,87,87,87,87,88,88,88,88,68,68,68,68,89,89,89,89,70,70,70,70,71,71,71,71,90,90,90,90,91,91,91,91,100,72,73,74,75,76,100,87,87,88,88,68,67,67,89,70,71,90,91,92,72,73,74,75,76,37,37,94,87,87,87,88,88,88,68,67,89,70,70,71,90,90,91,100,92,72,73,74,75,76,37,37,37,100,100,68,89,58,58,58,87,88,58,58,58,58,100,87,88,68,89,70,71,90,87,88,68,67,89,90,37,68,89,70,71,90,75,67,37,75,94,87,88,68,67,89,70,71,90,91,100,92,72,73,74,75,76,37,120,120,37,94,87,88,68,67,89,70,71,90,91,100,92,72,73,74,75,76,37,94,87,88,68,67,89,70,71,90,91,100,92,72,73,74,75,76,37,87,88,68,67,89,70,71,90,91,100,92,72,73,74,75,76,37,94,87,88,68,67,89,70,71,90,91,100,92,72,73,74,75,76,37,92,72,73,74,75,76,94,80,80,89,80,68,67,80,89,94,76,89,68,89,80,80,80,80,80,80,89,90,87,88,89,68,89,80,80,68,89,90,68,67,94,72,73,74,68,89,70,71,90,91,37,89,70,90,67,37,37,76,58,58,58,58,58,58,87,88,68,67,89,70,71,90,91,92,72,73,74,75,76,37,87,88,67,37,80,80,89,71,80,80,89,80,80,80,94,87,88,68,67,89,70,71,90,91,100,92,72,73,74,75,76,37,94,87,88,68,67,89,70,71,90,91,100,92,72,73,74,75,76,37,94,94,87,88,68,67,89,70,71,90,91,100,92,72,73,74,75,76,37,100,100,94,87,88,68,67,89,70,71,90,91,100,92,72,73,74,75,76,37,94,94,223,223,224,225,226,227,228,224,0,62,0,0,0,0,0,0,0,127,127,128,128,127,128,127,128,127,127,0,127,127,128,127,128,127,128,127,128,127,128,62,127,130,127,128,127,127,130,130,127,128,130,128,127,128,127,128,127,128,0,127,128,127,128,127,127,127,127,127,127,127,127,130,127,128,127,128,127,127,127,127,127,128,127,128,127,128,127,128,127,128,127,0,130,130,127,0,127,128,130,127,128,62,127,130,0,0,0,127,127,128,127,128,127,128,127,128,61,127,128,0,0,0,0,0,0,143,0,0,143,140,140,143,143,141,140,148,149,143,141,140,148,149,143,140,140,141,140,148,149,143,141,140,148,149,143,141,140,140,143,140,143,143,140,143,140,140,140,140,140,141,140,148,148,149,149,143,141,140,148,149,149,143,141,141,140,148,149,143,143,143,143,143,143,140,143,143,141,140,148,148,149,149,143,143,143,143,140,140,140,143,140,140,140,140,140,143,143,141,140,148,149,143,140,140,141,140,148,149,143,141,140,148,149,143,141,140,148,149,143,141,140,148,149,143,140,141,140,140,143,140,140,140,140,140,140,140,140,143,143,140,141,140,148,149,143,141,140,148,149,143,141,140,148,149,143,141,140,148,149,143,141,141,141,141,141,0,0,0,0,0,0,0,0,0,0,0,0,155,155,155,155,155,0,0,155,0,155,0,0,0,0,0,0,0,142,142,142,142,142,142,142,142,0,0,0,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,0,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,0,157,157,157,157,157,0,229,158,229,158,0,229,158,229,158,158,158,229,158,229,158,158,158,158,158,158,229,158,229,158,229,158,229,158,158,158,158,158,158,158,158,158,158,229,158,158,158,229,158,229,158,229,158,229,158,158,158,158,158,158,158,158,229,158,229,158,229,158,229,158,230,0,0,0,0,0,0,160,160,144,144,160,146,160,153,144,152,146,160,153,144,152,146,146,146,152,146,160,153,144,152,146,160,153,144,152,144,146,160,164,153,152,160,144,160,144,160,152,160,144,152,146,152,152,144,144,0,146,146,160,153,144,152,146,146,160,153,144,152,146,146,146,146,146,160,153,144,152,152,160,160,160,160,160,153,153,153,153,153,146,146,160,160,144,152,146,146,146,160,153,144,144,152,144,152,152,152,152,152,152,152,152,152,146,160,144,0,0,146,160,153,144,152,152,152,146,160,153,144,152,146,160,153,144,152,146,160,153,144,152,146,160,153,144,152,146,144,146,160,146,144,160,144,152,144,0,160,164,164,164,164,164,164,144,152,146,144,160,152,0,144,160,144,146,160,152,146,160,153,144,152,146,160,153,144,152,146,160,153,144,152,160,153,144,160,146,160,153,144,152,0,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,0,0,0,0,0,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,0,0,178,179,177,177,177,177,177,177,177,0,0,0,0,0,183,183,184,184,182,182,185,185,183,184,182,185,183,184,182,185,182,183,184,182,185,183,184,182,185,183,184,182,185,183,184,182,185,183,185,183,184,182,185,183,184,182,185,183,184,182,185,182,181,183,183,184,184,182,185,183,184,182,185,183,184,182,185,183,184,182,185,183,184,182,185,183,184,182,185,183,184,182,185,183,184,182,185,184,182,183,184,182,185,183,184,182,185,183,184,182,185,183,184,182,185,182,182,183,184,182,185,183,183,183,0,0,0,180,186,186,187,187,186,187,186,187,186,187,186,187,186,187,186,187,186,187,186,187,186,187,186,187,186,186,186,186,187,187,187,187,186,187,186,187,187,186,187,186,187,186,187,186,187,186,187,186,187,186,187,186,187,186,187,186,187,186,187,186,187,0,0,0,0,0,192,192,192,0,138,138,189,189,193,193,190,190,194,194,189,190,192,138,189,193,190,194,192,138,189,193,190,194,192,192,192,138,189,193,190,194,192,138,189,193,190,194,192,138,189,193,190,194,138,189,193,190,194,138,138,138,138,138,192,138,189,193,190,194,192,138,189,193,190,194,192,192,138,189,193,190,194,138,192,192,138,189,193,190,194,192,192,138,189,193,190,194,189,193,194,138,138,138,138,138,192,192,192,138,189,193,190,194,192,138,189,193,190,194,192,138,189,193,190,194,192,138,189,193,190,194,192,138,189,193,190,194,190,190,193,194,192,138,190,138,189,193,190,194,192,192,138,189,193,190,194,192,138,189,193,190,194,192,138,189,193,190,194,193,192,138,189,193,190,194,231,231,232,233,36,0,0,36,0,0,0,0,36,36,0,0,36,0,0,203,203,204,204,205,205,206,206,201,201,202,202,36,36,207,203,207,204,205,206,201,202,36,203,207,204,205,206,201,202,36,36,207,207,36,59,203,207,204,205,206,201,202,36,203,207,204,205,206,201,202,36,201,202,36,203,204,205,206,201,202,36,203,204,205,206,201,202,36,203,203,59,59,207,0,203,207,204,205,206,201,202,36,203,207,204,205,206,201,202,36,36,203,36,203,207,204,205,206,201,202,36,203,203,203,203,203,207,201,202,203,204,205,206,201,202,36,36,203,207,204,205,206,201,202,36,36,36,36,207,207,203,59,207,203,36,36,203,207,204,205,206,201,202,36,36,203,207,204,205,206,201,202,36,203,207,204,205,206,201,202,36,203,207,204,205,206,201,202,36,203,207,204,205,206,201,202,36,204,205,206,201,202,202,203,203,203,59,206,203,36,36,36,202,59,203,204,205,206,201,202,36,36,203,207,204,205,206,201,202,36,203,207,204,205,206,201,202,36,203,207,204,205,206,201,202,36,207,207,203,207,204,205,206,201,202,36,234,235,236,237,235,234,0,38,0,0,38,0,0,208,208,38,38,209,208,209,38,208,209,38,38,209,209,38,60,208,209,38,208,209,38,38,208,38,208,38,208,208,60,60,208,209,0,208,209,38,208,209,38,38,208,38,208,209,38,208,208,208,208,208,209,208,38,38,208,209,38,38,38,209,209,208,209,208,38,38,208,209,38,208,209,38,208,209,38,208,209,38,208,209,38,208,60,60,60,208,210,208,38,38,38,60,60,208,38,38,208,208,209,38,208,209,38,208,209,38,209,209,208,209,38,238,239,0,0,0,0,0,0,0,0,212,0,159,159,159,159,212,212,159,159,159,159,159,159,159,159,212,159,159,159,159,159,159,159,159,212,212,159,159,159,159,159,159,159,159,0,0,0,0,0,0,0,0,134,134,213,213,134,213,134,213,240,241,134,213,134,213,134,213,134,213,134,213,134,213,134,213,134,213,134,213,134,213,134,213,134,213,134,134,134,134,213,213,213,213,134,213,134,213,134,213,134,213,134,213,134,213,134,213,134,213,134,213,216,240,216,0,134,213,241,240,134,213,240,134,213,216,216,134,213,134,213,134,213,240,240,134,213],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,5,[]],[-1,5,[]],[6,6],[6,6],0,0,[7,[[9,[8]]]],[10,[[9,[8]]]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[11,10],[12,10],[[[13,[-1]]],10,[[15,[14]]]],[[16,14],7],[7,[[9,[5]]]],[10,[[9,[5]]]],[[[17,[-1]]],[[17,[-1]]],[18,19]],[7,7],[11,11],[12,12],[[[13,[-1]]],[[13,[-1]]],18],[10,10],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[17,[-1]]],[[20,[[17,[-1]]]]],19],[21,[[20,[-1]]],22],[-1,[[20,[-2]]],[],[]],[[[17,[-1]],23,24],[],19],0,[[],25],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[7,27],[10,27],[-1,[[28,[[17,[-2]]]]],29,19],[-1,[[28,[7]]],29],[-1,[[28,[10]]],29],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[[[17,[-1]],[17,[-1]]],30,19],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[11,[[28,[-1,10]]],[]],[12,[[28,[-1,10]]],[]],[[[13,[-1]]],[[28,[-2,10]]],[[15,[14]]],[]],0,[[[17,[-1]],26],[[28,[2,31]]],19],[[[17,[-1]]],2,19],[[[17,[-1]],32],[[28,[2,33]]],19],[[[17,[-1]],32],[[28,[2,33]]],[34,19]],[[7,32],35],[[7,32],35],[[11,32],35],[[12,32],35],[[[13,[-1]],32],35,34],[[10,32],35],[[10,32],35],[-1,-1,[]],[36,7],[[[2,[14,16]]],7],[37,7],[38,7],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[39,[[28,[25,40]]]],[39,[[28,[25,40]]]],[[[41,[-1]]],[[17,[-1]]],19],[[],[[17,[-1]]],19],[[[17,[-1]]],[],19],[[[17,[-1]]],9,19],[[-1,-2],24,[42,43],44],[[[17,[-1]]],24,19],[[[17,[-1]]],[[47,[-1,[45,[-1]],46]]],19],[[[17,[-1]]],[[20,[[17,[-1]]]]],19],[[[17,[-1]]],[],19],[[[17,[-1]]],[],19],[[[17,[-1]]],[],19],[[],[[9,[48]]]],[[[17,[-1]],-2],2,19,49],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[-1,[],[]],[-1,[],[]],0,[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],0,0,0,0,0,[-1,7,51],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[11,-1],10,[]],[[12,-1],10,[]],[[[13,[-1]],-2],10,[[15,[14]]],[]],0,0,0,0,0,0,0,0,[[25,-2,[57,[-1,-3]]],[[28,[2,7]]],19,[[58,[-1]],[59,[-1]],60,[61,[-1]],62,52,53],[[63,[-1]]]],[[[17,[-1]],-2],28,[19,64],65],[[7,-1],28,65],[[10,-1],28,65],[7,[[9,[5]]]],[10,[[9,[5]]]],0,[7,16],[10,16],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[21,[[28,[-1,21]]],22],[-1,[[28,[-2,-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[[25,39],[[28,[2,40]]]],[[25,39],[[28,[2,40]]]],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],0,[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,5,[]],[-1,5,[]],[6,6],[6,6],[[[67,[-1]]],[[9,[8]]],19],[37,[[9,[8]]]],[[[68,[-1]]],[[69,[-1]]],19],[[[70,[-1]]],[[69,[-1]]],19],[[[71,[-1]]],[[69,[-1]]],19],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[72,[-1]]],37,[[15,[14]]]],[[[73,[-1]]],37,[[15,[14]]]],[[[74,[-1]]],37,[[15,[14]]]],[[[75,[-1,-2]]],37,[[15,[24]]],[[15,[24]]]],[[[76,[-1,-2]]],37,[[15,[14]]],[[15,[16]]]],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,[20,[-5]]],[[9,[-1]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[],[]],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,[20,[-5]]],[[9,[-1]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[],[]],[[[67,[-1]]],[[9,[5]]],19],[37,[[9,[5]]]],[[[87,[-1]]],[[87,[-1]]],19],[[[88,[-1]]],[[88,[-1]]],19],[[[68,[-1]]],[[68,[-1]]],[18,19]],[[[67,[-1]]],[[67,[-1]]],[18,19]],[[[89,[-1]]],[[89,[-1]]],[18,19]],[[[70,[-1]]],[[70,[-1]]],[18,19]],[[[71,[-1]]],[[71,[-1]]],[18,19]],[[[90,[-1]]],[[90,[-1]]],[18,19]],[[[91,[-1]]],[[91,[-1]]],[18,19]],[92,92],[[[72,[-1]]],[[72,[-1]]],18],[[[73,[-1]]],[[73,[-1]]],18],[[[74,[-1]]],[[74,[-1]]],18],[[[75,[-1,-2]]],[[75,[-1,-2]]],18,18],[[[76,[-1,-2]]],[[76,[-1,-2]]],18,18],[37,37],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[87,[-1]],[87,[-1]]],93,19],[[[88,[-1]],[88,[-1]]],93,19],[[-1,-2],93,[],[]],[[-1,-2],93,[],[]],[[[94,[-1]],-3],[[28,[-1,-2]]],[],[5,95],[[98,[-2],[[96,[97]]]]]],[[[70,[-1]]],[[99,[-1]]],19],[[],100],[100,[[28,[[101,[-1,37]],102]]],[52,53,103]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[[[67,[-1]]],27,19],[37,27],[-1,[[28,[[68,[-2]]]]],29,19],[-1,[[28,[[89,[-2]]]]],29,19],[-1,[[28,[[70,[-2]]]]],29,19],[-1,[[28,[[71,[-2]]]]],29,19],[-1,[[28,[[90,[-2]]]]],29,19],[-1,[[28,[[91,[-2]]]]],29,19],[-1,[[28,[37]]],29],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4],[[54,[86]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[]],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4],[[54,[86]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[]],[[[89,[-1]]],[[0,[[86,[],[[85,[[2,[[104,[-1]],[105,[-1]]]]]]]]]]],19],[[[87,[-1]],[87,[-1]]],30,19],[[[88,[-1]],[88,[-1]]],30,19],[[[68,[-1]],[68,[-1]]],30,[81,19]],[[[89,[-1]],[89,[-1]]],30,[81,19]],[[[70,[-1]],[70,[-1]]],30,[81,19]],[[[71,[-1]],[71,[-1]]],30,[81,19]],[[[90,[-1]],[90,[-1]]],30,[81,19]],[[[91,[-1]],[91,[-1]]],30,[81,19]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],0,[[[72,[-1]]],[[28,[-2,37]]],[[15,[14]]],[]],[[[73,[-1]]],[[28,[-2,37]]],[[15,[14]]],[]],[[[74,[-1]]],[[28,[-2,37]]],[[15,[14]]],[]],[[[75,[-1,-2]]],[[28,[-3,37]]],[[15,[24]]],[[15,[24]]],[]],[[[76,[-1,-2]]],[[28,[-3,37]]],[[15,[14]]],[[15,[16]]],[]],0,[[[87,[-1]],32],35,19],[[[87,[-1]],32],35,19],[[[88,[-1]],32],35,19],[[[88,[-1]],32],35,19],[[[68,[-1]],32],35,[34,19]],[[[67,[-1]],32],35,[34,19]],[[[67,[-1]],32],35,19],[[[89,[-1]],32],35,[34,19]],[[[70,[-1]],32],35,[34,19]],[[[71,[-1]],32],35,[34,19]],[[[90,[-1]],32],35,[34,19]],[[[91,[-1]],32],35,[34,19]],[[92,32],35],[[[72,[-1]],32],35,34],[[[73,[-1]],32],35,34],[[[74,[-1]],32],35,34],[[[75,[-1,-2]],32],35,34,34],[[[76,[-1,-2]],32],35,34,34],[[37,32],35],[[37,32],35],[-1,-1,[]],[26,[[87,[-1]]],19],[-1,-1,[]],[[[106,[-1]]],[[87,[-1]]],19],[26,[[88,[-1]]],19],[[[69,[-1]]],[[88,[-1]]],19],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[89,[-1]]],[[70,[-1]]],19],[-1,-1,[]],[-1,-1,[]],[[[89,[-1]]],[[90,[-1]]],19],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[107,37],[-1,-1,[]],[[[2,[14,16]]],37],[39,[[28,[100,40]]]],[39,[[28,[100,40]]]],[[],[[68,[-1]]],19],[[],[[89,[-1]]],19],[[[58,[],[[108,[-1]],[109,[-3]],[110,[-4]]]],-5],[[112,[[54,[111]]]]],[[113,[],[[85,[[94,[[68,[-2]]]]]]]],114,52],19,[[113,[],[[85,[[94,[[89,[-2]]]]]]]],114,52],[[113,[],[[85,[[94,[[70,[-2]]]]]]]],114,52],[[15,[[88,[-2]]]],52,53]],[[[58,[],[[108,[-1]],[109,[-3]],[110,[-4]]]],-5],[[112,[[54,[111]]]]],[[113,[],[[85,[[94,[[68,[-2]]]]]]]],114,52],19,[[113,[],[[85,[[94,[[89,[-2]]]]]]]],114,52],[[113,[],[[85,[[94,[[70,[-2]]]]]]]],114,52],[[115,[26]],52]],[[[58,[],[[108,[-1]],[109,[-3]],[110,[-4]]]],[116,[-2]]],[[112,[[54,[111]]]]],[[113,[],[[85,[[94,[[68,[-2]]]]]]]],114,52],19,[[113,[],[[85,[[94,[[89,[-2]]]]]]]],114,52],[[113,[],[[85,[[94,[[70,[-2]]]]]]]],114,52]],[[-1,-2],24,[42,43],44],[[-1,-2],24,[42,43],44],[[[58,[],[[108,[-1]],[109,[-3]],[110,[-4]]]],-5],[[112,[[54,[111]]]]],[[113,[],[[85,[[94,[[68,[-2]]]]]]]],114,52],19,[[113,[],[[85,[[94,[[89,[-2]]]]]]]],114,52],[[113,[],[[85,[[94,[[70,[-2]]]]]]]],114,52],[[15,[[87,[-2]]]],52,53]],[[[58,[],[[108,[-1]],[109,[-3]],[110,[-4]]]],-5],[[112,[[54,[111]]]]],[[113,[],[[85,[[94,[[68,[-2]]]]]]]],114,52],19,[[113,[],[[85,[[94,[[89,[-2]]]]]]]],114,52],[[113,[],[[85,[[94,[[70,[-2]]]]]]]],114,52],[[115,[26]],52]],[[[58,[],[[108,[-1]],[109,[-3]],[110,[-4]]]],-5],[[112,[[54,[111]]]]],[[113,[],[[85,[[94,[[68,[-2]]]]]]]],114,52],19,[[113,[],[[85,[[94,[[89,[-2]]]]]]]],114,52],[[113,[],[[85,[[94,[[70,[-2]]]]]]]],114,52],[[15,[[88,[-2]]]],52,53]],[[[58,[],[[108,[-1]],[109,[-3]],[110,[-4]]]],-5],[[112,[[54,[111]]]]],[[113,[],[[85,[[94,[[68,[-2]]]]]]]],114,52],19,[[113,[],[[85,[[94,[[89,[-2]]]]]]]],114,52],[[113,[],[[85,[[94,[[70,[-2]]]]]]]],114,52],[[115,[26]],52]],[[],[[9,[48]]]],[[[87,[-1]],-2],2,19,49],[[[88,[-1]],-2],2,19,49],[[[68,[-1]]],[[106,[-1]]],19],[[[89,[-1]]],[[69,[-1]]],19],[[[70,[-1]]],117,19],[[[71,[-1]]],[[116,[-1]]],19],[[[90,[-1]]],[[69,[-1]]],19],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[[68,[-1]]],[[118,[-1]]],19],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[[89,[-1]]],[[118,[-1]]],19],[[[90,[-1]]],[[118,[-1]]],19],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[[68,[-1]]],24,19],[[[89,[-1]]],24,19],[[[70,[-1]]],24,19],[[[71,[-1]]],24,19],[[[90,[-1]]],24,19],0,[-1,[],[]],[-1,[],[]],0,[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[[120,[],[[119,[-1]]]],[89,[-2]]],[[112,[[54,[111]]]]],[5,34,52,53],19],[[[120,[],[[119,[-1]]]],[68,[-2]]],[[112,[[54,[111]]]]],[5,34,52,53],19],[-1,37,51],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[92,-1],37,[]],[[[72,[-1]],-2],37,[[15,[14]]],[]],[[[73,[-1]],-2],37,[[15,[14]]],[]],[[[74,[-1]],-2],37,[[15,[14]]],[]],[[[75,[-1,-2]],-3],37,[[15,[24]]],[[15,[24]]],[]],[[[76,[-1,-2]],-3],37,[[15,[14]]],[[15,[16]]],[]],[[[94,[-1]]],-2,52,[]],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4],30,[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[]],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4],30,[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[]],[[[89,[-1]]],30,19],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4],-2,[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[]],[[[68,[-1]]],[[17,[-1]]],19],0,[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4],26,[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[]],[[[89,[-1]]],26,19],[[[94,[-1]],-3],[[94,[-2]]],[],[],[52,[122,[-1],[[121,[-2]]]]]],0,[[[89,[-1]]],[[123,[-1]]],19],[[[17,[-1]],[124,[-1]]],[[28,[[68,[-1]],[67,[-1]]]]],19],[[[118,[-1]],[99,[-1]]],[[89,[-1]]],19],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,26],[[9,[-1]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[]],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,26],[[9,[-1]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[]],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,26],[[9,[-5]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[],[]],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,26],[[9,[-5]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[],[]],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,26],[[9,[[2,[-5,-3]]]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[],[]],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,26],[[9,[[2,[-5,-3]]]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[],[]],[[[89,[-1]]],24,19],[[[90,[-1]]],24,19],[[[87,[-1]],[87,[-1]]],[[9,[93]]],19],[[[88,[-1]],[88,[-1]]],[[9,[93]]],19],[[[89,[-1]]],[[99,[-1]]],19],[[[68,[-1]]],117,19],[[[89,[-1]]],117,19],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,-1],[[9,[-3]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[]],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,-1],[[9,[-3]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[]],[[[68,[-1]]],[[125,[-1]]],19],[[[89,[-1]]],[[125,[-1]]],19],[[[90,[-1]]],[[125,[-1]]],19],[[[68,[-1]]],[[124,[-1]]],19],0,[[[94,[-1]]],-1,52],0,0,0,[[[68,[-1]],-2],28,19,65],[[[89,[-1]],-2],28,19,65],[[[70,[-1]],-2],28,19,65],[[[71,[-1]],-2],28,19,65],[[[90,[-1]],-2],28,19,65],[[[91,[-1]],-2],28,19,65],[[37,-1],28,65],[[[89,[-1]]],24,19],[[[70,[-1]]],24,19],[[[90,[-1]]],24,19],[[[67,[-1]]],[[9,[5]]],19],[37,[[9,[5]]]],[37,16],0,[[[58,[],[[108,[-1]],[109,[-3]],[110,[-4]]]],26],[[112,[[54,[111]]]]],[[113,[],[[85,[[94,[[68,[-2]]]]]]]],114,52],19,[[113,[],[[85,[[94,[[89,[-2]]]]]]]],114,52],[[113,[],[[85,[[94,[[70,[-2]]]]]]]],114,52]],[[[58,[],[[108,[-1]],[109,[-3]],[110,[-4]]]],26],[[112,[[54,[111]]]]],[[113,[],[[85,[[94,[[68,[-2]]]]]]]],114,52],19,[[113,[],[[85,[[94,[[89,[-2]]]]]]]],114,52],[[113,[],[[85,[[94,[[70,[-2]]]]]]]],114,52]],[[[58,[],[[108,[-1]],[109,[-3]],[110,[-4]]]],26],[[112,[[54,[111]]]]],[[113,[],[[85,[[94,[[68,[-2]]]]]]]],114,52],19,[[113,[],[[85,[[94,[[89,[-2]]]]]]]],114,52],[[113,[],[[85,[[94,[[70,[-2]]]]]]]],114,52]],[[[58,[],[[108,[-1]],[109,[-3]],[110,[-4]]]],26],[[112,[[54,[111]]]]],[[113,[],[[85,[[94,[[68,[-2]]]]]]]],114,52],19,[[113,[],[[85,[[94,[[89,[-2]]]]]]]],114,52],[[113,[],[[85,[[94,[[70,[-2]]]]]]]],114,52]],[[[58,[],[[108,[-1]],[109,[-3]],[110,[-4]]]],26],[[112,[[54,[111]]]]],[[113,[],[[85,[[94,[[68,[-2]]]]]]]],114,52],19,[[113,[],[[85,[[94,[[89,[-2]]]]]]]],114,52],[[113,[],[[85,[[94,[[70,[-2]]]]]]]],114,52]],[[[58,[],[[108,[-1]],[109,[-3]],[110,[-4]]]],26],[[112,[[54,[111]]]]],[[113,[],[[85,[[94,[[68,[-2]]]]]]]],114,52],19,[[113,[],[[85,[[94,[[89,[-2]]]]]]]],114,52],[[113,[],[[85,[[94,[[70,[-2]]]]]]]],114,52]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,-1],[[9,[-5]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[],[]],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,-1],[[9,[-5]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[],[]],[[[89,[-1]],[104,[-1]]],[[9,[[71,[-1]]]]],19],[[[71,[-1]]],[[105,[-1]]],19],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,[20,[-5]]],[[9,[-5]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[],[]],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,[20,[-5]]],[[9,[-5]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[],[]],[[[89,[-1]],[20,[[105,[-1]]]]],[[9,[[104,[-1]]]]],19],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,[20,[-5]]],[[9,[[2,[-5,-3]]]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[],[]],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,[20,[-5]]],[[9,[[2,[-5,-3]]]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[],[]],[[[80,[],[[77,[-1]],[78,[-2]],[79,[-3]]]],-4,-1],[[9,[[2,[-5,-3]]]]],[18,34,81,82,83,64,84,52,53],[[86,[],[[85,[-1]]]]],[18,34,81,82,64,84],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[[[94,[-1]]],[[28,[-1,[94,[-1]]]]],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[[100,39],[[28,[2,40]]]],[[100,39],[[28,[2,40]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[94,[-1]],-4],[[28,[-1,-2]]],[],[5,95],[[98,[-2],[[96,[97]]]]],[[122,[],[[121,[-3]]]]]],[[[94,[-1]],126],[[9,[-1]]],52],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[[[127,[-1,-2]]],-2,[],[]],[[[127,[-1,-2]]],-2,[],[]],0,[[[127,[-2,-3]]],[[112,[[54,[111]]]]],19,[[59,[-1]],52,53],[52,53]],[[[127,[-1,-2]]],[[112,[[54,[111]]]]],[60,52,53],[52,53]],[128,[[112,[[54,[111]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[127,[-1,-2]]],[[127,[-1,-2]]],18,18],[128,128],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[62,[],[[119,[-1]]]]],[[112,[[54,[111]]]]],[5,34,52,53]],[[[127,[-1,-2]]],[[112,[[54,[111]]]]],[62,52],52],[-1,[[112,[[54,[111]]]]],[]],[-1,[[112,[[54,[111]]]]],[]],[-1,[[112,[[54,[111]]]]],[]],[[[127,[-2,-3]],[125,[-1]]],[[112,[[54,[111]]]]],19,[[59,[-1]],52,53],[52,53]],[[[127,[-2,-3]]],[[112,[[54,[111]]]]],19,[[59,[-1]],52,53],[52,53]],[26,[[112,[[54,[111]]]]]],[[129,-2],[[131,[[130,[-1,-2]]]]],19,[[132,[-1]]]],[26,[[112,[[54,[111]]]]]],[26,[[112,[[54,[111]]]]]],[[133,-2],[[131,[[130,[-1,-2]]]]],19,[[132,[-1]]]],[[],128],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,2],[26,2],0,[[[127,[-1,-2]],32],35,34,34],[[128,32],35],[-1,-1,[]],[-1,-1,[]],[[[127,[-2,-3]],-4],[[112,[[54,[111]]]]],19,[[58,[-1]],52,53],[52,53],[[15,[[88,[-1]]]],52,53]],[[[127,[-2,-3]],-4],[[112,[[54,[111]]]]],19,[[58,[-1]],52,53],[52,53],[[115,[26]],52]],[[[127,[-2,-3]],[116,[-1]]],[[112,[[54,[111]]]]],19,[[58,[-1]],52,53],[52,53]],[[[127,[-2,-3]],-4],[[112,[[54,[111]]]]],19,[[58,[-1]],52,53],[52,53],[[15,[[87,[-1]]]],52,53]],[[[127,[-2,-3]],-4],[[112,[[54,[111]]]]],19,[[58,[-1]],52,53],[52,53],[[115,[26]],52]],[[[127,[-2,-3]],-4],[[112,[[54,[111]]]]],19,[[58,[-1]],52,53],[52,53],[[15,[[88,[-1]]]],52,53]],[[[127,[-2,-3]],-4],[[112,[[54,[111]]]]],19,[[58,[-1]],52,53],[52,53],[[115,[26]],52]],[[[127,[-2,-3]],[125,[-1]],[9,[26]]],[[112,[[54,[111]]]]],19,[[59,[-1]],52,53],[52,53]],[[[130,[134,-1]],[135,[134]]],[[112,[[54,[111]]]]],[[132,[134]],136]],[[[127,[-1,-2]],[135,[134]]],[[112,[[54,[111]]]]],137,[136,52,53]],[[128,[135,[134]]],[[112,[[54,[111]]]]]],[[],26],[[],26],[[[127,[-1,-2]]],-1,[],[]],[[[127,[-1,-2]]],-1,[],[]],[[[127,[-2,-3]],[89,[-1]]],[[112,[[54,[111]]]]],19,[[120,[-1]],52,53],[52,53]],[[[127,[-2,-3]],[68,[-1]]],[[112,[[54,[111]]]]],19,[[120,[-1]],52,53],[52,53]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[127,[-1,-2]]],138,[60,52,53],[52,53]],[128,138],[[-1,-2],[[127,[-1,-2]]],[],[]],0,[[129,-2],[[131,[[130,[-1,-2]]]]],19,[[132,[-1]]]],[[133,-2],[[131,[[130,[-1,-2]]]]],19,[[132,[-1]]]],[[[127,[-2,-3]]],[[112,[[54,[111]]]]],19,[[59,[-1]],52,53],[52,53]],0,[-1,[[54,[139]]],[]],[-1,[[54,[139]]],[]],[-1,[[112,[[54,[111]]]]],[]],[-1,[[112,[[54,[111]]]]],[]],[-1,[[112,[[54,[111]]]]],[]],[[[62,[],[[119,[-1]]]]],[[112,[[54,[111]]]]],[5,34,52,53]],[[[127,[-1,-2]]],[[112,[[54,[111]]]]],[62,52],52],[[[130,[-1,-2]]],[[131,[2]]],19,[[132,[-1]]]],0,0,0,[[[127,[-2,-3]]],[[112,[[54,[111]]]]],19,[[59,[-1]],52,53],[52,53]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[[61,[135,[-1]]],[[112,[[54,[111]]]]],19],[-1,-2,[],[]],[-1,-2,[],[]],[[],2],[[],2],0,0,0,0,0,0,0,0,[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[[[140,[-1,-2,-3]]],[[112,[[54,[111]]]]],19,[[59,[-1]],52,53],[52,53]],[[[140,[-1,-2,-3]]],[[112,[[54,[111]]]]],19,[[59,[-1]],52,53],[52,53]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[141,[-1,-2,-3]]],[[131,[[140,[-1,-2,-3]]]]],19,[[59,[-1]],[142,[-1]]],[[132,[-1]]]],[[-2,-3],[[141,[-1,-2,-3]]],19,[[59,[-1]],[142,[-1]]],[[132,[-1]]]],[[[140,[-1,-2,-3]]],[[140,[-1,-2,-3]]],19,[],[]],[[[143,[-1]]],[[143,[-1]]],19],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[143,[-1]],[143,[-1]]],93,19],[[[140,[-1,-2,-3]]],[[112,[[54,[111]]]]],19,[62,52,53],[52,53]],[[-1,-2],93,[],[]],[[144,-2],[[28,[[145,[-1,-2]],146]]],19,[[132,[-1]]]],[[[140,[-1,-2,-3]],[125,[-1]]],[[112,[[54,[111]]]]],19,[[59,[-1]],52,53],[52,53]],[[[140,[-1,-2,-3]]],[[112,[[54,[111]]]]],19,[[59,[-1]],52,53],[52,53]],[[129,-2],[[131,[[140,[-1,[147,[-1]],-2]]]]],19,[[132,[-1]]]],[[133,-2],[[131,[[140,[-1,[147,[-1]],-2]]]]],19,[[132,[-1]]]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[[[148,[-1,-2]]],-3,19,[],[]],[26,-1,[]],[[[149,[-1,-2]]],-3,19,[],[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[[[149,[-1,-2]]],-3,19,[],[]],[26,-1,[]],[[[141,[-1,-2,-3]]],[[141,[-1,-2,-3]]],[],[],[]],[26,2],[26,2],[26,2],[26,2],[26,2],[[[143,[-1]],[143,[-1]]],30,19],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[[140,[-1,-2,-3]],32],35,19,34,34],[[[143,[-1]],32],35,19],[[[143,[-1]],32],35,19],[-1,-1,[]],[-1,-1,[]],[[[150,[[0,[-1,-2]]]]],[[148,[-1,-2]]],19,[]],[-1,-1,[]],[-1,-1,[]],[[[151,[[0,[-1,-2]]]]],[[149,[-1,-2]]],19,[]],[[[88,[-1]]],[[143,[-1]]],19],[26,[[143,[-1]]],19],[[[116,[-1]]],[[143,[-1]]],19],[-1,-1,[]],[[[140,[-1,-2,-3]],-4],[[112,[[54,[111]]]]],19,[[142,[-1]]],[[132,[-1]]],[[15,[[88,[-1]]]],52,53]],[[[140,[-1,-2,-3]],-4],[[112,[[54,[111]]]]],19,[[142,[-1]]],[[132,[-1]]],[[115,[26]],52]],[[[140,[-1,-2,-3]],[116,[-1]]],[[112,[[54,[111]]]]],19,[[142,[-1]]],[[132,[-1]]]],[[-1,-2],24,[42,43],44],[[[140,[-1,-2,-3]],-4],[[112,[[54,[111]]]]],19,[[142,[-1]]],[[132,[-1]]],[[15,[[87,[-1]]]],52,53]],[[[140,[-1,-2,-3]],-4],[[112,[[54,[111]]]]],19,[[142,[-1]]],[[132,[-1]]],[[115,[26]],52]],[[[140,[-1,-2,-3]],-4],[[112,[[54,[111]]]]],19,[[142,[-1]]],[[132,[-1]]],[[15,[[88,[-1]]]],52,53]],[[[140,[-1,-2,-3]],-4],[[112,[[54,[111]]]]],19,[[142,[-1]]],[[132,[-1]]],[[115,[26]],52]],[[[140,[-1,-2,-3]],[125,[-1]],[9,[26]]],[[112,[[54,[111]]]]],19,[[59,[-1]],52,53],[52,53]],[[[143,[-1]],-2],2,19,49],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[],26],[[],26],[[],26],[[],26],[[],26],[[[140,[-1,-2,-3]],[89,[-1]]],[[112,[[54,[111]]]]],19,[[120,[-1]],52,53],[52,53]],[[[140,[-1,-2,-3]],[68,[-1]]],[[112,[[54,[111]]]]],19,[[120,[-1]],52,53],[52,53]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[140,[-1,-2,-3]]],138,19,[[59,[-1]],52,53],[52,53]],[[-1,-2],[[141,[-3,-1,-2]]],[],[],[]],[[129,-2],[[131,[[140,[-1,[147,[-1]],-2]]]]],19,[[132,[-1]]]],[[133,-2],[[131,[[140,[-1,[147,[-1]],-2]]]]],19,[[132,[-1]]]],[[[143,[-1]],[143,[-1]]],[[9,[93]]],19],[[[140,[-1,-2,-3]]],[[112,[[54,[111]]]]],19,[[59,[-1]],52,53],[52,53]],[-1,[[54,[139]]],[]],[[[140,[-1,-2,-3]]],[[112,[[54,[111]]]]],19,[62,52,53],[52,53]],[[[140,[-1,[147,[-1]],-2]]],[[131,[2]]],19,[[132,[-1]]]],[[[140,[-1,-2,-3]]],[[148,[-1,-2]]],19,[],[]],[[[140,[-1,-2,-3]]],[[149,[-1,-2]]],19,[],[]],[[[140,[-1,-2,-3]]],[[112,[[54,[111]]]]],19,[[59,[-1]],52,53],[52,53]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[[[140,[-1,152,-2]]],[[154,[153]]],19,[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[141,[-1,-2,-3]],26],[[141,[-1,-2,-3]]],[],[],[]],[[[141,[-1,-2,-3]],126],[[141,[-1,-2,-3]]],[],[],[]],[[[141,[-1,-2,-3]],26],[[141,[-1,-2,-3]]],[],[],[]],[[[141,[-1,-2,-3]],26],[[141,[-1,-2,-3]]],[],[],[]],[[[141,[-1,-2,-3]],126],[[141,[-1,-2,-3]]],[],[],[]],[[],2],[[],2],[[],2],[[],2],[[],2],0,0,0,0,0,0,0,[[[155,[-1,-2]]],[[112,[[54,[111]]]]],19,[52,53]],[[144,-2],[[28,[[145,[-1,-2]],146]]],19,[[132,[-1]]]],[-1,[[112,[[54,[111]]]]],[]],[26,[[112,[[54,[111]]]]]],[[[155,[134,-1]],[135,[134]]],[[112,[[54,[111]]]]],[[132,[134]],136]],0,0,[-1,[[112,[[54,[111]]]]],[]],0,[[[155,[-1,-2]]],[[154,[153]]],19,[]],0,[[],2],0,0,0,0,0,[[142,[88,[-1]]],[[112,[[54,[111]]]]],19],[[142,-1],[[112,[[54,[111]]]]],[[115,[26]],52]],[[142,[116,[-1]]],[[112,[[54,[111]]]]],19],[[142,[88,[-1]]],[[112,[[54,[111]]]]],19],[[142,[87,[-1]]],[[112,[[54,[111]]]]],19],[[142,-1],[[112,[[54,[111]]]]],[[115,[26]],52]],[[142,[88,[-1]]],[[112,[[54,[111]]]]],19],[[142,-1],[[112,[[54,[111]]]]],[[115,[26]],52]],0,0,0,[-1,4,[]],[-1,4,[]],[[[147,[-1]]],[[112,[[54,[111]]]]],19],[-1,-2,[],[]],[-1,-2,[],[]],[[[147,[-1]]],[[112,[[54,[111]]]]],19],[[[147,[-1]],[125,[-1]]],[[112,[[54,[111]]]]],19],[[[147,[-1]]],[[112,[[54,[111]]]]],19],[129,[[28,[[147,[-1]],156]]],19],[133,[[28,[[147,[-1]],156]]],19],[26,-1,[]],[26,-1,[]],[26,2],[[[147,[-1]],32],35,19],[-1,-1,[]],[[[147,[-1]],[88,[-1]]],[[112,[[54,[111]]]]],19],[[[147,[-1]],-2],[[112,[[54,[111]]]]],19,[[115,[26]],52]],[[[147,[-1]],[116,[-1]]],[[112,[[54,[111]]]]],19],[[[147,[-1]],[88,[-1]]],[[112,[[54,[111]]]]],19],[[[147,[-1]],[87,[-1]]],[[112,[[54,[111]]]]],19],[[[147,[-1]],-2],[[112,[[54,[111]]]]],19,[[115,[26]],52]],[[[147,[-1]],[88,[-1]]],[[112,[[54,[111]]]]],19],[[[147,[-1]],-2],[[112,[[54,[111]]]]],19,[[115,[26]],52]],[[[147,[-1]],[125,[-1]],[9,[26]]],[[112,[[54,[111]]]]],19],[[],26],[[[147,[-1]],[89,[-1]]],[[112,[[54,[111]]]]],19],[[[147,[-1]],[68,[-1]]],[[112,[[54,[111]]]]],19],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[129,[[28,[[147,[-1]],156]]],19],[133,[[28,[[147,[-1]],156]]],19],[[[147,[-1]]],[[112,[[54,[111]]]]],19],[[[147,[-1]]],[[112,[[54,[111]]]]],19],[[[147,[-1]]],[[28,[2,156]]],19],[[[147,[-1]]],[[112,[[54,[111]]]]],19],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,-2,[],[]],0,[[-1,3],2,[]],[[-1,1],2,[]],[-1,4,[]],[-1,4,[]],[157,[[112,[[54,[111]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[157,157],[[-1,-2],2,[],[]],[157,[[112,[[54,[111]]]]]],[[157,[125,[-1]]],[[112,[[54,[111]]]]],19],[157,[[112,[[54,[111]]]]]],[[],157],[26,-1,[]],[26,-1,[]],[26,2],[[157,32],35],[-1,-1,[]],[[157,[88,[-1]]],[[112,[[54,[111]]]]],19],[[157,-1],[[112,[[54,[111]]]]],[[115,[26]],52]],[[157,[116,[-1]]],[[112,[[54,[111]]]]],19],[[157,[88,[-1]]],[[112,[[54,[111]]]]],19],[[157,[87,[-1]]],[[112,[[54,[111]]]]],19],[[157,-1],[[112,[[54,[111]]]]],[[115,[26]],52]],[[157,[88,[-1]]],[[112,[[54,[111]]]]],19],[[157,-1],[[112,[[54,[111]]]]],[[115,[26]],52]],[[157,[125,[-1]],[9,[26]]],[[112,[[54,[111]]]]],19],[[],26],[[157,[89,[-1]]],[[112,[[54,[111]]]]],19],[[157,[68,[-1]]],[[112,[[54,[111]]]]],19],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[157,[[112,[[54,[111]]]]]],[157,[[112,[[54,[111]]]]]],[157,[[112,[[54,[111]]]]]],0,[-1,-2,[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,-2,[],[]],0,0,0,0,0,0,[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[158,[[112,[[54,[111]]]]]],[158,[[112,[[54,[111]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[158,[[112,[[54,[111]]]]]],[-1,[[112,[[54,[111]]]]],[]],[[158,[125,[134]]],[[112,[[54,[111]]]]]],[158,[[112,[[54,[111]]]]]],[26,[[112,[[54,[111]]]]]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,2],[26,2],[-1,-1,[]],[-1,-1,[]],[[158,-1],[[112,[[54,[111]]]]],[[15,[[88,[134]]]],52,53]],[[158,-1],[[112,[[54,[111]]]]],[[115,[26]],52]],[[158,[116,[134]]],[[112,[[54,[111]]]]]],[[158,-1],[[112,[[54,[111]]]]],[[15,[[87,[134]]]],52,53]],[[158,-1],[[112,[[54,[111]]]]],[[115,[26]],52]],[[158,-1],[[112,[[54,[111]]]]],[[15,[[88,[134]]]],52,53]],[[158,-1],[[112,[[54,[111]]]]],[[115,[26]],52]],[[158,[125,[134]],[9,[26]]],[[112,[[54,[111]]]]]],[[158,[135,[134]]],[[112,[[54,[111]]]]]],[[],26],[[],26],[[158,[89,[134]]],[[112,[[54,[111]]]]]],[[158,[68,[134]]],[[112,[[54,[111]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[158,138],[158,[[112,[[54,[111]]]]]],[-1,[[54,[139]]],[]],[-1,[[112,[[54,[111]]]]],[]],[158,[[112,[[54,[111]]]]]],[[[159,[158]]],[[112,[[54,[111]]]]]],[158,[[112,[[54,[111]]]]]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[160,[[9,[161]]]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[146,5],[146,5],[146,162],[152,[[112,[[54,[111]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[144,-2],[[28,[[145,[-1,-2]],146]]],19,[[132,[-1]]]],[146,163],[160,24],[164,[[112,[[54,[111]]]]]],[153,[[112,[[54,[111]]]]]],[152,[[112,[[54,[111]]]]]],[160,160],[144,144],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[160,160],93],[152,[[112,[[54,[111]]]]]],[[-1,-2],93,[],[]],[[144,-2],[[28,[[155,[-1,-2]],146]]],19,[[132,[-1]]]],[144,[[28,[152,146]]]],[[146,-1],146,[51,52,53]],[[152,[125,[-1]]],[[112,[[54,[111]]]]],19],[152,[[112,[[54,[111]]]]]],[[144,27],144],[[],144],[[],[[165,[160]]]],[26,-1,[]],[146],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[146],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[146,[[28,[-1,146]]],[51,34,52,53]],[146,[[9,[-1]]],[51,34,52,53]],[146,[[9,[-1]]],[51,34,52,53]],[26,2],[146,2],[26,2],[26,2],[26,2],[152,2],[26,2],[[160,160],30],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[153,-1,-2],[[154,[24]]],[43,166],167],[[153,-1,-2],[[154,[24]]],[43,166,51],167],[[153,-1,-2],[[154,[24]]],[43,166,51],[167,18]],[[153,-1,-2],[[154,[2]]],[43,166,51],167],[[153,-1,-2],[[154,[2]]],[43,166,51],[167,18]],[[146,32],[[28,[2,33]]]],[[146,32],[[28,[2,33]]]],[[160,32],[[28,[2,33]]]],[[160,32],[[28,[2,33]]]],[[144,32],35],[[152,32],35],[-1,-1,[]],[-1,146,[5,52,53]],[168,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[169,144],[-1,-1,[]],[27,[[28,[144,-1]]],[]],[[152,[88,[-1]]],[[112,[[54,[111]]]]],19],[[152,-1],[[112,[[54,[111]]]]],[[115,[26]],52]],[[152,[116,[-1]]],[[112,[[54,[111]]]]],19],[[152,[88,[-1]]],[[112,[[54,[111]]]]],19],[[152,[87,[-1]]],[[112,[[54,[111]]]]],19],[[152,-1],[[112,[[54,[111]]]]],[[115,[26]],52]],[[152,[88,[-1]]],[[112,[[54,[111]]]]],19],[[152,-1],[[112,[[54,[111]]]]],[[115,[26]],52]],[[152,[125,[-1]],[9,[26]]],[[112,[[54,[111]]]]],19],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[[144,-1],144,[[15,[14]]]],0,0,[[],26],[[],26],[[],26],[[],26],[[],26],[[152,[89,[-1]]],[[112,[[54,[111]]]]],19],[[152,[68,[-1]]],[[112,[[54,[111]]]]],19],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[146,30],[[144,-1],144,[[167,[],[[85,[160]]]]]],[-1,146,[51,34,52,53]],[160,27],[-1,146,[5,52,53]],[144,144],[[160,160],[[9,[93]]]],[[144,27],144],[152,[[112,[[54,[111]]]]]],[[144,170],144],0,[160,171],[[164,-1,-2],[[112,[[54,[111]]]]],[43,166,53],[167,52]],[[164,-1,-2],[[112,[[54,[111]]]]],[43,166,53],[167,52]],[[164,-1],[[112,[[54,[111]]]]],[43,166,53]],[[164,-1,-2],[[112,[[54,[111]]]]],[43,166,53],[167,52]],[[164,-1],[[112,[[54,[111]]]]],[43,166,53]],[[164,-1],[[112,[[54,[111]]]]],[43,166,53]],[144,144],[152,[[112,[[54,[111]]]]]],[146,5],[[144,-1],144,[[15,[14]]]],[160,[[9,[27]]]],[152,[[112,[[54,[111]]]]]],0,[144,144],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,14,[]],[152,[[154,[153]]]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[[27,27],[[28,[160,172]]]],[[153,27,[173,[27]],-1,-3],[[154,[2]]],[[167,[],[[85,[27]]]]],[174,18],[[167,[],[[85,[[173,[-2]]]]]]]],[[144,27],144],[160,175],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[-1,4,[]],[-1,4,[]],[-1,-2,[],[]],[-1,-2,[],[]],[176,144],[26,-1,[]],[26,-1,[]],[26,2],[176,2],[[176,32],35],[-1,-1,[]],[176,14],[[],176],[[],26],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[176,170],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,-2,[],[]],0,0,0,0,0,[[-1,1],2,[]],[[-1,3],2,[]],[-1,4,[]],[-1,4,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[177,[-1,-2]]],[[177,[-1,-2]]],[],[]],[[-1,-2],2,[],[]],[[],[[177,[-1,-2]]],[],[]],[26,-1,[]],[26,-1,[]],[26,2],[[[177,[-1,-2]],32],35,[],[]],[-1,-1,[]],[[],26],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],0,0,[[178,-1],2,[]],[[179,-1],[[0,[[111,[],[[121,[2]]]],52]]],[]],[[[177,[-2,-3]],-2,-4,-5],2,[],[[180,[-1]]],179,[[181,[-1,-2]]],[[167,[],[[85,[-3]]]],52]],[-1,-2,[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,-2,[],[]],[[[177,[-1,-2]],126],[[177,[-1,-2]]],[],[]],0,0,0,0,0,[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[[[182,[-1]]],2,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[183,[-1]]],[[183,[-1]]],19],[184,184],[[[182,[-1]]],[[182,[-1]]],[]],[185,185],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[],[[183,[-1]]],19],[[],185],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,2],[26,2],[26,2],[26,2],[[[182,[-1]]],2,[]],[[181,-2],[[112,[[54,[111]]]]],[],[[180,[-1]]]],[[[183,[-1]],186],[[112,[[54,[111]]]]],19],[[[183,[-1]],187],[[112,[[54,[111]]]]],19],[[184,186],[[112,[[54,[111]]]]]],[[184,187],[[112,[[54,[111]]]]]],[[[182,[-3]],-2],[[112,[[54,[111]]]]],19,[[180,[-1]]],[[181,[-1,-2]],53]],[[185,-2],[[112,[[54,[111]]]]],[],[52,[180,[-1]]]],[[[183,[-1]],32],35,19],[[184,32],35],[[[182,[-1]],32],35,34],[[185,32],35],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],26],[[],26],[[],26],[[],26],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[188,184],[-1,[[182,[-1]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[[[182,[-1]]],2,[]],[[[182,[-1]]],2,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[183,[-1]],-2],[[183,[-1]]],19,[[181,[-1,186]],34]],[[[183,[-1]],-2],[[183,[-1]]],19,[[181,[-1,187]],34]],[[[183,[-1]],-2],[[183,[-1]]],19,[[181,[-1,186]],[181,[-1,187]],34]],0,0,0,0,[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[186,186],[187,187],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,2],[26,2],[[186,186],30],[[187,187],30],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[186,32],35],[[187,32],35],[-1,-1,[]],[26,187],[-1,-1,[]],[[-1,-2],24,[42,43],44],[[-1,-2],24,[42,43],44],[[186,-1],2,49],[[187,-1],2,49],[[],26],[[],26],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[189,26],2],[[190,191],2],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,5,[]],[192,[[9,[8]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[192,[[9,[5]]]],[138,138],[189,189],[193,193],[190,190],[194,194],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[138,14,[9,[14]]],[[54,[195]]]],[[138,14,[9,[14]]],[[54,[196]]]],[[138,14,[9,[14]]],[[54,[197]]]],[[138,14],[[54,[198]]]],[[],138],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[192,27],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[138,[[28,[14,-1]]],[]],[[192,32],35],[[192,32],35],[[138,32],35],[[189,32],35],[[193,32],35],[[190,32],35],[[194,32],35],[199,192],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[189,26],[193,26],[194,14],[[138,27],[[28,[189,192]]]],[[138,27],[[28,[193,192]]]],[[138,27],[[28,[190,192]]]],[[138,27],[[28,[194,192]]]],[[138,-1],[[28,[138,192]]],167],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[-1,[],[]],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[190,191],[190,26],[[193,26],2],[[194,14],2],[192,[[9,[5]]]],[[138,14],[[54,[139]]]],[190,191],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[[193,200],2],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],0,[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,5,[]],[6,6],[6,6],[36,[[9,[8]]]],[59,[[112,[[54,[111]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[201,36],[[[202,[-1,-2]]],36,[[15,[14]]],[[15,[16]]]],[36,[[9,[5]]]],[203,203],[204,204],[205,205],[[[206,[-1]]],[[206,[-1]]],18],[201,201],[[[202,[-1,-2]]],[[202,[-1,-2]]],18,18],[36,36],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[203,203],93],[[-1,-2],93,[],[]],[[59,[125,[-1]]],[[112,[[54,[111]]]]],19],[59,[[112,[[54,[111]]]]]],[[],207],[207,[[28,[[101,[-1,36]],102]]],[52,53,103]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[36,27],[-1,[[28,[203]]],29],[-1,[[28,[36]]],29],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[26,2],[[203,203],30],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],0,[201,[[28,[-1,36]]],[]],[[[202,[-1,-2]]],[[28,[-3,36]]],[[15,[14]]],[[15,[16]]],[]],[[203,32],35],[[204,32],35],[[205,32],35],[[[206,[-1]],32],35,34],[[201,32],35],[[[202,[-1,-2]],32],35,34,34],[[36,32],35],[[36,32],35],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[2,[14,16]]],36],[10,36],[107,36],[39,[[28,[207,40]]]],[39,[[28,[207,40]]]],[[-1,-2],24,[42,43],44],[[59,[125,[-1]],[9,[26]]],[[112,[[54,[111]]]]],19],[[],[[9,[48]]]],[[203,-1],2,49],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[-1,[],[]],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[-1,36,51],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[204,-1],36,[]],[[205,-1],36,[]],[[[206,[-1]],-2],36,[[15,[14]]],[]],[[201,-1],36,[]],[[[202,[-1,-2]],-3],36,[[15,[14]]],[[15,[16]]],[]],0,0,0,[[203,203],[[9,[93]]]],[59,[[112,[[54,[111]]]]]],0,[[203,-1],28,65],[[36,-1],28,65],[36,[[9,[5]]]],[36,16],0,[59,[[112,[[54,[111]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[[207,39],[[28,[2,40]]]],[[207,39],[[28,[2,40]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,[[-1,1],2,[]],[[-1,3],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],0,[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,5,[]],[6,6],[6,6],[38,[[9,[8]]]],[60,[[112,[[54,[111]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[38,[[9,[5]]]],[208,208],[38,38],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[208,208],93],[[-1,-2],93,[],[]],[60,[[154,[138]]]],[60,[[154,[138]]]],[[],208],[[],209],[209,[[28,[[101,[-1,38]],102]]],[52,53,103]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[38,27],[-1,[[28,[208]]],29],[-1,[[28,[38]]],29],[26,2],[26,2],[26,2],[[208,208],30],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],0,[[208,32],35],[[38,32],35],[[38,32],35],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[14,38],[107,38],[39,[[28,[209,40]]]],[39,[[28,[209,40]]]],[[-1,-2],24,[42,43],44],[[],[[9,[48]]]],[[208,-1],2,49],[[-1,-2],[[50,[-2,-3]]],[],[51,52,53],[]],[-1,[],[]],[[],26],[[],26],[[],26],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],0,[60,[[112,[[54,[111]]]]]],[60,[[112,[[54,[111]]]]]],[60,138],[[208,208],[[9,[93]]]],[210,[[54,[139]]]],[[208,-1],28,65],[[38,-1],28,65],[38,[[9,[5]]]],[38,16],[60,[[112,[[54,[111]]]]]],[60,[[112,[[54,[111]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],0,[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],[-1,66,[]],[[209,39],[[28,[2,40]]]],[[209,39],[[28,[2,40]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,[[],2],[126,2],0,0,0,0,0,0,[-1,4,[]],[-1,4,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[112,[[54,[111]]]]],[]],[26,[[112,[[54,[111]]]]]],[[[159,[-1]]],[[55,[[211,[-1]]]]],212],[[[159,[-1]],26],[[55,[[211,[-1]]]]],212],[26,-1,[]],[26,-1,[]],[26,2],[[[159,[-1]]],2,212],[-1,-1,[]],[[[159,[-1]]],[[57,[134,213]]],212],[[[212,[],[[214,[-1]]]],[135,[134]]],[[112,[[54,[111]]]]],[52,53]],[[],[[159,[-1]]],[212,210]],[[],26],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[159,[-1]]],26,212],[[[159,[-1]],26],[[125,[134]]],212],[-1,[[112,[[54,[111]]]]],[]],[[[159,[[212,[],[[214,[-1]]]]]]],[[112,[[54,[111]]]]],[52,53]],[[[159,[-1]]],2,212],[[[159,[-1]]],2,212],[[[159,[-1]]],[],212],[[[159,[-1]],215],2,212],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[134,134],[213,213],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[134,134],93],[[213,213],93],[[-1,-2],93,[],[]],[[-1,-2],93,[],[]],[[],134],[[],213],[26,-1,[]],[26,-1,[]],[26,-1,[]],[26,-1,[]],[-1,[[28,[134]]],29],[-1,[[28,[213]]],29],[26,2],[26,2],[[134,134],30],[[213,213],30],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[-1,-2],30,[],[]],[[134,32],35],[[213,32],35],[-1,-1,[]],[-1,-1,[]],[[-1,-2],24,[42,43],44],[[-1,-2],24,[42,43],44],[[134,-1],2,49],[[213,-1],2,49],[[],26],[[],26],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[[56,[-1]]],[[56,[4]]],[]],[[216,-1],-2,[],[]],0,[[216,-1],26,[]],[[[165,[217]]],215],[[134,134],[[9,[93]]]],[[213,213],[[9,[93]]]],0,0,[[134,-1],28,65],[[213,-1],28,65],0,[-1,-2,[],[]],[-1,-2,[],[]],[[216,-1,-2],[[9,[[2,[-3,-4]]]]],[],[],[],[]],0,[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,[[28,[-2]]],[],[]],[-1,66,[]],[-1,66,[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]]],"c":[],"p":[[5,"Private",2563],[1,"tuple"],[5,"Private",2563],[10,"Any",2564],[10,"Error",2565],[5,"Command",2566],[6,"Error",0],[5,"Backtrace",2567],[6,"Option",2568],[6,"QueryError",0],[5,"NotFoundSnafu",0],[5,"MissingSnafu",0],[5,"Snafu",0],[5,"String",2569],[10,"Into",2570],[6,"StatusCode",2571],[5,"Leaf",0],[10,"Clone",2572],[10,"NodeType",2573],[5,"Commitment",2574],[10,"Resolvable",0],[10,"Committable",2574],[10,"RngCore",2575],[1,"u64"],[5,"Options",0],[1,"usize"],[1,"str"],[6,"Result",2576],[10,"Deserializer",2577],[1,"bool"],[6,"BlockError",2578],[5,"Formatter",2579],[5,"Error",2579],[10,"Debug",2579],[8,"Result",2579],[6,"Error",2048],[6,"Error",286],[6,"Error",2306],[5,"ArgMatches",2580],[8,"Error",2581],[5,"StoredView",2582],[10,"Hash",2583],[10,"Sized",2584],[10,"BuildHasher",2583],[5,"QuorumData",2585],[5,"SuccessThreshold",2586],[5,"SimpleCertificate",2586],[5,"Id",2587],[10,"Hasher",2583],[5,"IndentedSection",2588],[10,"Display",2579],[10,"Send",2584],[10,"Sync",2584],[5,"Box",2589],[5,"Arc",2590],[5,"Rc",2591],[5,"SystemContextHandle",2592],[10,"AvailabilityDataSource",286],[10,"NodeDataSource",2048],[10,"StatusDataSource",2306],[10,"UpdateDataSource",963],[10,"VersionedDataSource",963],[10,"NodeImplementation",2573],[10,"Serialize",2593],[10,"Serializer",2593],[5,"TypeId",2564],[5,"InconsistentLeafError",286],[5,"LeafQueryData",286],[8,"BlockHash",286],[5,"PayloadQueryData",286],[5,"TransactionQueryData",286],[5,"FetchLeafSnafu",286],[5,"FetchBlockSnafu",286],[5,"FetchTransactionSnafu",286],[5,"InvalidTransactionIndexSnafu",286],[5,"CustomSnafu",286],[17,"TransactionIndex"],[17,"Iter"],[17,"InclusionProof"],[10,"QueryablePayload",286],[10,"PartialEq",2594],[10,"Eq",2594],[10,"Ord",2594],[10,"DeserializeOwned",2577],[17,"Item"],[10,"Iterator",2595],[6,"LeafId",286],[6,"BlockId",286],[5,"BlockQueryData",286],[5,"BlockSummaryQueryData",286],[5,"TransactionSummaryQueryData",286],[5,"RequestSnafu",286],[6,"Ordering",2594],[6,"Fetch",286],[10,"ErrorCompat",2596],[17,"Source"],[5,"NoneError",2596],[10,"IntoError",2596],[8,"Payload",0],[5,"Options",286],[5,"Api",2597],[6,"ApiError",2597],[10,"ReadState",2598],[8,"TransactionIndex",286],[8,"Transaction",0],[8,"LeafHash",286],[6,"RequestError",2599],[17,"LeafRange"],[17,"BlockRange"],[17,"PayloadRange"],[10,"Future",2600],[5,"Pin",2601],[10,"Stream",2602],[10,"Unpin",2584],[10,"RangeBounds",2603],[8,"TransactionHash",286],[8,"VidCommitment",2578],[8,"Header",0],[17,"Error"],[10,"UpdateAvailabilityData",286],[17,"Output"],[10,"FnOnce",2604],[8,"Metadata",0],[8,"QuorumCertificate",2586],[8,"SignatureKey",0],[5,"Duration",2605],[5,"ExtensibleDataSource",963],[5,"MetricsDataSource",963],[5,"Path",2606],[8,"FileSystemDataSource",963],[8,"Result",2607],[10,"AvailabilityProvider",1076],[5,"AtomicStoreLoader",2608],[5,"MockTypes",2470],[5,"Event",2609],[10,"Default",2610],[10,"TestableDataSource",2431],[5,"PrometheusMetrics",1869],[10,"Metrics",2611],[5,"FetchingDataSource",1076],[5,"Builder",1076],[10,"AvailabilityStorage",1264],[6,"BlockRequest",1076],[5,"Config",1431],[8,"Builder",1245],[5,"Error",1431],[5,"FileSystemStorage",1279],[5,"StorageReadGuard",1076],[5,"StorageWriteGuard",1076],[5,"RwLockReadGuard",2612],[5,"RwLockWriteGuard",2612],[5,"SqlStorage",1431],[5,"Transaction",1431],[8,"QueryResult",0],[8,"SqlDataSource",1245],[6,"PersistenceError",2613],[5,"NoStorage",1321],[6,"DataSource",1365],[5,"MockNetwork",2431],[5,"Migration",1431],[5,"OffsetDateTime",2614],[5,"Backtrace",2615],[5,"Chain",2607],[10,"Query",1431],[5,"Vec",2616],[10,"ToStatement",2617],[10,"IntoIterator",2618],[1,"never"],[5,"Config",2619],[1,"u16"],[6,"Type",2620],[5,"Error",2621],[1,"array"],[10,"BorrowToSql",2622],[1,"u32"],[5,"TmpDb",1630],[5,"Fetcher",1654],[10,"LocalCallback",1654],[10,"Callback",1654],[10,"Request",1804],[10,"Provider",1689],[5,"TestProvider",1689],[5,"AnyProvider",1689],[5,"QueryServiceProvider",1689],[5,"NoFetching",1689],[5,"PayloadRequest",1804],[5,"LeafRequest",1804],[5,"Url",2623],[5,"Counter",1869],[5,"Histogram",1869],[1,"f64"],[6,"MetricsError",1869],[5,"Gauge",1869],[5,"Label",1869],[10,"Counter",2611],[10,"Gauge",2611],[10,"Histogram",2611],[10,"Label",2611],[6,"Error",2624],[1,"i64"],[5,"InvalidSignatureKeySnafu",2048],[5,"CustomSnafu",2048],[5,"SyncStatus",2048],[5,"RequestSnafu",2048],[5,"QuerySnafu",2048],[5,"QueryProposalsSnafu",2048],[5,"Options",2048],[5,"MempoolQueryData",2306],[5,"Options",2306],[10,"UpdateStatusData",2306],[5,"RwLock",2612],[10,"DataSourceLifeCycle",2431],[5,"MockNodeImpl",2470],[17,"Storage"],[8,"MockTransaction",2470],[8,"MockPayload",2470],[1,"u8"],[15,"Custom",280],[15,"Availability",280],[15,"Node",280],[15,"Status",280],[15,"Error",285],[15,"InvalidTransactionIndex",955],[15,"Custom",955],[15,"FetchLeaf",955],[15,"FetchBlock",955],[15,"FetchTransaction",955],[15,"Request",955],[6,"Storage",1365],[15,"NoStorage",1430],[15,"NoSuchMetric",2044],[15,"NoSuchSubgroup",2044],[15,"Prometheus",2044],[15,"Custom",2300],[15,"QueryProposals",2300],[15,"Request",2300],[15,"Query",2300],[15,"Internal",2425],[15,"Request",2425],[8,"MockQuorumProposal",2470],[8,"MockHeader",2470]],"b":[[134,"impl-Display-for-Leaf%3CTYPES%3E"],[135,"impl-Debug-for-Leaf%3CTYPES%3E"],[136,"impl-Debug-for-Error"],[137,"impl-Display-for-Error"],[141,"impl-Debug-for-QueryError"],[142,"impl-Display-for-QueryError"],[144,"impl-From%3CError%3E-for-Error"],[145,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[146,"impl-From%3CError%3E-for-Error"],[147,"impl-From%3CError%3E-for-Error"],[609,"impl-Display-for-LeafId%3CTypes%3E"],[610,"impl-Debug-for-LeafId%3CTypes%3E"],[611,"impl-Debug-for-BlockId%3CTypes%3E"],[612,"impl-Display-for-BlockId%3CTypes%3E"],[614,"impl-Debug-for-InconsistentLeafError%3CTypes%3E"],[615,"impl-Display-for-InconsistentLeafError%3CTypes%3E"],[627,"impl-Debug-for-Error"],[628,"impl-Display-for-Error"],[630,"impl-From%3Cusize%3E-for-LeafId%3CTypes%3E"],[632,"impl-From%3CCommitment%3CLeaf%3CTypes%3E%3E%3E-for-LeafId%3CTypes%3E"],[633,"impl-From%3Cusize%3E-for-BlockId%3CTypes%3E"],[634,"impl-From%3CCommitment%3C%3CTypes+as+NodeType%3E::BlockHeader%3E%3E-for-BlockId%3CTypes%3E"],[652,"impl-From%3CRequestError%3E-for-Error"],[654,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[983,"impl-NodeDataSource%3CTypes%3E-for-ExtensibleDataSource%3CD,+U%3E"],[984,"impl-StatusDataSource-for-ExtensibleDataSource%3CD,+U%3E"],[1001,"impl-DataSourceLifeCycle-for-FetchingDataSource%3CMockTypes,+FileSystemStorage%3CMockTypes%3E,+P%3E"],[1002,"impl-FetchingDataSource%3CTypes,+FileSystemStorage%3CTypes%3E,+P%3E"],[1098,"impl-NodeDataSource%3CTypes%3E-for-FetchingDataSource%3CTypes,+S,+P%3E"],[1099,"impl-StatusDataSource-for-FetchingDataSource%3CTypes,+S,+P%3E"],[1149,"impl-Display-for-BlockRequest%3CTypes%3E"],[1150,"impl-Debug-for-BlockRequest%3CTypes%3E"],[1157,"impl-From%3CBlockId%3CTypes%3E%3E-for-BlockRequest%3CTypes%3E"],[1158,"impl-From%3Cusize%3E-for-BlockRequest%3CTypes%3E"],[1159,"impl-From%3CCommitment%3C%3C%3CTypes+as+NodeType%3E::BlockPayload+as+BlockPayload%3E::Transaction%3E%3E-for-BlockRequest%3CTypes%3E"],[1253,"impl-FetchingDataSource%3CTypes,+SqlStorage,+P%3E"],[1254,"impl-DataSourceLifeCycle-for-FetchingDataSource%3CMockTypes,+SqlStorage,+P%3E"],[1375,"impl-NodeDataSource%3CMockTypes%3E-for-DataSource"],[1376,"impl-StatusDataSource-for-DataSource"],[1452,"impl-AsRef%3Cdyn+Error+%2B+Send+%2B+Sync%3E-for-Error"],[1453,"impl-AsRef%3Cdyn+Error%3E-for-Error"],[1519,"impl-Debug-for-Error"],[1520,"impl-Display-for-Error"],[1521,"impl-Debug-for-Migration"],[1522,"impl-Display-for-Migration"],[1743,"impl-Provider%3CTypes,+PayloadRequest%3E-for-AnyProvider%3CTypes%3E"],[1744,"impl-Provider%3CTypes,+LeafRequest%3E-for-AnyProvider%3CTypes%3E"],[1745,"impl-Provider%3CTypes,+PayloadRequest%3E-for-QueryServiceProvider"],[1746,"impl-Provider%3CTypes,+LeafRequest%3E-for-QueryServiceProvider"],[1952,"impl-Debug-for-MetricsError"],[1953,"impl-Display-for-MetricsError"],[2179,"impl-Display-for-Error"],[2180,"impl-Debug-for-Error"],[2189,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[2190,"impl-From%3CQueryError%3E-for-Error"],[2191,"impl-From%3CRequestError%3E-for-Error"],[2366,"impl-Display-for-Error"],[2367,"impl-Debug-for-Error"],[2371,"impl-From%3CString%3E-for-Error"],[2372,"impl-From%3CRequestError%3E-for-Error"]]}]\ ]')); if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; else if (window.initSearch) window.initSearch(searchIndex); diff --git a/src-files.js b/src-files.js index 4a47ad18c..3af728bf5 100644 --- a/src-files.js +++ b/src-files.js @@ -1,4 +1,4 @@ var srcIndex = new Map(JSON.parse('[\ -["hotshot_query_service",["",[["availability",[],["data_source.rs","fetch.rs","query_data.rs"]],["data_source",[["storage",[],["fs.rs","ledger_log.rs","sql.rs"]]],["extension.rs","fetching.rs","fs.rs","metrics.rs","notifier.rs","sql.rs","storage.rs","update.rs"]],["fetching",[["provider",[],["any.rs","query_service.rs"]]],["provider.rs","request.rs"]],["node",[],["data_source.rs","query_data.rs"]],["status",[],["data_source.rs","query_data.rs"]]],["api.rs","availability.rs","data_source.rs","error.rs","fetching.rs","lib.rs","metrics.rs","node.rs","resolvable.rs","status.rs","task.rs"]]]\ +["hotshot_query_service",["",[["availability",[],["data_source.rs","fetch.rs","query_data.rs"]],["data_source",[["storage",[],["fs.rs","ledger_log.rs","no_storage.rs","sql.rs"]]],["extension.rs","fetching.rs","fs.rs","metrics.rs","notifier.rs","sql.rs","storage.rs","update.rs"]],["fetching",[["provider",[],["any.rs","query_service.rs","testing.rs"]]],["provider.rs","request.rs"]],["node",[],["data_source.rs","query_data.rs"]],["status",[],["data_source.rs","query_data.rs"]],["testing",[],["consensus.rs","mocks.rs"]]],["api.rs","availability.rs","data_source.rs","error.rs","fetching.rs","lib.rs","metrics.rs","node.rs","resolvable.rs","status.rs","task.rs","testing.rs"]]]\ ]')); createSrcSidebar(); diff --git a/src/hotshot_query_service/data_source.rs.html b/src/hotshot_query_service/data_source.rs.html index 3615c16bb..3d2376ab7 100644 --- a/src/hotshot_query_service/data_source.rs.html +++ b/src/hotshot_query_service/data_source.rs.html @@ -830,6 +830,45 @@ 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
    // Copyright (c) 2022 Espresso Systems (espressosys.com)
     // This file is part of the HotShot Query Service library.
     //
    @@ -1241,7 +1280,7 @@
     #[espresso_macros::generic_tests]
     pub mod persistence_tests {
         use crate::{
    -        availability::{BlockQueryData, LeafQueryData, UpdateAvailabilityData},
    +        availability::{BlockQueryData, LeafQueryData},
             node::NodeDataSource,
             testing::{
                 consensus::TestableDataSource,
    @@ -1273,9 +1312,7 @@
             let leaf = LeafQueryData::new(leaf, qc).unwrap();
     
             // Insert, but do not commit, some data and check that we can read it back.
    -        UpdateAvailabilityData::<MockTypes>::insert_leaf(&mut ds, leaf.clone())
    -            .await
    -            .unwrap();
    +        ds.insert_leaf(leaf.clone()).await.unwrap();
             ds.insert_block(block.clone()).await.unwrap();
     
             assert_eq!(
    @@ -1318,9 +1355,7 @@
             let leaf = LeafQueryData::new(leaf, qc).unwrap();
     
             // Insert some data and check that we can read it back.
    -        UpdateAvailabilityData::<MockTypes>::insert_leaf(&mut ds, leaf.clone())
    -            .await
    -            .unwrap();
    +        ds.insert_leaf(leaf.clone()).await.unwrap();
             ds.insert_block(block.clone()).await.unwrap();
             ds.commit().await.unwrap();
     
    @@ -1354,16 +1389,20 @@
     pub mod node_tests {
         use super::test_helpers::*;
         use crate::{
    -        availability::{BlockQueryData, LeafQueryData, UpdateAvailabilityData},
    +        availability::{BlockQueryData, LeafQueryData},
             node::SyncStatus,
             testing::{
                 consensus::{MockNetwork, TestableDataSource},
    -            mocks::MockTypes,
    +            mocks::{mock_transaction, MockTypes},
                 setup_test,
             },
         };
         use futures::stream::StreamExt;
    -    use hotshot_example_types::state_types::TestInstanceState;
    +    use hotshot_example_types::{
    +        block_types::{TestBlockHeader, TestBlockPayload},
    +        state_types::TestInstanceState,
    +    };
    +    use hotshot_types::traits::block_contents::{vid_commitment, BlockPayload};
         use std::collections::HashSet;
     
         async fn validate(ds: &impl TestableDataSource) {
    @@ -1478,9 +1517,7 @@
     
             // Insert a leaf without the corresponding block, make sure we detect that the block is
             // missing.
    -        UpdateAvailabilityData::insert_leaf(&mut ds, leaves[0].clone())
    -            .await
    -            .unwrap();
    +        ds.insert_leaf(leaves[0].clone()).await.unwrap();
             ds.commit().await.unwrap();
             assert_eq!(
                 ds.sync_status().await.unwrap(),
    @@ -1492,9 +1529,7 @@
     
             // Insert a leaf whose height is not the successor of the previous leaf. We should now
             // detect that the leaf in between is missing (along with all _three_ corresponding blocks).
    -        UpdateAvailabilityData::insert_leaf(&mut ds, leaves[2].clone())
    -            .await
    -            .unwrap();
    +        ds.insert_leaf(leaves[2].clone()).await.unwrap();
             ds.commit().await.unwrap();
             assert_eq!(
                 ds.sync_status().await.unwrap(),
    @@ -1506,9 +1541,7 @@
     
             // Rectify the missing data.
             ds.insert_block(blocks[0].clone()).await.unwrap();
    -        UpdateAvailabilityData::insert_leaf(&mut ds, leaves[1].clone())
    -            .await
    -            .unwrap();
    +        ds.insert_leaf(leaves[1].clone()).await.unwrap();
             ds.insert_block(blocks[1].clone()).await.unwrap();
             ds.insert_block(blocks[2].clone()).await.unwrap();
             ds.commit().await.unwrap();
    @@ -1533,6 +1566,51 @@
                 }
             );
         }
    +
    +    #[async_std::test]
    +    pub async fn test_counters<D: TestableDataSource>() {
    +        setup_test();
    +
    +        let storage = D::create(0).await;
    +        let mut ds = D::connect(&storage).await;
    +
    +        assert_eq!(ds.count_transactions().await.unwrap(), 0);
    +        assert_eq!(ds.payload_size().await.unwrap(), 0);
    +
    +        // Insert some transactions. We insert the blocks out of order to check that the counters
    +        // account for missing blocks fetched later.
    +        let mut total_transactions = 0;
    +        let mut total_size = 0;
    +        for i in [0, 2, 1] {
    +            // Using `i % 2` as the transaction data ensures we insert a duplicate transaction
    +            // (since we insert more than 2 transactions total). The query service should still
    +            // count these as separate transactions and should include both duplicates when
    +            // computing the total size.
    +            let payload =
    +                TestBlockPayload::from_transactions([mock_transaction(vec![i as u8 % 2])])
    +                    .unwrap()
    +                    .0;
    +            let encoded = payload.encode().unwrap().collect::<Vec<_>>();
    +            let payload_commitment = vid_commitment(&encoded, 1);
    +            let header = TestBlockHeader {
    +                block_number: i,
    +                payload_commitment,
    +            };
    +
    +            let mut leaf = LeafQueryData::<MockTypes>::genesis(&TestInstanceState {});
    +            leaf.leaf.block_header = header.clone();
    +            let block = BlockQueryData::new(header, payload);
    +            ds.insert_leaf(leaf).await.unwrap();
    +            ds.insert_block(block).await.unwrap();
    +            ds.commit().await.unwrap();
    +
    +            total_transactions += 1;
    +            total_size += encoded.len();
    +
    +            assert_eq!(ds.count_transactions().await.unwrap(), total_transactions);
    +            assert_eq!(ds.payload_size().await.unwrap(), total_size);
    +        }
    +    }
     }
     
     /// Generic tests we can instantiate for all the status data sources.
    diff --git a/src/hotshot_query_service/data_source/extension.rs.html b/src/hotshot_query_service/data_source/extension.rs.html
    index ecfa135e3..bb0008b46 100644
    --- a/src/hotshot_query_service/data_source/extension.rs.html
    +++ b/src/hotshot_query_service/data_source/extension.rs.html
    @@ -301,14 +301,6 @@
     300
     301
     302
    -303
    -304
    -305
    -306
    -307
    -308
    -309
    -310
     
    // Copyright (c) 2022 Espresso Systems (espressosys.com)
     // This file is part of the HotShot Query Service library.
     //
    @@ -329,7 +321,7 @@
             UpdateAvailabilityData,
         },
         metrics::PrometheusMetrics,
    -    node::{NodeDataSource, SyncStatus, UpdateNodeData},
    +    node::{NodeDataSource, SyncStatus},
         status::StatusDataSource,
         Payload, QueryResult, SignatureKey,
     };
    @@ -535,25 +527,17 @@
         async fn count_proposals(&self, proposer: &SignatureKey<Types>) -> QueryResult<usize> {
             self.data_source.count_proposals(proposer).await
         }
    +    async fn count_transactions(&self) -> QueryResult<usize> {
    +        self.data_source.count_transactions().await
    +    }
    +    async fn payload_size(&self) -> QueryResult<usize> {
    +        self.data_source.payload_size().await
    +    }
         async fn sync_status(&self) -> QueryResult<SyncStatus> {
             self.data_source.sync_status().await
         }
     }
     
    -#[async_trait]
    -impl<D, U, Types> UpdateNodeData<Types> for ExtensibleDataSource<D, U>
    -where
    -    D: UpdateNodeData<Types> + Send + Sync,
    -    U: Send + Sync,
    -    Types: NodeType,
    -{
    -    type Error = D::Error;
    -
    -    async fn insert_leaf(&mut self, leaf: LeafQueryData<Types>) -> Result<(), Self::Error> {
    -        self.data_source.insert_leaf(leaf).await
    -    }
    -}
    -
     #[async_trait]
     impl<D, U> StatusDataSource for ExtensibleDataSource<D, U>
     where
    diff --git a/src/hotshot_query_service/data_source/fetching.rs.html b/src/hotshot_query_service/data_source/fetching.rs.html
    index eaa803bfd..89bb803fa 100644
    --- a/src/hotshot_query_service/data_source/fetching.rs.html
    +++ b/src/hotshot_query_service/data_source/fetching.rs.html
    @@ -1685,26 +1685,6 @@
     1684
     1685
     1686
    -1687
    -1688
    -1689
    -1690
    -1691
    -1692
    -1693
    -1694
    -1695
    -1696
    -1697
    -1698
    -1699
    -1700
    -1701
    -1702
    -1703
    -1704
    -1705
    -1706
     

    // Copyright (c) 2022 Espresso Systems (espressosys.com)
     // This file is part of the HotShot Query Service library.
     //
    @@ -1793,7 +1773,7 @@
             Callback, Provider,
         },
         metrics::PrometheusMetrics,
    -    node::{NodeDataSource, SyncStatus, UpdateNodeData},
    +    node::{NodeDataSource, SyncStatus},
         status::StatusDataSource,
         task::BackgroundTask,
         Header, Payload, QueryResult, SignatureKey,
    @@ -1921,11 +1901,7 @@
     where
         Types: NodeType,
         Payload<Types>: QueryablePayload,
    -    S: NodeDataSource<Types>
    -        + UpdateNodeData<Types>
    -        + AvailabilityStorage<Types>
    -        + VersionedDataSource
    -        + 'static,
    +    S: NodeDataSource<Types> + AvailabilityStorage<Types> + 'static,
         P: AvailabilityProvider<Types>,
     {
         /// Build a [`FetchingDataSource`] with these options.
    @@ -1971,11 +1947,7 @@
     where
         Types: NodeType,
         Payload<Types>: QueryablePayload,
    -    S: NodeDataSource<Types>
    -        + UpdateNodeData<Types>
    -        + AvailabilityStorage<Types>
    -        + VersionedDataSource
    -        + 'static,
    +    S: NodeDataSource<Types> + AvailabilityStorage<Types> + 'static,
         P: AvailabilityProvider<Types>,
     {
         /// Build a [`FetchingDataSource`] with the given `storage` and `provider`.
    @@ -2203,28 +2175,16 @@
             self.storage().await.count_proposals(proposer).await
         }
     
    -    async fn sync_status(&self) -> QueryResult<SyncStatus> {
    -        self.storage().await.sync_status().await
    +    async fn count_transactions(&self) -> QueryResult<usize> {
    +        self.storage().await.count_transactions().await
         }
    -}
     
    -#[async_trait]
    -impl<Types, S, P> UpdateNodeData<Types> for FetchingDataSource<Types, S, P>
    -where
    -    Types: NodeType,
    -    S: UpdateNodeData<Types> + Send + Sync,
    -    P: Send + Sync,
    -{
    -    type Error = S::Error;
    +    async fn payload_size(&self) -> QueryResult<usize> {
    +        self.storage().await.payload_size().await
    +    }
     
    -    async fn insert_leaf(&mut self, leaf: LeafQueryData<Types>) -> Result<(), Self::Error> {
    -        self.fetcher
    -            .storage
    -            .write()
    -            .await
    -            .storage
    -            .insert_leaf(leaf)
    -            .await
    +    async fn sync_status(&self) -> QueryResult<SyncStatus> {
    +        self.storage().await.sync_status().await
         }
     }
     
    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 2c1a5cea0..b0185d595 100644
    --- a/src/hotshot_query_service/data_source/storage/fs.rs.html
    +++ b/src/hotshot_query_service/data_source/storage/fs.rs.html
    @@ -440,6 +440,20 @@
     439
     440
     441
    +442
    +443
    +444
    +445
    +446
    +447
    +448
    +449
    +450
    +451
    +452
    +453
    +454
    +455
     
    // Copyright (c) 2022 Espresso Systems (espressosys.com)
     // This file is part of the HotShot Query Service library.
     //
    @@ -467,7 +481,7 @@
             },
         },
         data_source::VersionedDataSource,
    -    node::{NodeDataSource, SyncStatus, UpdateNodeData},
    +    node::{NodeDataSource, SyncStatus},
         Header, MissingSnafu, NotFoundSnafu, Payload, QueryResult, SignatureKey,
     };
     use async_trait::async_trait;
    @@ -496,6 +510,8 @@
         index_by_payload_hash: HashMap<VidCommitment, u64>,
         index_by_txn_hash: HashMap<TransactionHash<Types>, (u64, TransactionIndex<Types>)>,
         index_by_proposer_id: HashMap<SignatureKey<Types>, Vec<u64>>,
    +    num_transactions: usize,
    +    payload_size: usize,
         #[debug(skip)]
         top_storage: Option<AtomicStore>,
         leaf_storage: LedgerLog<LeafQueryData<Types>>,
    @@ -547,6 +563,8 @@
                 index_by_payload_hash: Default::default(),
                 index_by_txn_hash: Default::default(),
                 index_by_proposer_id: Default::default(),
    +            num_transactions: 0,
    +            payload_size: 0,
                 top_storage: None,
                 leaf_storage: LedgerLog::create(loader, "leaves", CACHED_LEAVES_COUNT)?,
                 block_storage: LedgerLog::create(loader, "blocks", CACHED_BLOCKS_COUNT)?,
    @@ -589,7 +607,12 @@
                 .collect();
     
             let mut index_by_txn_hash = HashMap::new();
    +        let mut num_transactions = 0;
    +        let mut payload_size = 0;
             for block in block_storage.iter().flatten() {
    +            num_transactions += block.len();
    +            payload_size += block.size() as usize;
    +
                 let height = block.height();
                 for (txn_ix, txn) in block.enumerate() {
                     update_index_by_hash(&mut index_by_txn_hash, txn.commit(), (height, txn_ix));
    @@ -602,6 +625,8 @@
                 index_by_payload_hash,
                 index_by_txn_hash,
                 index_by_proposer_id,
    +            num_transactions,
    +            payload_size,
                 leaf_storage,
                 block_storage,
                 top_storage: None,
    @@ -775,6 +800,10 @@
             self.leaf_storage
                 .insert(leaf.height() as usize, leaf.clone())?;
             self.index_by_leaf_hash.insert(leaf.hash(), leaf.height());
    +        self.index_by_proposer_id
    +            .entry(leaf.proposer())
    +            .or_default()
    +            .push(leaf.height());
             update_index_by_hash(
                 &mut self.index_by_block_hash,
                 leaf.block_hash(),
    @@ -789,8 +818,15 @@
         }
     
         async fn insert_block(&mut self, block: BlockQueryData<Types>) -> Result<(), Self::Error> {
    -        self.block_storage
    -            .insert(block.height() as usize, block.clone())?;
    +        if !self
    +            .block_storage
    +            .insert(block.height() as usize, block.clone())?
    +        {
    +            // The block was already present.
    +            return Ok(());
    +        }
    +        self.num_transactions += block.len();
    +        self.payload_size += block.size() as usize;
             for (txn_ix, txn) in block.enumerate() {
                 update_index_by_hash(
                     &mut self.index_by_txn_hash,
    @@ -857,6 +893,14 @@
             })
         }
     
    +    async fn count_transactions(&self) -> QueryResult<usize> {
    +        Ok(self.num_transactions)
    +    }
    +
    +    async fn payload_size(&self) -> QueryResult<usize> {
    +        Ok(self.payload_size)
    +    }
    +
         async fn sync_status(&self) -> QueryResult<SyncStatus> {
             let height = self.block_height().await?;
             Ok(SyncStatus {
    @@ -865,20 +909,4 @@
             })
         }
     }
    -
    -#[async_trait]
    -impl<Types: NodeType> UpdateNodeData<Types> for FileSystemStorage<Types>
    -where
    -    Payload<Types>: QueryablePayload,
    -{
    -    type Error = PersistenceError;
    -
    -    async fn insert_leaf(&mut self, leaf: LeafQueryData<Types>) -> Result<(), Self::Error> {
    -        self.index_by_proposer_id
    -            .entry(leaf.proposer())
    -            .or_default()
    -            .push(leaf.height());
    -        Ok(())
    -    }
    -}
     

    \ No newline at end of file diff --git a/src/hotshot_query_service/data_source/storage/ledger_log.rs.html b/src/hotshot_query_service/data_source/storage/ledger_log.rs.html index 266ef901e..6336b21a9 100644 --- a/src/hotshot_query_service/data_source/storage/ledger_log.rs.html +++ b/src/hotshot_query_service/data_source/storage/ledger_log.rs.html @@ -368,6 +368,14 @@ 367 368 369 +370 +371 +372 +373 +374 +375 +376 +377
    // Copyright (c) 2022 Espresso Systems (espressosys.com)
     // This file is part of the HotShot Query Service library.
     //
    @@ -501,7 +509,11 @@
             Ok(())
         }
     
    -    pub(crate) fn insert(&mut self, index: usize, object: T) -> Result<(), PersistenceError>
    +    /// Insert an object at position `index`.
    +    ///
    +    /// Returns whether the object was newly inserted; that is, returns `false` if and only if there
    +    /// was already an object present at this index.
    +    pub(crate) fn insert(&mut self, index: usize, object: T) -> Result<bool, PersistenceError>
         where
             T: Debug,
         {
    @@ -523,6 +535,10 @@
                     warn!("Failed to store object at index {}: {}", index, err);
                     return Err(err);
                 }
    +            Ok(true)
    +        } else if matches!(self.iter().nth(index), Some(Some(_))) {
    +            // This is a duplicate, we don't have to insert anything.
    +            Ok(false)
             } else {
                 // This is an object earlier in the chain that we are now receiving asynchronously.
                 // Update the placeholder with the actual contents of the object.
    @@ -541,8 +557,8 @@
                 // if index >= self.cache_start {
                 //     self.cache[index - self.cache_start] = Some(object);
                 // }
    -        }
    -        Ok(())
    +            Ok(true)
    +        }
         }
     
         pub(crate) async fn commit_version(&mut self) -> Result<(), PersistenceError> {
    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
    new file mode 100644
    index 000000000..8354c6ac1
    --- /dev/null
    +++ b/src/hotshot_query_service/data_source/storage/no_storage.rs.html
    @@ -0,0 +1,996 @@
    +no_storage.rs - source
    +    
    1
    +2
    +3
    +4
    +5
    +6
    +7
    +8
    +9
    +10
    +11
    +12
    +13
    +14
    +15
    +16
    +17
    +18
    +19
    +20
    +21
    +22
    +23
    +24
    +25
    +26
    +27
    +28
    +29
    +30
    +31
    +32
    +33
    +34
    +35
    +36
    +37
    +38
    +39
    +40
    +41
    +42
    +43
    +44
    +45
    +46
    +47
    +48
    +49
    +50
    +51
    +52
    +53
    +54
    +55
    +56
    +57
    +58
    +59
    +60
    +61
    +62
    +63
    +64
    +65
    +66
    +67
    +68
    +69
    +70
    +71
    +72
    +73
    +74
    +75
    +76
    +77
    +78
    +79
    +80
    +81
    +82
    +83
    +84
    +85
    +86
    +87
    +88
    +89
    +90
    +91
    +92
    +93
    +94
    +95
    +96
    +97
    +98
    +99
    +100
    +101
    +102
    +103
    +104
    +105
    +106
    +107
    +108
    +109
    +110
    +111
    +112
    +113
    +114
    +115
    +116
    +117
    +118
    +119
    +120
    +121
    +122
    +123
    +124
    +125
    +126
    +127
    +128
    +129
    +130
    +131
    +132
    +133
    +134
    +135
    +136
    +137
    +138
    +139
    +140
    +141
    +142
    +143
    +144
    +145
    +146
    +147
    +148
    +149
    +150
    +151
    +152
    +153
    +154
    +155
    +156
    +157
    +158
    +159
    +160
    +161
    +162
    +163
    +164
    +165
    +166
    +167
    +168
    +169
    +170
    +171
    +172
    +173
    +174
    +175
    +176
    +177
    +178
    +179
    +180
    +181
    +182
    +183
    +184
    +185
    +186
    +187
    +188
    +189
    +190
    +191
    +192
    +193
    +194
    +195
    +196
    +197
    +198
    +199
    +200
    +201
    +202
    +203
    +204
    +205
    +206
    +207
    +208
    +209
    +210
    +211
    +212
    +213
    +214
    +215
    +216
    +217
    +218
    +219
    +220
    +221
    +222
    +223
    +224
    +225
    +226
    +227
    +228
    +229
    +230
    +231
    +232
    +233
    +234
    +235
    +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
    +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
    +355
    +356
    +357
    +358
    +359
    +360
    +361
    +362
    +363
    +364
    +365
    +366
    +367
    +368
    +369
    +370
    +371
    +372
    +373
    +374
    +375
    +376
    +377
    +378
    +379
    +380
    +381
    +382
    +383
    +384
    +385
    +386
    +387
    +388
    +389
    +390
    +391
    +392
    +393
    +394
    +395
    +396
    +397
    +398
    +399
    +400
    +401
    +402
    +403
    +404
    +405
    +406
    +407
    +408
    +409
    +410
    +411
    +412
    +413
    +414
    +415
    +416
    +417
    +418
    +419
    +420
    +421
    +422
    +423
    +424
    +425
    +426
    +427
    +428
    +429
    +430
    +431
    +432
    +433
    +434
    +435
    +436
    +437
    +438
    +439
    +440
    +441
    +442
    +443
    +444
    +445
    +446
    +447
    +448
    +449
    +450
    +451
    +452
    +453
    +454
    +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
    +488
    +489
    +490
    +491
    +492
    +493
    +494
    +495
    +496
    +497
    +
    // Copyright (c) 2022 Espresso Systems (espressosys.com)
    +// This file is part of the HotShot Query Service library.
    +//
    +// This program is free software: you can redistribute it and/or modify it under the terms of the GNU
    +// General Public License as published by the Free Software Foundation, either version 3 of the
    +// License, or (at your option) any later version.
    +// This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
    +// even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    +// General Public License for more details.
    +// You should have received a copy of the GNU General Public License along with this program. If not,
    +// see <https://www.gnu.org/licenses/>.
    +
    +#![cfg(feature = "no-storage")]
    +
    +use super::AvailabilityStorage;
    +use crate::{
    +    availability::{
    +        BlockId, BlockQueryData, LeafId, LeafQueryData, PayloadQueryData, QueryablePayload,
    +        TransactionHash, TransactionIndex, UpdateAvailabilityData,
    +    },
    +    data_source::VersionedDataSource,
    +    node::{NodeDataSource, SyncStatus},
    +    Header, Payload, QueryError, QueryResult, SignatureKey,
    +};
    +use async_trait::async_trait;
    +use hotshot_types::traits::node_implementation::NodeType;
    +use std::{convert::Infallible, ops::RangeBounds};
    +
    +/// Mock storage implementation which doesn't actually store anything.
    +///
    +/// This is useful for adversarial testing, as it can be used to test the behavior of the query
    +/// service where data is never available locally and must always be fetched on demand from a peer
    +/// query service.
    +#[derive(Clone, Debug, Default, Copy)]
    +pub struct NoStorage;
    +
    +#[async_trait]
    +impl VersionedDataSource for NoStorage {
    +    type Error = Infallible;
    +
    +    async fn commit(&mut self) -> Result<(), Infallible> {
    +        Ok(())
    +    }
    +
    +    async fn revert(&mut self) {}
    +}
    +
    +#[async_trait]
    +impl<Types: NodeType> AvailabilityStorage<Types> for NoStorage
    +where
    +    Payload<Types>: QueryablePayload,
    +{
    +    async fn get_leaf(&self, _id: LeafId<Types>) -> QueryResult<LeafQueryData<Types>> {
    +        Err(QueryError::Missing)
    +    }
    +
    +    async fn get_block(&self, _id: BlockId<Types>) -> QueryResult<BlockQueryData<Types>> {
    +        Err(QueryError::Missing)
    +    }
    +
    +    async fn get_header(&self, _id: BlockId<Types>) -> QueryResult<Header<Types>> {
    +        Err(QueryError::Missing)
    +    }
    +
    +    async fn get_payload(&self, _id: BlockId<Types>) -> QueryResult<PayloadQueryData<Types>> {
    +        Err(QueryError::Missing)
    +    }
    +
    +    async fn get_leaf_range<R>(
    +        &self,
    +        _range: R,
    +    ) -> QueryResult<Vec<QueryResult<LeafQueryData<Types>>>>
    +    where
    +        R: RangeBounds<usize> + Send,
    +    {
    +        Err(QueryError::Missing)
    +    }
    +
    +    async fn get_block_range<R>(
    +        &self,
    +        _range: R,
    +    ) -> QueryResult<Vec<QueryResult<BlockQueryData<Types>>>>
    +    where
    +        R: RangeBounds<usize> + Send,
    +    {
    +        Err(QueryError::Missing)
    +    }
    +
    +    async fn get_payload_range<R>(
    +        &self,
    +        _range: R,
    +    ) -> QueryResult<Vec<QueryResult<PayloadQueryData<Types>>>>
    +    where
    +        R: RangeBounds<usize> + Send,
    +    {
    +        Err(QueryError::Missing)
    +    }
    +
    +    async fn get_block_with_transaction(
    +        &self,
    +        _hash: TransactionHash<Types>,
    +    ) -> QueryResult<(BlockQueryData<Types>, TransactionIndex<Types>)> {
    +        Err(QueryError::Missing)
    +    }
    +}
    +
    +#[async_trait]
    +impl<Types: NodeType> UpdateAvailabilityData<Types> for NoStorage
    +where
    +    Payload<Types>: QueryablePayload,
    +{
    +    type Error = Infallible;
    +
    +    async fn insert_leaf(&mut self, _leaf: LeafQueryData<Types>) -> Result<(), Self::Error> {
    +        Ok(())
    +    }
    +
    +    async fn insert_block(&mut self, _block: BlockQueryData<Types>) -> Result<(), Self::Error> {
    +        Ok(())
    +    }
    +}
    +
    +#[async_trait]
    +impl<Types: NodeType> NodeDataSource<Types> for NoStorage
    +where
    +    Payload<Types>: QueryablePayload,
    +{
    +    async fn block_height(&self) -> QueryResult<usize> {
    +        Ok(0)
    +    }
    +
    +    async fn get_proposals(
    +        &self,
    +        _id: &SignatureKey<Types>,
    +        _limit: Option<usize>,
    +    ) -> QueryResult<Vec<LeafQueryData<Types>>> {
    +        Err(QueryError::Missing)
    +    }
    +
    +    async fn count_proposals(&self, _id: &SignatureKey<Types>) -> QueryResult<usize> {
    +        Err(QueryError::Missing)
    +    }
    +
    +    async fn count_transactions(&self) -> QueryResult<usize> {
    +        Err(QueryError::Missing)
    +    }
    +
    +    async fn payload_size(&self) -> QueryResult<usize> {
    +        Err(QueryError::Missing)
    +    }
    +
    +    async fn sync_status(&self) -> QueryResult<SyncStatus> {
    +        Err(QueryError::Missing)
    +    }
    +}
    +
    +// These tests run the `postgres` Docker image, which doesn't work on Windows.
    +#[cfg(all(any(test, feature = "testing"), not(target_os = "windows")))]
    +pub mod testing {
    +    use super::*;
    +    use crate::{
    +        availability::{define_api, AvailabilityDataSource, Fetch},
    +        data_source::{
    +            storage::sql::testing::TmpDb, FetchingDataSource, SqlDataSource, UpdateDataSource,
    +        },
    +        fetching::provider::{NoFetching, QueryServiceProvider},
    +        metrics::PrometheusMetrics,
    +        node::NodeDataSource,
    +        status::StatusDataSource,
    +        testing::{
    +            consensus::{DataSourceLifeCycle, MockNetwork},
    +            mocks::MockTypes,
    +        },
    +        Error,
    +    };
    +    use async_std::task::spawn;
    +    use futures::stream::{BoxStream, StreamExt};
    +    use hotshot::types::Event;
    +    use portpicker::pick_unused_port;
    +    use std::{fmt::Display, time::Duration};
    +    use tide_disco::App;
    +
    +    /// Either Postgres or no storage.
    +    ///
    +    /// In order to instantiate [`NoStorage`] for the generic tests, we need some node running a
    +    /// real database that our [`NoStorage`] node can fetch from. We use this [`Storage`] enum to
    +    /// represent a network where the nodes are either using [`NoStorage`] or SQL storage. We will
    +    /// set node 0, the node under test, to always use [`NoStorage`].
    +    ///
    +    /// This gives us a strongly adversarial test of fetching, where the node under test never gets
    +    /// anything from local storage, but the tests still pass.
    +    pub enum Storage {
    +        Sql(TmpDb),
    +        NoStorage { fetch_from_port: u16 },
    +    }
    +
    +    pub enum DataSource {
    +        Sql(SqlDataSource<MockTypes, NoFetching>),
    +        NoStorage(FetchingDataSource<MockTypes, NoStorage, QueryServiceProvider>),
    +    }
    +
    +    #[async_trait]
    +    impl DataSourceLifeCycle for DataSource {
    +        type Storage = Storage;
    +
    +        async fn create(node_id: usize) -> Self::Storage {
    +            if node_id == 0 {
    +                Storage::NoStorage {
    +                    fetch_from_port: pick_unused_port().unwrap(),
    +                }
    +            } else {
    +                Storage::Sql(TmpDb::init().await)
    +            }
    +        }
    +
    +        async fn connect(db: &Self::Storage) -> Self {
    +            match db {
    +                Storage::Sql(db) => {
    +                    Self::Sql(db.config().connect(Default::default()).await.unwrap())
    +                }
    +                Storage::NoStorage { fetch_from_port } => {
    +                    tracing::info!("creating NoStorage node, fetching missing data from port {fetch_from_port}");
    +                    let provider = QueryServiceProvider::new(
    +                        format!("http://localhost:{fetch_from_port}")
    +                            .parse()
    +                            .unwrap(),
    +                    );
    +                    Self::NoStorage(
    +                        FetchingDataSource::builder(NoStorage, provider)
    +                            // The default minor scan interval is suitable for real scenarios, where
    +                            // missing blocks are quite rare. But in these tests, we rely entirely
    +                            // on proactive scanning to recover some objects, so we want to do this
    +                            // quite frequently.
    +                            .with_minor_scan_interval(Duration::from_millis(100))
    +                            // Similarly, we even need to do major scans frequently (every 2 minor
    +                            // scans, or 0.2s), since we are constantly losing old objects (since we
    +                            // don't have storage) and the test frequently goes back and looks up
    +                            // old objects.
    +                            .with_major_scan_interval(2)
    +                            .build()
    +                            .await
    +                            .unwrap(),
    +                    )
    +                }
    +            }
    +        }
    +
    +        async fn reset(db: &Self::Storage) -> Self {
    +            match db {
    +                Storage::Sql(db) => Self::Sql(
    +                    db.config()
    +                        .reset_schema()
    +                        .connect(Default::default())
    +                        .await
    +                        .unwrap(),
    +                ),
    +                db => Self::connect(db).await,
    +            }
    +        }
    +
    +        async fn setup(network: &MockNetwork<Self>) {
    +            // Spawn the web server on node 1 that node 0 will use to fetch missing data.
    +            let Storage::NoStorage { fetch_from_port } = network.storage() else {
    +                panic!("node 0 should always be NoStorage node");
    +            };
    +            tracing::info!("spawning server for missing data on port {fetch_from_port}");
    +            let api_data_source = network.data_source_index(1);
    +            let mut app = App::<_, Error>::with_state(api_data_source);
    +            app.register_module("availability", define_api(&Default::default()).unwrap())
    +                .unwrap();
    +            spawn(app.serve(format!("0.0.0.0:{fetch_from_port}")));
    +        }
    +
    +        async fn handle_event(&mut self, event: &Event<MockTypes>) {
    +            self.update(event).await.unwrap();
    +            self.commit().await.unwrap();
    +        }
    +    }
    +
    +    // Now a lot of boilerplate to implement all teh traits for [`DataSource`], by dispatching each
    +    // method to either variant.
    +    #[async_trait]
    +    impl VersionedDataSource for DataSource {
    +        type Error = QueryError;
    +
    +        async fn commit(&mut self) -> Result<(), Self::Error> {
    +            match self {
    +                Self::Sql(data_source) => data_source.commit().await.map_err(err_msg),
    +                Self::NoStorage(data_source) => data_source.commit().await.map_err(err_msg),
    +            }
    +        }
    +
    +        async fn revert(&mut self) {
    +            match self {
    +                Self::Sql(data_source) => data_source.revert().await,
    +                Self::NoStorage(data_source) => data_source.revert().await,
    +            }
    +        }
    +    }
    +
    +    #[async_trait]
    +    impl AvailabilityDataSource<MockTypes> for DataSource {
    +        type LeafRange<R> = BoxStream<'static, Fetch<LeafQueryData<MockTypes>>>
    +        where
    +            R: RangeBounds<usize> + Send;
    +        type BlockRange<R> = BoxStream<'static, Fetch<BlockQueryData<MockTypes>>>
    +        where
    +            R: RangeBounds<usize> + Send;
    +        type PayloadRange<R> = BoxStream<'static, Fetch<PayloadQueryData<MockTypes>>>
    +        where
    +            R: RangeBounds<usize> + Send;
    +
    +        async fn get_leaf<ID>(&self, id: ID) -> Fetch<LeafQueryData<MockTypes>>
    +        where
    +            ID: Into<LeafId<MockTypes>> + Send + Sync,
    +        {
    +            match self {
    +                Self::Sql(data_source) => data_source.get_leaf(id).await,
    +                Self::NoStorage(data_source) => data_source.get_leaf(id).await,
    +            }
    +        }
    +
    +        async fn get_block<ID>(&self, id: ID) -> Fetch<BlockQueryData<MockTypes>>
    +        where
    +            ID: Into<BlockId<MockTypes>> + Send + Sync,
    +        {
    +            match self {
    +                Self::Sql(data_source) => data_source.get_block(id).await,
    +                Self::NoStorage(data_source) => data_source.get_block(id).await,
    +            }
    +        }
    +
    +        async fn get_payload<ID>(&self, id: ID) -> Fetch<PayloadQueryData<MockTypes>>
    +        where
    +            ID: Into<BlockId<MockTypes>> + Send + Sync,
    +        {
    +            match self {
    +                Self::Sql(data_source) => data_source.get_payload(id).await,
    +                Self::NoStorage(data_source) => data_source.get_payload(id).await,
    +            }
    +        }
    +
    +        async fn get_leaf_range<R>(&self, range: R) -> Self::LeafRange<R>
    +        where
    +            R: RangeBounds<usize> + Send + 'static,
    +        {
    +            match self {
    +                Self::Sql(data_source) => data_source.get_leaf_range(range).await.boxed(),
    +                Self::NoStorage(data_source) => data_source.get_leaf_range(range).await.boxed(),
    +            }
    +        }
    +
    +        async fn get_block_range<R>(&self, range: R) -> Self::BlockRange<R>
    +        where
    +            R: RangeBounds<usize> + Send + 'static,
    +        {
    +            match self {
    +                Self::Sql(data_source) => data_source.get_block_range(range).await.boxed(),
    +                Self::NoStorage(data_source) => data_source.get_block_range(range).await.boxed(),
    +            }
    +        }
    +
    +        async fn get_payload_range<R>(&self, range: R) -> Self::PayloadRange<R>
    +        where
    +            R: RangeBounds<usize> + Send + 'static,
    +        {
    +            match self {
    +                Self::Sql(data_source) => data_source.get_payload_range(range).await.boxed(),
    +                Self::NoStorage(data_source) => data_source.get_payload_range(range).await.boxed(),
    +            }
    +        }
    +
    +        /// Returns the block containing a transaction with the given `hash` and the transaction's
    +        /// position in the block.
    +        async fn get_block_with_transaction(
    +            &self,
    +            hash: TransactionHash<MockTypes>,
    +        ) -> Fetch<(BlockQueryData<MockTypes>, TransactionIndex<MockTypes>)> {
    +            match self {
    +                Self::Sql(data_source) => data_source.get_block_with_transaction(hash).await,
    +                Self::NoStorage(data_source) => data_source.get_block_with_transaction(hash).await,
    +            }
    +        }
    +    }
    +
    +    #[async_trait]
    +    impl UpdateAvailabilityData<MockTypes> for DataSource {
    +        type Error = QueryError;
    +
    +        async fn insert_leaf(&mut self, leaf: LeafQueryData<MockTypes>) -> Result<(), Self::Error> {
    +            match self {
    +                Self::Sql(data_source) => data_source.insert_leaf(leaf).await.map_err(err_msg),
    +                Self::NoStorage(data_source) => {
    +                    data_source.insert_leaf(leaf).await.map_err(err_msg)
    +                }
    +            }
    +        }
    +
    +        async fn insert_block(
    +            &mut self,
    +            block: BlockQueryData<MockTypes>,
    +        ) -> Result<(), Self::Error> {
    +            match self {
    +                Self::Sql(data_source) => data_source.insert_block(block).await.map_err(err_msg),
    +                Self::NoStorage(data_source) => {
    +                    data_source.insert_block(block).await.map_err(err_msg)
    +                }
    +            }
    +        }
    +    }
    +
    +    #[async_trait]
    +    impl NodeDataSource<MockTypes> for DataSource {
    +        async fn block_height(&self) -> QueryResult<usize> {
    +            match self {
    +                Self::Sql(data_source) => NodeDataSource::block_height(data_source).await,
    +                Self::NoStorage(data_source) => NodeDataSource::block_height(data_source).await,
    +            }
    +        }
    +
    +        async fn get_proposals(
    +            &self,
    +            proposer: &SignatureKey<MockTypes>,
    +            limit: Option<usize>,
    +        ) -> QueryResult<Vec<LeafQueryData<MockTypes>>> {
    +            match self {
    +                Self::Sql(data_source) => data_source.get_proposals(proposer, limit).await,
    +                Self::NoStorage(data_source) => data_source.get_proposals(proposer, limit).await,
    +            }
    +        }
    +
    +        async fn count_proposals(&self, proposer: &SignatureKey<MockTypes>) -> QueryResult<usize> {
    +            match self {
    +                Self::Sql(data_source) => data_source.count_proposals(proposer).await,
    +                Self::NoStorage(data_source) => data_source.count_proposals(proposer).await,
    +            }
    +        }
    +
    +        async fn count_transactions(&self) -> QueryResult<usize> {
    +            match self {
    +                Self::Sql(data_source) => data_source.count_transactions().await,
    +                Self::NoStorage(data_source) => data_source.count_transactions().await,
    +            }
    +        }
    +
    +        async fn payload_size(&self) -> QueryResult<usize> {
    +            match self {
    +                Self::Sql(data_source) => data_source.payload_size().await,
    +                Self::NoStorage(data_source) => data_source.payload_size().await,
    +            }
    +        }
    +
    +        async fn sync_status(&self) -> QueryResult<SyncStatus> {
    +            match self {
    +                Self::Sql(data_source) => data_source.sync_status().await,
    +                Self::NoStorage(data_source) => data_source.sync_status().await,
    +            }
    +        }
    +    }
    +
    +    #[async_trait]
    +    impl StatusDataSource for DataSource {
    +        async fn block_height(&self) -> QueryResult<usize> {
    +            match self {
    +                Self::Sql(data_source) => StatusDataSource::block_height(data_source).await,
    +                Self::NoStorage(data_source) => StatusDataSource::block_height(data_source).await,
    +            }
    +        }
    +
    +        fn metrics(&self) -> &PrometheusMetrics {
    +            match self {
    +                Self::Sql(data_source) => data_source.metrics(),
    +                Self::NoStorage(data_source) => data_source.metrics(),
    +            }
    +        }
    +    }
    +
    +    fn err_msg<E: Display>(err: E) -> QueryError {
    +        QueryError::Error {
    +            message: err.to_string(),
    +        }
    +    }
    +}
    +
    +// These tests run the `postgres` Docker image, which doesn't work on Windows.
    +#[cfg(all(test, not(target_os = "windows")))]
    +mod test {
    +    use super::testing::DataSource;
    +    use crate::data_source::{availability_tests, status_tests};
    +
    +    // For some reason this is the only way to import the macro defined in another module of this
    +    // crate.
    +    use crate::*;
    +
    +    instantiate_availability_tests!(DataSource);
    +    instantiate_status_tests!(DataSource);
    +}
    +
    \ No newline at end of file diff --git a/src/hotshot_query_service/data_source/storage/sql.rs.html b/src/hotshot_query_service/data_source/storage/sql.rs.html index 38f19fafe..23508f4f5 100644 --- a/src/hotshot_query_service/data_source/storage/sql.rs.html +++ b/src/hotshot_query_service/data_source/storage/sql.rs.html @@ -1627,6 +1627,8 @@ 1626 1627 1628 +1629 +1630

    // Copyright (c) 2022 Espresso Systems (espressosys.com)
     // This file is part of the HotShot Query Service library.
     //
    @@ -1648,7 +1650,7 @@
             QueryablePayload, TransactionHash, TransactionIndex, UpdateAvailabilityData,
         },
         data_source::VersionedDataSource,
    -    node::{NodeDataSource, SyncStatus, UpdateNodeData},
    +    node::{NodeDataSource, SyncStatus},
         Header, Leaf, MissingSnafu, NotFoundSnafu, Payload, QueryError, QueryResult, SignatureKey,
     };
     use async_std::{
    @@ -2403,6 +2405,22 @@
             Ok(count as usize)
         }
     
    +    async fn count_transactions(&self) -> QueryResult<usize> {
    +        let row = self
    +            .query_one_static("SELECT count(*) FROM transaction")
    +            .await?;
    +        let count: i64 = row.get(0);
    +        Ok(count as usize)
    +    }
    +
    +    async fn payload_size(&self) -> QueryResult<usize> {
    +        let row = self
    +            .query_one_static("SELECT sum(size) FROM payload")
    +            .await?;
    +        let sum: Option<i64> = row.get(0);
    +        Ok(sum.unwrap_or(0) as usize)
    +    }
    +
         async fn sync_status(&self) -> QueryResult<SyncStatus> {
             // A leaf can only be missing if there is no row for it in the database (all its columns are
             // non-nullable). A block can be missing if its corresponding leaf is missing or if the
    @@ -2460,20 +2478,6 @@
         }
     }
     
    -#[async_trait]
    -impl<Types> UpdateNodeData<Types> for SqlStorage
    -where
    -    Types: NodeType,
    -{
    -    type Error = QueryError;
    -
    -    async fn insert_leaf(&mut self, _leaf: LeafQueryData<Types>) -> Result<(), Self::Error> {
    -        // The node data source borrows data that is populated by the availability source, so
    -        // there's nothing more to do here.
    -        Ok(())
    -    }
    -}
    -
     /// An atomic SQL transaction.
     //
     // Note: we use a custom `Transaction` type instead of `tokio_postgres::Transaction` because with
    diff --git a/src/hotshot_query_service/data_source/update.rs.html b/src/hotshot_query_service/data_source/update.rs.html
    index 291944319..2fbaeec0f 100644
    --- a/src/hotshot_query_service/data_source/update.rs.html
    +++ b/src/hotshot_query_service/data_source/update.rs.html
    @@ -126,13 +126,6 @@
     125
     126
     127
    -128
    -129
    -130
    -131
    -132
    -133
    -134
     
    // Copyright (c) 2022 Espresso Systems (espressosys.com)
     // This file is part of the HotShot Query Service library.
     //
    @@ -149,7 +142,6 @@
     use crate::availability::{
         BlockQueryData, LeafQueryData, QueryablePayload, UpdateAvailabilityData,
     };
    -use crate::node::UpdateNodeData;
     use crate::status::UpdateStatusData;
     use crate::Payload;
     use async_trait::async_trait;
    @@ -169,9 +161,7 @@
     /// * [update](Self::update), to update the query state when a new HotShot event is emitted
     #[async_trait]
     pub trait UpdateDataSource<Types: NodeType>:
    -    UpdateAvailabilityData<Types>
    -    + UpdateNodeData<Types, Error = <Self as UpdateAvailabilityData<Types>>::Error>
    -    + UpdateStatusData
    +    UpdateAvailabilityData<Types> + UpdateStatusData
     {
         /// Update query state based on a new consensus event.
         ///
    @@ -193,10 +183,7 @@
     #[async_trait]
     impl<Types: NodeType, T> UpdateDataSource<Types> for T
     where
    -    T: UpdateAvailabilityData<Types>
    -        + UpdateNodeData<Types, Error = <Self as UpdateAvailabilityData<Types>>::Error>
    -        + UpdateStatusData
    -        + Send,
    +    T: UpdateAvailabilityData<Types> + UpdateStatusData + Send,
         Payload<Types>: QueryablePayload,
     {
         async fn update(
    @@ -220,8 +207,7 @@
                     // guaranteed to correspond, and this should never panic.
                     let leaf_data =
                         LeafQueryData::new(leaf.clone(), qc.clone()).expect("inconsistent leaf");
    -                UpdateAvailabilityData::insert_leaf(self, leaf_data.clone()).await?;
    -                UpdateNodeData::insert_leaf(self, leaf_data).await?;
    +                self.insert_leaf(leaf_data.clone()).await?;
     
                     if let Some(block) = leaf.get_block_payload() {
                         self.insert_block(BlockQueryData::new(leaf.block_header.clone(), block))
    diff --git a/src/hotshot_query_service/fetching/provider/testing.rs.html b/src/hotshot_query_service/fetching/provider/testing.rs.html
    new file mode 100644
    index 000000000..38095db9b
    --- /dev/null
    +++ b/src/hotshot_query_service/fetching/provider/testing.rs.html
    @@ -0,0 +1,232 @@
    +testing.rs - source
    +    
    1
    +2
    +3
    +4
    +5
    +6
    +7
    +8
    +9
    +10
    +11
    +12
    +13
    +14
    +15
    +16
    +17
    +18
    +19
    +20
    +21
    +22
    +23
    +24
    +25
    +26
    +27
    +28
    +29
    +30
    +31
    +32
    +33
    +34
    +35
    +36
    +37
    +38
    +39
    +40
    +41
    +42
    +43
    +44
    +45
    +46
    +47
    +48
    +49
    +50
    +51
    +52
    +53
    +54
    +55
    +56
    +57
    +58
    +59
    +60
    +61
    +62
    +63
    +64
    +65
    +66
    +67
    +68
    +69
    +70
    +71
    +72
    +73
    +74
    +75
    +76
    +77
    +78
    +79
    +80
    +81
    +82
    +83
    +84
    +85
    +86
    +87
    +88
    +89
    +90
    +91
    +92
    +93
    +94
    +95
    +96
    +97
    +98
    +99
    +100
    +101
    +102
    +103
    +104
    +105
    +106
    +107
    +108
    +109
    +110
    +111
    +112
    +113
    +114
    +115
    +
    // Copyright (c) 2022 Espresso Systems (espressosys.com)
    +// This file is part of the HotShot Query Service library.
    +//
    +// This program is free software: you can redistribute it and/or modify it under the terms of the GNU
    +// General Public License as published by the Free Software Foundation, either version 3 of the
    +// License, or (at your option) any later version.
    +// This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
    +// even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    +// General Public License for more details.
    +// You should have received a copy of the GNU General Public License along with this program. If not,
    +// see <https://www.gnu.org/licenses/>.
    +
    +#![cfg(any(test, feature = "testing"))]
    +
    +use super::Provider;
    +use crate::fetching::Request;
    +use async_compatibility_layer::async_primitives::broadcast::{channel, BroadcastSender};
    +use async_std::sync::{Arc, RwLock};
    +use async_trait::async_trait;
    +use derivative::Derivative;
    +use hotshot_types::traits::node_implementation::NodeType;
    +use std::{
    +    fmt::Debug,
    +    sync::atomic::{AtomicBool, Ordering},
    +};
    +
    +/// Adaptor to add test-only functionality to an existing [`Provider`].
    +///
    +/// [`TestProvider`] wraps an existing provider `P` and adds some additional functionality which can
    +/// be useful in tests, such as the ability to inject delays into the handling of fetch requests.
    +#[derive(Derivative)]
    +#[derivative(Clone(bound = ""), Debug(bound = "P: Debug"))]
    +pub struct TestProvider<P> {
    +    inner: Arc<P>,
    +    unblock: Arc<RwLock<Option<BroadcastSender<()>>>>,
    +    fail: Arc<AtomicBool>,
    +}
    +
    +impl<P> TestProvider<P> {
    +    pub fn new(inner: P) -> Self {
    +        Self {
    +            inner: Arc::new(inner),
    +            unblock: Default::default(),
    +            fail: Arc::new(AtomicBool::new(false)),
    +        }
    +    }
    +
    +    /// Delay fetch requests until [`unblock`](Self::unblock).
    +    ///
    +    /// Fetch requests started after this method returns will block without completing until
    +    /// [`unblock`](Self::unblock) is called. This can be useful for tests to examine the state of a
    +    /// data source _before_ a fetch request completes, to check that the subsequent fetch actually
    +    /// has an effect.
    +    pub async fn block(&self) {
    +        let mut unblock = self.unblock.write().await;
    +        if unblock.is_none() {
    +            *unblock = Some(channel().0);
    +        }
    +    }
    +
    +    /// Allow blocked fetch requests to proceed.
    +    ///
    +    /// Fetch requests which are blocked as a result of a preceding call to [`block`](Self::block)
    +    /// will become unblocked.
    +    pub async fn unblock(&self) {
    +        let mut unblock = self.unblock.write().await;
    +        if let Some(unblock) = unblock.take() {
    +            unblock.send_async(()).await.ok();
    +        }
    +    }
    +
    +    /// Cause subsequent requests to fail.
    +    ///
    +    /// All requests to the provider after this function is called will fail, until
    +    /// [`unfail`](Self::unfail) is called.
    +    pub fn fail(&self) {
    +        self.fail.store(true, Ordering::SeqCst);
    +    }
    +
    +    /// Stop requests from failing as a result of a previous call to [`fail`](Self::fail).
    +    pub fn unfail(&self) {
    +        self.fail.store(false, Ordering::SeqCst);
    +    }
    +}
    +
    +#[async_trait]
    +impl<Types, P, T> Provider<Types, T> for TestProvider<P>
    +where
    +    Types: NodeType,
    +    T: Request<Types> + 'static,
    +    P: Provider<Types, T> + Sync,
    +{
    +    async fn fetch(&self, req: T) -> Option<T::Response> {
    +        // Fail the request if the user has called `fail`.
    +        if self.fail.load(Ordering::SeqCst) {
    +            return None;
    +        }
    +
    +        // Block the request if the user has called `block`.
    +        let handle = {
    +            match self.unblock.read().await.as_ref() {
    +                Some(unblock) => Some(unblock.handle_async().await),
    +                None => None,
    +            }
    +        };
    +        if let Some(mut handle) = handle {
    +            tracing::info!("request for {req:?} will block until manually unblocked");
    +            handle.recv_async().await.ok();
    +            tracing::info!("request for {req:?} unblocked");
    +        }
    +
    +        // Do the request.
    +        self.inner.fetch(req).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 de038ca2a..f82112da1 100644 --- a/src/hotshot_query_service/lib.rs.html +++ b/src/hotshot_query_service/lib.rs.html @@ -750,6 +750,20 @@ 749 750 751 +752 +753 +754 +755 +756 +757 +758 +759 +760 +761 +762 +763 +764 +765

    // Copyright (c) 2022 Espresso Systems (espressosys.com)
     // This file is part of the HotShot Query Service library.
     //
    @@ -1088,6 +1102,14 @@
     //!         self.hotshot_qs.count_proposals(id).await
     //!     }
     //!
    +//!     async fn count_transactions(&self) -> QueryResult<usize> {
    +//!         self.hotshot_qs.count_transactions().await
    +//!     }
    +//!
    +//!     async fn payload_size(&self) -> QueryResult<usize> {
    +//!         self.hotshot_qs.payload_size().await
    +//!     }
    +//!
     //!     async fn sync_status(&self) -> QueryResult<SyncStatus> {
     //!         self.hotshot_qs.sync_status().await
     //!     }
    @@ -1378,6 +1400,12 @@
             async fn count_proposals(&self, proposer: &SignatureKey<MockTypes>) -> QueryResult<usize> {
                 self.hotshot_qs.count_proposals(proposer).await
             }
    +        async fn count_transactions(&self) -> QueryResult<usize> {
    +            self.hotshot_qs.count_transactions().await
    +        }
    +        async fn payload_size(&self) -> QueryResult<usize> {
    +            self.hotshot_qs.payload_size().await
    +        }
             async fn sync_status(&self) -> QueryResult<SyncStatus> {
                 self.hotshot_qs.sync_status().await
             }
    diff --git a/src/hotshot_query_service/node.rs.html b/src/hotshot_query_service/node.rs.html
    index 7d3eeb92a..a55591c00 100644
    --- a/src/hotshot_query_service/node.rs.html
    +++ b/src/hotshot_query_service/node.rs.html
    @@ -336,6 +336,23 @@
     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.
     //
    @@ -398,7 +415,6 @@
             source: RequestError,
         },
         #[snafu(display("{source}"))]
    -    #[from(ignore)]
         Query {
             source: QueryError,
         },
    @@ -411,11 +427,6 @@
         #[snafu(display("malformed signature key"))]
         #[from(ignore)]
         InvalidSignatureKey,
    -    #[snafu(display("error getting sync status: {source}"))]
    -    #[from(ignore)]
    -    SyncStatus {
    -        source: QueryError,
    -    },
         Custom {
             message: String,
             status: StatusCode,
    @@ -433,9 +444,7 @@
         pub fn status(&self) -> StatusCode {
             match self {
                 Self::Request { .. } | Self::InvalidSignatureKey => StatusCode::BadRequest,
    -            Self::Query { source, .. }
    -            | Self::QueryProposals { source, .. }
    -            | Self::SyncStatus { source, .. } => source.status(),
    +            Self::Query { source, .. } | Self::QueryProposals { source, .. } => source.status(),
                 Self::Custom { status, .. } => *status,
             }
         }
    @@ -480,8 +489,14 @@
                 }
                 .boxed()
             })?
    +        .get("count_transactions", |_req, state| {
    +            async move { Ok(state.count_transactions().await?) }.boxed()
    +        })?
    +        .get("payload_size", |_req, state| {
    +            async move { Ok(state.payload_size().await?) }.boxed()
    +        })?
             .get("sync_status", |_req, state| {
    -            async move { state.sync_status().await.context(SyncStatusSnafu) }.boxed()
    +            async move { Ok(state.sync_status().await?) }.boxed()
             })?;
         Ok(api)
     }
    @@ -592,6 +607,25 @@
                 0
             );
     
    +        // We test these counters with non-trivial values in `data_source.rs`, here we just want to
    +        // make sure the API handlers are working, so a response of 0 is fine.
    +        assert_eq!(
    +            client
    +                .get::<u64>("transactions/count")
    +                .send()
    +                .await
    +                .unwrap(),
    +            0
    +        );
    +        assert_eq!(
    +            client
    +                .get::<u64>("payloads/total-size")
    +                .send()
    +                .await
    +                .unwrap(),
    +            0
    +        );
    +
             // In this simple test, the node should be fully synchronized.
             let sync_status = client
                 .get::<SyncStatus>("sync-status")
    diff --git a/src/hotshot_query_service/node/data_source.rs.html b/src/hotshot_query_service/node/data_source.rs.html
    index 079c3d2f3..9c6320f6b 100644
    --- a/src/hotshot_query_service/node/data_source.rs.html
    +++ b/src/hotshot_query_service/node/data_source.rs.html
    @@ -35,6 +35,14 @@
     34
     35
     36
    +37
    +38
    +39
    +40
    +41
    +42
    +43
    +44
     
    // Copyright (c) 2022 Espresso Systems (espressosys.com)
     // This file is part of the HotShot Query Service library.
     //
    @@ -47,12 +55,24 @@
     // You should have received a copy of the GNU General Public License along with this program. If not,
     // see <https://www.gnu.org/licenses/>.
     
    +//! Data for the [`node`](super) API.
    +//!
    +//! This module is just an alternative view of the same data provided by the
    +//! [`availability`](crate::availability) API. It provides more insight into what data the node
    +//! actually has at present, as opposed to trying to present a perfect view of an abstract chain,
    +//! fetching data from other sources as needed. It is also more liberal with provided aggregate
    +//! counts and statistics which may be inaccurate if data is missing.
    +//!
    +//! Due to this relationship with the availability module, this module has its own [data source
    +//! trait](`NodeDataSource`) but not its own update trait. The node data source is expected to read
    +//! its data from the same underlying database as the availability API, and as such the data is
    +//! updated implicitly via the [availability API update
    +//! trait](crate::availability::UpdateAvailabilityData).
    +
     use super::query_data::{LeafQueryData, SyncStatus};
     use crate::{QueryResult, SignatureKey};
     use async_trait::async_trait;
     use hotshot_types::traits::node_implementation::NodeType;
    -use std::error::Error;
    -use std::fmt::Debug;
     
     #[async_trait]
     pub trait NodeDataSource<Types: NodeType> {
    @@ -63,12 +83,8 @@
             limit: Option<usize>,
         ) -> QueryResult<Vec<LeafQueryData<Types>>>;
         async fn count_proposals(&self, proposer: &SignatureKey<Types>) -> QueryResult<usize>;
    +    async fn count_transactions(&self) -> QueryResult<usize>;
    +    async fn payload_size(&self) -> QueryResult<usize>;
         async fn sync_status(&self) -> QueryResult<SyncStatus>;
     }
    -
    -#[async_trait]
    -pub trait UpdateNodeData<Types: NodeType> {
    -    type Error: Error + Debug + Send + Sync + 'static;
    -    async fn insert_leaf(&mut self, leaf: LeafQueryData<Types>) -> Result<(), Self::Error>;
    -}
     

    \ No newline at end of file diff --git a/src/hotshot_query_service/testing.rs.html b/src/hotshot_query_service/testing.rs.html new file mode 100644 index 000000000..f6fe78cc3 --- /dev/null +++ b/src/hotshot_query_service/testing.rs.html @@ -0,0 +1,70 @@ +testing.rs - source +
    1
    +2
    +3
    +4
    +5
    +6
    +7
    +8
    +9
    +10
    +11
    +12
    +13
    +14
    +15
    +16
    +17
    +18
    +19
    +20
    +21
    +22
    +23
    +24
    +25
    +26
    +27
    +28
    +29
    +30
    +31
    +32
    +33
    +34
    +
    #![cfg(any(test, feature = "testing"))]
    +
    +// Copyright (c) 2022 Espresso Systems (espressosys.com)
    +// This file is part of the HotShot Query Service library.
    +//
    +// This program is free software: you can redistribute it and/or modify it under the terms of the GNU
    +// General Public License as published by the Free Software Foundation, either version 3 of the
    +// License, or (at your option) any later version.
    +// This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
    +// even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    +// General Public License for more details.
    +// You should have received a copy of the GNU General Public License along with this program. If not,
    +// see <https://www.gnu.org/licenses/>.
    +use async_compatibility_layer::logging::{setup_backtrace, setup_logging};
    +use std::time::Duration;
    +
    +pub mod consensus;
    +pub mod mocks;
    +
    +pub async fn sleep(dur: Duration) {
    +    // For some reason, `async_std::task::sleep` doesn't work on the GitHub Windows runners (it
    +    // hangs forever). `spin_sleep::sleep` works fine.
    +    async_std::task::spawn_blocking(move || spin_sleep::sleep(dur)).await;
    +}
    +
    +pub fn setup_test() {
    +    setup_logging();
    +    setup_backtrace();
    +
    +    #[cfg(all(feature = "backtrace-on-stack-overflow", not(windows)))]
    +    unsafe {
    +        backtrace_on_stack_overflow::enable();
    +    }
    +}
    +
    \ No newline at end of file diff --git a/src/hotshot_query_service/testing/consensus.rs.html b/src/hotshot_query_service/testing/consensus.rs.html new file mode 100644 index 000000000..80ec5b08e --- /dev/null +++ b/src/hotshot_query_service/testing/consensus.rs.html @@ -0,0 +1,554 @@ +consensus.rs - source +
    1
    +2
    +3
    +4
    +5
    +6
    +7
    +8
    +9
    +10
    +11
    +12
    +13
    +14
    +15
    +16
    +17
    +18
    +19
    +20
    +21
    +22
    +23
    +24
    +25
    +26
    +27
    +28
    +29
    +30
    +31
    +32
    +33
    +34
    +35
    +36
    +37
    +38
    +39
    +40
    +41
    +42
    +43
    +44
    +45
    +46
    +47
    +48
    +49
    +50
    +51
    +52
    +53
    +54
    +55
    +56
    +57
    +58
    +59
    +60
    +61
    +62
    +63
    +64
    +65
    +66
    +67
    +68
    +69
    +70
    +71
    +72
    +73
    +74
    +75
    +76
    +77
    +78
    +79
    +80
    +81
    +82
    +83
    +84
    +85
    +86
    +87
    +88
    +89
    +90
    +91
    +92
    +93
    +94
    +95
    +96
    +97
    +98
    +99
    +100
    +101
    +102
    +103
    +104
    +105
    +106
    +107
    +108
    +109
    +110
    +111
    +112
    +113
    +114
    +115
    +116
    +117
    +118
    +119
    +120
    +121
    +122
    +123
    +124
    +125
    +126
    +127
    +128
    +129
    +130
    +131
    +132
    +133
    +134
    +135
    +136
    +137
    +138
    +139
    +140
    +141
    +142
    +143
    +144
    +145
    +146
    +147
    +148
    +149
    +150
    +151
    +152
    +153
    +154
    +155
    +156
    +157
    +158
    +159
    +160
    +161
    +162
    +163
    +164
    +165
    +166
    +167
    +168
    +169
    +170
    +171
    +172
    +173
    +174
    +175
    +176
    +177
    +178
    +179
    +180
    +181
    +182
    +183
    +184
    +185
    +186
    +187
    +188
    +189
    +190
    +191
    +192
    +193
    +194
    +195
    +196
    +197
    +198
    +199
    +200
    +201
    +202
    +203
    +204
    +205
    +206
    +207
    +208
    +209
    +210
    +211
    +212
    +213
    +214
    +215
    +216
    +217
    +218
    +219
    +220
    +221
    +222
    +223
    +224
    +225
    +226
    +227
    +228
    +229
    +230
    +231
    +232
    +233
    +234
    +235
    +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
    +
    // Copyright (c) 2022 Espresso Systems (espressosys.com)
    +// This file is part of the HotShot Query Service library.
    +//
    +// This program is free software: you can redistribute it and/or modify it under the terms of the GNU
    +// General Public License as published by the Free Software Foundation, either version 3 of the
    +// License, or (at your option) any later version.
    +// This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
    +// even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    +// General Public License for more details.
    +// You should have received a copy of the GNU General Public License along with this program. If not,
    +// see <https://www.gnu.org/licenses/>.
    +
    +use super::mocks::{MockMembership, MockNodeImpl, MockTransaction, MockTypes};
    +use crate::{
    +    availability::AvailabilityDataSource,
    +    data_source::{FileSystemDataSource, UpdateDataSource, VersionedDataSource},
    +    fetching::provider::NoFetching,
    +    node::NodeDataSource,
    +    status::{StatusDataSource, UpdateStatusData},
    +    SignatureKey,
    +};
    +use async_std::{
    +    sync::{Arc, RwLock},
    +    task::spawn,
    +};
    +use async_trait::async_trait;
    +use futures::{future::join_all, stream::StreamExt};
    +use hotshot::{
    +    traits::implementations::{MasterMap, MemoryNetwork, MemoryStorage, NetworkingMetricsValue},
    +    types::{Event, SystemContextHandle},
    +    HotShotInitializer, Memberships, Networks, SystemContext,
    +};
    +use hotshot_example_types::state_types::TestInstanceState;
    +use hotshot_types::{
    +    consensus::ConsensusMetricsValue,
    +    light_client::StateKeyPair,
    +    signature_key::BLSPubKey,
    +    traits::{election::Membership, signature_key::SignatureKey as _},
    +    ExecutionType, HotShotConfig, ValidatorConfig,
    +};
    +use std::num::NonZeroUsize;
    +use std::time::Duration;
    +
    +struct MockNode<D: DataSourceLifeCycle> {
    +    hotshot: SystemContextHandle<MockTypes, MockNodeImpl>,
    +    data_source: Arc<RwLock<D>>,
    +    storage: D::Storage,
    +}
    +
    +pub struct MockNetwork<D: DataSourceLifeCycle> {
    +    nodes: Vec<MockNode<D>>,
    +    pub_keys: Vec<BLSPubKey>,
    +}
    +
    +// MockNetwork can be used with any DataSourceLifeCycle, but it's nice to have a default with a
    +// convenient type alias.
    +pub type MockDataSource = FileSystemDataSource<MockTypes, NoFetching>;
    +
    +pub const NUM_NODES: usize = 2;
    +
    +impl<D: DataSourceLifeCycle + UpdateStatusData> MockNetwork<D> {
    +    pub async fn init() -> Self {
    +        let (pub_keys, priv_keys): (Vec<_>, Vec<_>) = (0..NUM_NODES)
    +            .map(|i| BLSPubKey::generated_from_seed_indexed([0; 32], i as u64))
    +            .unzip();
    +        let total_nodes = NonZeroUsize::new(pub_keys.len()).unwrap();
    +        let master_map = MasterMap::new();
    +        let stake = 1u64;
    +        let known_nodes_with_stake: Vec<
    +            <BLSPubKey as hotshot::types::SignatureKey>::StakeTableEntry,
    +        > = (0..total_nodes.into())
    +            .map(|id| pub_keys[id].get_stake_table_entry(stake))
    +            .collect();
    +        let nodes = join_all(
    +            priv_keys
    +                .into_iter()
    +                .enumerate()
    +                .map(|(node_id, priv_key)| {
    +                    let my_own_validator_config = ValidatorConfig {
    +                        public_key: pub_keys[node_id],
    +                        private_key: priv_key.clone(),
    +                        stake_value: stake,
    +                        state_key_pair: StateKeyPair::generate_from_seed_indexed(
    +                            [0; 32],
    +                            node_id as u64,
    +                        ),
    +                    };
    +                    let config = HotShotConfig {
    +                        total_nodes,
    +                        known_nodes_with_stake: known_nodes_with_stake.clone(),
    +                        my_own_validator_config,
    +                        start_delay: 0,
    +                        round_start_delay: 0,
    +                        next_view_timeout: 10000,
    +                        timeout_ratio: (11, 10),
    +                        propose_min_round_time: Duration::from_secs(0),
    +                        propose_max_round_time: Duration::from_millis(500),
    +                        min_transactions: 1,
    +                        max_transactions: NonZeroUsize::new(100).unwrap(),
    +                        num_bootstrap: 0,
    +                        execution_type: ExecutionType::Continuous,
    +                        election_config: None,
    +                        da_committee_size: pub_keys.len(),
    +                    };
    +
    +                    let pub_keys = pub_keys.clone();
    +                    let known_nodes_with_stake = known_nodes_with_stake.clone();
    +                    let config = config.clone();
    +                    let master_map = master_map.clone();
    +                    let election_config =
    +                        MockMembership::default_election_config(total_nodes.get() as u64);
    +
    +                    async move {
    +                        let storage = D::create(node_id).await;
    +                        let data_source = D::connect(&storage).await;
    +
    +                        let network = Arc::new(MemoryNetwork::new(
    +                            pub_keys[node_id],
    +                            NetworkingMetricsValue::new(&*data_source.populate_metrics()),
    +                            master_map.clone(),
    +                            None,
    +                        ));
    +
    +                        let networks = Networks {
    +                            quorum_network: network.clone(),
    +                            da_network: network,
    +                            _pd: std::marker::PhantomData,
    +                        };
    +                        let membership = MockMembership::create_election(
    +                            known_nodes_with_stake.clone(),
    +                            election_config.clone(),
    +                        );
    +
    +                        let memberships = Memberships {
    +                            quorum_membership: membership.clone(),
    +                            da_membership: membership.clone(),
    +                            vid_membership: membership.clone(),
    +                            view_sync_membership: membership.clone(),
    +                        };
    +
    +                        let hotshot = SystemContext::init(
    +                            pub_keys[node_id],
    +                            priv_key,
    +                            node_id as u64,
    +                            config,
    +                            MemoryStorage::empty(),
    +                            memberships,
    +                            networks,
    +                            HotShotInitializer::from_genesis(&TestInstanceState {}).unwrap(),
    +                            ConsensusMetricsValue::new(&*data_source.populate_metrics()),
    +                        )
    +                        .await
    +                        .unwrap()
    +                        .0;
    +                        MockNode {
    +                            hotshot,
    +                            data_source: Arc::new(RwLock::new(data_source)),
    +                            storage,
    +                        }
    +                    }
    +                }),
    +        )
    +        .await;
    +
    +        let network = Self { nodes, pub_keys };
    +        D::setup(&network).await;
    +        network
    +    }
    +}
    +
    +impl<D: DataSourceLifeCycle> MockNetwork<D> {
    +    pub fn handle(&self) -> SystemContextHandle<MockTypes, MockNodeImpl> {
    +        self.nodes[0].hotshot.clone()
    +    }
    +
    +    pub async fn submit_transaction(&self, tx: MockTransaction) {
    +        self.handle().submit_transaction(tx).await.unwrap();
    +    }
    +
    +    pub fn num_nodes(&self) -> usize {
    +        self.pub_keys.len()
    +    }
    +
    +    pub fn proposer(&self, i: usize) -> SignatureKey<MockTypes> {
    +        self.pub_keys[i]
    +    }
    +
    +    pub fn data_source_index(&self, i: usize) -> Arc<RwLock<D>> {
    +        self.nodes[i].data_source.clone()
    +    }
    +
    +    pub fn data_source(&self) -> Arc<RwLock<D>> {
    +        self.data_source_index(0)
    +    }
    +
    +    pub fn storage(&self) -> &D::Storage {
    +        &self.nodes[0].storage
    +    }
    +
    +    pub async fn shut_down(mut self) {
    +        self.shut_down_impl().await
    +    }
    +
    +    async fn shut_down_impl(&mut self) {
    +        for mut node in std::mem::take(&mut self.nodes) {
    +            node.hotshot.shut_down().await;
    +        }
    +    }
    +}
    +
    +impl<D: DataSourceLifeCycle> MockNetwork<D> {
    +    pub async fn start(&mut self) {
    +        // Spawn the update tasks.
    +        for node in &mut self.nodes {
    +            let ds = node.data_source.clone();
    +            let mut events = node.hotshot.get_event_stream();
    +            spawn(async move {
    +                while let Some(event) = events.next().await {
    +                    tracing::info!("EVENT {:?}", event.event);
    +                    let mut ds = ds.write().await;
    +                    ds.handle_event(&event).await;
    +                }
    +            });
    +        }
    +
    +        join_all(
    +            self.nodes
    +                .iter()
    +                .map(|node| node.hotshot.hotshot.start_consensus()),
    +        )
    +        .await;
    +    }
    +}
    +
    +impl<D: DataSourceLifeCycle> Drop for MockNetwork<D> {
    +    fn drop(&mut self) {
    +        async_std::task::block_on(self.shut_down_impl())
    +    }
    +}
    +
    +#[async_trait]
    +pub trait DataSourceLifeCycle: Send + Sync + Sized + 'static {
    +    /// Backing storage for the data source.
    +    ///
    +    /// This can be used to connect to data sources to the same underlying data. It must be kept
    +    /// alive as long as the related data sources are open.
    +    type Storage: Send + Sync;
    +
    +    async fn create(node_id: usize) -> Self::Storage;
    +    async fn connect(storage: &Self::Storage) -> Self;
    +    async fn reset(storage: &Self::Storage) -> Self;
    +    async fn handle_event(&mut self, event: &Event<MockTypes>);
    +
    +    /// Setup runs after setting up the network but before starting a test.
    +    async fn setup(_network: &MockNetwork<Self>) {}
    +}
    +
    +pub trait TestableDataSource:
    +    DataSourceLifeCycle
    +    + AvailabilityDataSource<MockTypes>
    +    + NodeDataSource<MockTypes>
    +    + StatusDataSource
    +    + UpdateDataSource<MockTypes>
    +    + VersionedDataSource
    +{
    +}
    +
    +impl<T> TestableDataSource for T where
    +    T: DataSourceLifeCycle
    +        + AvailabilityDataSource<MockTypes>
    +        + NodeDataSource<MockTypes>
    +        + StatusDataSource
    +        + UpdateDataSource<MockTypes>
    +        + VersionedDataSource
    +{
    +}
    +
    \ No newline at end of file diff --git a/src/hotshot_query_service/testing/mocks.rs.html b/src/hotshot_query_service/testing/mocks.rs.html new file mode 100644 index 000000000..de5f65a27 --- /dev/null +++ b/src/hotshot_query_service/testing/mocks.rs.html @@ -0,0 +1,188 @@ +mocks.rs - source +
    1
    +2
    +3
    +4
    +5
    +6
    +7
    +8
    +9
    +10
    +11
    +12
    +13
    +14
    +15
    +16
    +17
    +18
    +19
    +20
    +21
    +22
    +23
    +24
    +25
    +26
    +27
    +28
    +29
    +30
    +31
    +32
    +33
    +34
    +35
    +36
    +37
    +38
    +39
    +40
    +41
    +42
    +43
    +44
    +45
    +46
    +47
    +48
    +49
    +50
    +51
    +52
    +53
    +54
    +55
    +56
    +57
    +58
    +59
    +60
    +61
    +62
    +63
    +64
    +65
    +66
    +67
    +68
    +69
    +70
    +71
    +72
    +73
    +74
    +75
    +76
    +77
    +78
    +79
    +80
    +81
    +82
    +83
    +84
    +85
    +86
    +87
    +88
    +89
    +90
    +91
    +92
    +93
    +
    // Copyright (c) 2022 Espresso Systems (espressosys.com)
    +// This file is part of the HotShot Query Service library.
    +//
    +// This program is free software: you can redistribute it and/or modify it under the terms of the GNU
    +// General Public License as published by the Free Software Foundation, either version 3 of the
    +// License, or (at your option) any later version.
    +// This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
    +// even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    +// General Public License for more details.
    +// You should have received a copy of the GNU General Public License along with this program. If not,
    +// see <https://www.gnu.org/licenses/>.
    +
    +use crate::availability::QueryablePayload;
    +use hotshot::traits::{
    +    election::static_committee::{GeneralStaticCommittee, StaticElectionConfig},
    +    implementations::{MemoryNetwork, MemoryStorage},
    +    NodeImplementation,
    +};
    +use hotshot_example_types::{
    +    block_types::{TestBlockHeader, TestBlockPayload, TestTransaction},
    +    state_types::{TestInstanceState, TestValidatedState},
    +};
    +use hotshot_types::{
    +    data::{QuorumProposal, ViewNumber},
    +    message::Message,
    +    signature_key::BLSPubKey,
    +    traits::node_implementation::NodeType,
    +};
    +use serde::{Deserialize, Serialize};
    +use std::ops::Range;
    +
    +pub type MockHeader = TestBlockHeader;
    +pub type MockPayload = TestBlockPayload;
    +pub type MockTransaction = TestTransaction;
    +
    +pub fn mock_transaction(payload: Vec<u8>) -> MockTransaction {
    +    TestTransaction(payload)
    +}
    +
    +impl QueryablePayload for MockPayload {
    +    type TransactionIndex = usize;
    +    type Iter<'a> = Range<usize>;
    +    type InclusionProof = ();
    +
    +    fn len(&self, _meta: &Self::Metadata) -> usize {
    +        self.transactions.len()
    +    }
    +
    +    fn iter(&self, meta: &Self::Metadata) -> Self::Iter<'_> {
    +        0..self.len(meta)
    +    }
    +
    +    fn transaction_with_proof(
    +        &self,
    +        _meta: &Self::Metadata,
    +        index: &Self::TransactionIndex,
    +    ) -> Option<(Self::Transaction, Self::InclusionProof)> {
    +        self.transactions.get(*index).cloned().map(|tx| (tx, ()))
    +    }
    +}
    +
    +#[derive(
    +    Copy, Clone, Debug, Default, Hash, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize,
    +)]
    +pub struct MockTypes;
    +
    +impl NodeType for MockTypes {
    +    type Time = ViewNumber;
    +    type BlockHeader = MockHeader;
    +    type BlockPayload = MockPayload;
    +    type SignatureKey = BLSPubKey;
    +    type Transaction = MockTransaction;
    +    type ElectionConfigType = StaticElectionConfig;
    +    type InstanceState = TestInstanceState;
    +    type ValidatedState = TestValidatedState;
    +    type Membership = GeneralStaticCommittee<Self, BLSPubKey>;
    +}
    +
    +pub type MockMembership = GeneralStaticCommittee<MockTypes, <MockTypes as NodeType>::SignatureKey>;
    +
    +pub type MockQuorumProposal = QuorumProposal<MockTypes>;
    +pub type MockNetwork = MemoryNetwork<Message<MockTypes>, BLSPubKey>;
    +
    +#[derive(
    +    Copy, Clone, Debug, Default, Hash, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize,
    +)]
    +pub struct MockNodeImpl;
    +
    +impl NodeImplementation<MockTypes> for MockNodeImpl {
    +    type Storage = MemoryStorage<MockTypes>;
    +    type QuorumNetwork = MockNetwork;
    +    type CommitteeNetwork = MockNetwork;
    +}
    +
    \ No newline at end of file diff --git a/trait.impl/clap_builder/derive/trait.Args.js b/trait.impl/clap_builder/derive/trait.Args.js index 97ad10ebb..531d6fe0b 100644 --- a/trait.impl/clap_builder/derive/trait.Args.js +++ b/trait.impl/clap_builder/derive/trait.Args.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"hotshot_query_service":[["impl Args for Options"],["impl Args for Options"],["impl Args for Options"],["impl Args for Options"]] +"hotshot_query_service":[["impl Args for Options"],["impl Args for Options"],["impl Args for Options"],["impl Args for Options"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/clap_builder/derive/trait.FromArgMatches.js b/trait.impl/clap_builder/derive/trait.FromArgMatches.js index 800481b4a..aebb164cc 100644 --- a/trait.impl/clap_builder/derive/trait.FromArgMatches.js +++ b/trait.impl/clap_builder/derive/trait.FromArgMatches.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"hotshot_query_service":[["impl FromArgMatches for Options"],["impl FromArgMatches for Options"],["impl FromArgMatches for Options"],["impl FromArgMatches for Options"]] +"hotshot_query_service":[["impl FromArgMatches for Options"],["impl FromArgMatches for Options"],["impl FromArgMatches for Options"],["impl FromArgMatches for Options"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/clone/trait.Clone.js b/trait.impl/core/clone/trait.Clone.js index 68f1aeef9..63d3f08b3 100644 --- a/trait.impl/core/clone/trait.Clone.js +++ b/trait.impl/core/clone/trait.Clone.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"hotshot_query_service":[["impl<Types: Clone + NodeType> Clone for TransactionSummaryQueryData<Types>"],["impl<__T0: Clone> Clone for Snafu<__T0>"],["impl<Types: NodeType> Clone for BlockId<Types>"],["impl Clone for QueryServiceProvider"],["impl Clone for SyncStatus"],["impl<__T0: Clone> Clone for FetchBlockSnafu<__T0>"],["impl<Types> Clone for BlockRequest<Types>
    where\n Types: NodeType,
    "],["impl<__T0: Clone> Clone for FetchLeafSnafu<__T0>"],["impl<__T0: Clone, __T1: Clone> Clone for InvalidTransactionIndexSnafu<__T0, __T1>"],["impl Clone for Error"],["impl Clone for MissingSnafu"],["impl<Types: Clone + NodeType> Clone for BlockQueryData<Types>"],["impl<Types: Clone + NodeType> Clone for PayloadQueryData<Types>"],["impl<D: Clone, U: Clone> Clone for ExtensibleDataSource<D, U>"],["impl Clone for NotFoundSnafu"],["impl<Types: Clone + NodeType> Clone for TransactionQueryData<Types>
    where\n Payload<Types>: QueryablePayload,
    "],["impl<Types: Clone + NodeType> Clone for InconsistentLeafError<Types>"],["impl Clone for Counter"],["impl Clone for NoFetching"],["impl Clone for Gauge"],["impl Clone for SyncStatusSnafu"],["impl<Types, S, P> Clone for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,
    "],["impl Clone for Config"],["impl Clone for PrometheusMetrics"],["impl Clone for MempoolQueryData"],["impl<__T0: Clone, __T1: Clone> Clone for CustomSnafu<__T0, __T1>"],["impl<__T0: Clone> Clone for QueryProposalsSnafu<__T0>"],["impl Clone for Error"],["impl Clone for Error"],["impl Clone for InvalidSignatureKeySnafu"],["impl Clone for MetricsDataSource"],["impl Clone for RequestSnafu"],["impl<T, C> Clone for Fetcher<T, C>"],["impl Clone for QuerySnafu"],["impl<Types: Clone + NodeType> Clone for LeafQueryData<Types>"],["impl<__T0: Clone, __T1: Clone> Clone for CustomSnafu<__T0, __T1>"],["impl<Types: Clone + NodeType> Clone for BlockSummaryQueryData<Types>"],["impl Clone for PayloadRequest"],["impl<Types> Clone for AnyProvider<Types>
    where\n Types: NodeType,
    "],["impl Clone for Error"],["impl Clone for Label"],["impl<__T0: Clone> Clone for FetchTransactionSnafu<__T0>"],["impl Clone for Histogram"],["impl Clone for RequestSnafu"],["impl Clone for LeafRequest"],["impl<Types: NodeType> Clone for LeafId<Types>"],["impl Clone for QueryError"]] +"hotshot_query_service":[["impl Clone for PayloadRequest"],["impl<P> Clone for TestProvider<P>"],["impl Clone for RequestSnafu"],["impl<__T0: Clone> Clone for FetchBlockSnafu<__T0>"],["impl Clone for RequestSnafu"],["impl<T, C> Clone for Fetcher<T, C>"],["impl Clone for Error"],["impl Clone for NotFoundSnafu"],["impl<Types: Clone + NodeType> Clone for LeafQueryData<Types>"],["impl Clone for MetricsDataSource"],["impl<Types: NodeType> Clone for BlockId<Types>"],["impl Clone for Error"],["impl Clone for PrometheusMetrics"],["impl Clone for NoStorage"],["impl<__T0: Clone, __T1: Clone> Clone for InvalidTransactionIndexSnafu<__T0, __T1>"],["impl Clone for MockNodeImpl"],["impl<__T0: Clone> Clone for Snafu<__T0>"],["impl Clone for Counter"],["impl<Types: Clone + NodeType> Clone for TransactionQueryData<Types>
    where\n Payload<Types>: QueryablePayload,
    "],["impl<Types: Clone + NodeType> Clone for TransactionSummaryQueryData<Types>"],["impl<__T0: Clone, __T1: Clone> Clone for CustomSnafu<__T0, __T1>"],["impl<Types: Clone + NodeType> Clone for PayloadQueryData<Types>"],["impl Clone for InvalidSignatureKeySnafu"],["impl<Types: NodeType> Clone for LeafId<Types>"],["impl<Types: Clone + NodeType> Clone for BlockSummaryQueryData<Types>"],["impl<Types, S, P> Clone for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,
    "],["impl<__T0: Clone> Clone for FetchLeafSnafu<__T0>"],["impl<Types: Clone + NodeType> Clone for BlockQueryData<Types>"],["impl<__T0: Clone> Clone for QueryProposalsSnafu<__T0>"],["impl Clone for LeafRequest"],["impl<__T0: Clone, __T1: Clone> Clone for CustomSnafu<__T0, __T1>"],["impl<__T0: Clone> Clone for FetchTransactionSnafu<__T0>"],["impl Clone for QueryError"],["impl Clone for SyncStatus"],["impl Clone for Error"],["impl Clone for Config"],["impl Clone for Label"],["impl Clone for Error"],["impl<Types> Clone for BlockRequest<Types>
    where\n Types: NodeType,
    "],["impl Clone for MempoolQueryData"],["impl<Types: Clone + NodeType> Clone for InconsistentLeafError<Types>"],["impl Clone for QuerySnafu"],["impl<D: Clone, U: Clone> Clone for ExtensibleDataSource<D, U>"],["impl Clone for MissingSnafu"],["impl Clone for Gauge"],["impl<Types> Clone for AnyProvider<Types>
    where\n Types: NodeType,
    "],["impl Clone for QueryServiceProvider"],["impl Clone for MockTypes"],["impl Clone for Histogram"],["impl Clone for NoFetching"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ 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 82af3634e..37f41ecb3 100644 --- a/trait.impl/core/cmp/trait.Eq.js +++ b/trait.impl/core/cmp/trait.Eq.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"hotshot_query_service":[["impl Eq for PayloadRequest"],["impl<Types: Eq + NodeType> Eq for BlockSummaryQueryData<Types>"],["impl Eq for MempoolQueryData"],["impl Eq for LeafRequest"],["impl<Types: Eq + NodeType> Eq for BlockQueryData<Types>"],["impl<Types: Eq + NodeType> Eq for PayloadQueryData<Types>"],["impl<Types: Eq + NodeType> Eq for TransactionQueryData<Types>
    where\n Payload<Types>: QueryablePayload,
    "],["impl<Types: Eq + NodeType> Eq for TransactionSummaryQueryData<Types>"],["impl<Types: NodeType> Eq for LeafId<Types>"],["impl<Types> Eq for BlockRequest<Types>
    where\n Types: NodeType,
    "],["impl<Types: Eq + NodeType> Eq for LeafQueryData<Types>"],["impl Eq for SyncStatus"],["impl<Types: NodeType> Eq for BlockId<Types>"]] +"hotshot_query_service":[["impl<Types: Eq + NodeType> Eq for TransactionSummaryQueryData<Types>"],["impl<Types> Eq for BlockRequest<Types>
    where\n Types: NodeType,
    "],["impl<Types: Eq + NodeType> Eq for PayloadQueryData<Types>"],["impl Eq for MockNodeImpl"],["impl<Types: NodeType> Eq for BlockId<Types>"],["impl<Types: NodeType> Eq for LeafId<Types>"],["impl Eq for MockTypes"],["impl Eq for MempoolQueryData"],["impl Eq for SyncStatus"],["impl Eq for LeafRequest"],["impl<Types: Eq + NodeType> Eq for BlockQueryData<Types>"],["impl<Types: Eq + NodeType> Eq for LeafQueryData<Types>"],["impl<Types: Eq + NodeType> Eq for TransactionQueryData<Types>
    where\n Payload<Types>: QueryablePayload,
    "],["impl<Types: Eq + NodeType> Eq for BlockSummaryQueryData<Types>"],["impl Eq for PayloadRequest"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/cmp/trait.Ord.js b/trait.impl/core/cmp/trait.Ord.js index 8ee07cf9c..406e14753 100644 --- a/trait.impl/core/cmp/trait.Ord.js +++ b/trait.impl/core/cmp/trait.Ord.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"hotshot_query_service":[["impl<Types: NodeType> Ord for BlockId<Types>"],["impl Ord for MempoolQueryData"],["impl<Types> Ord for BlockRequest<Types>
    where\n Types: NodeType,
    "],["impl<Types: NodeType> Ord for LeafId<Types>"],["impl Ord for SyncStatus"]] +"hotshot_query_service":[["impl Ord for MockNodeImpl"],["impl<Types: NodeType> Ord for BlockId<Types>"],["impl<Types: NodeType> Ord for LeafId<Types>"],["impl<Types> Ord for BlockRequest<Types>
    where\n Types: NodeType,
    "],["impl Ord for SyncStatus"],["impl Ord for MockTypes"],["impl Ord for MempoolQueryData"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ 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 70bf62c69..c706b3ff0 100644 --- a/trait.impl/core/cmp/trait.PartialEq.js +++ b/trait.impl/core/cmp/trait.PartialEq.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"hotshot_query_service":[["impl PartialEq for MempoolQueryData"],["impl PartialEq for PayloadRequest"],["impl<Types: PartialEq + NodeType> PartialEq for TransactionSummaryQueryData<Types>"],["impl<Types> PartialEq for BlockRequest<Types>
    where\n Types: NodeType,
    "],["impl<Types: NodeType> PartialEq for BlockId<Types>"],["impl<Types: NodeType> PartialEq for LeafId<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for PayloadQueryData<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for BlockQueryData<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for LeafQueryData<Types>"],["impl PartialEq for LeafRequest"],["impl<Types: PartialEq + NodeType> PartialEq for TransactionQueryData<Types>
    where\n Payload<Types>: QueryablePayload,
    "],["impl PartialEq for SyncStatus"],["impl<Types: PartialEq + NodeType> PartialEq for BlockSummaryQueryData<Types>"]] +"hotshot_query_service":[["impl<Types: PartialEq + NodeType> PartialEq for TransactionQueryData<Types>
    where\n Payload<Types>: QueryablePayload,
    "],["impl<Types: PartialEq + NodeType> PartialEq for PayloadQueryData<Types>"],["impl PartialEq for SyncStatus"],["impl PartialEq for MockTypes"],["impl<Types: NodeType> PartialEq for LeafId<Types>"],["impl<Types> PartialEq for BlockRequest<Types>
    where\n Types: NodeType,
    "],["impl PartialEq for PayloadRequest"],["impl PartialEq for MempoolQueryData"],["impl<Types: PartialEq + NodeType> PartialEq for BlockQueryData<Types>"],["impl PartialEq for MockNodeImpl"],["impl<Types: NodeType> PartialEq for BlockId<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for BlockSummaryQueryData<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for TransactionSummaryQueryData<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for LeafQueryData<Types>"],["impl PartialEq for LeafRequest"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/cmp/trait.PartialOrd.js b/trait.impl/core/cmp/trait.PartialOrd.js index c8916fcd1..fea21f9ec 100644 --- a/trait.impl/core/cmp/trait.PartialOrd.js +++ b/trait.impl/core/cmp/trait.PartialOrd.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"hotshot_query_service":[["impl<Types: NodeType> PartialOrd for LeafId<Types>"],["impl PartialOrd for MempoolQueryData"],["impl<Types> PartialOrd for BlockRequest<Types>
    where\n Types: NodeType,
    "],["impl PartialOrd for SyncStatus"],["impl<Types: NodeType> PartialOrd for BlockId<Types>"]] +"hotshot_query_service":[["impl PartialOrd for MockTypes"],["impl PartialOrd for MempoolQueryData"],["impl PartialOrd for MockNodeImpl"],["impl<Types: NodeType> PartialOrd for LeafId<Types>"],["impl<Types: NodeType> PartialOrd for BlockId<Types>"],["impl PartialOrd for SyncStatus"],["impl<Types> PartialOrd for BlockRequest<Types>
    where\n Types: NodeType,
    "]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ 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 608e8c7b0..1055bace7 100644 --- a/trait.impl/core/convert/trait.From.js +++ b/trait.impl/core/convert/trait.From.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"hotshot_query_service":[["impl From<RequestError> for Error"],["impl From<Error> for Error"],["impl From<Error> for MetricsError"],["impl From<RequestError> for Error"],["impl From<Error> for Error"],["impl<Types> From<usize> for BlockRequest<Types>
    where\n Types: NodeType,
    "],["impl From<Error> for Error"],["impl<Types> From<BlockId<Types>> for BlockRequest<Types>
    where\n Types: NodeType,
    "],["impl<Types: NodeType> From<Commitment<Leaf<Types>>> for LeafId<Types>"],["impl From<RequestError> for Error"],["impl From<(String, StatusCode)> for Error"],["impl From<(String, StatusCode)> for Error"],["impl<'a, Types, S> From<RwLockWriteGuard<'a, NotifyStorage<Types, S>>> for StorageWriteGuard<'a, Types, S>
    where\n Types: NodeType,
    "],["impl From<Config> for Config"],["impl<Types: NodeType> From<BlockQueryData<Types>> for BlockSummaryQueryData<Types>
    where\n Payload<Types>: QueryablePayload,
    "],["impl<Types: NodeType> From<usize> for BlockId<Types>"],["impl<'a, Types, S> From<RwLockReadGuard<'a, NotifyStorage<Types, S>>> for StorageReadGuard<'a, Types, S>
    where\n Types: NodeType,
    "],["impl<Types: NodeType> From<usize> for LeafId<Types>"],["impl<Types> From<Commitment<<<Types as NodeType>::BlockPayload as BlockPayload>::Transaction>> for BlockRequest<Types>
    where\n Types: NodeType,
    "],["impl From<LeafRequest> for usize"],["impl<Types: NodeType> From<Commitment<<Types as NodeType>::BlockHeader>> for BlockId<Types>"],["impl From<(String, StatusCode)> for Error"],["impl From<String> for Error"],["impl From<usize> for LeafRequest"],["impl<Types: NodeType> From<BlockQueryData<Types>> for PayloadQueryData<Types>"]] +"hotshot_query_service":[["impl From<Error> for Error"],["impl From<(String, StatusCode)> for Error"],["impl From<usize> for LeafRequest"],["impl<Types> From<Commitment<<<Types as NodeType>::BlockPayload as BlockPayload>::Transaction>> for BlockRequest<Types>
    where\n Types: NodeType,
    "],["impl From<Error> for Error"],["impl From<LeafRequest> for usize"],["impl<Types: NodeType> From<BlockQueryData<Types>> for PayloadQueryData<Types>"],["impl<Types> From<usize> for BlockRequest<Types>
    where\n Types: NodeType,
    "],["impl<'a, Types, S> From<RwLockWriteGuard<'a, NotifyStorage<Types, S>>> for StorageWriteGuard<'a, Types, S>
    where\n Types: NodeType,
    "],["impl From<Error> for Error"],["impl From<RequestError> for Error"],["impl<'a, Types, S> From<RwLockReadGuard<'a, NotifyStorage<Types, S>>> for StorageReadGuard<'a, Types, S>
    where\n Types: NodeType,
    "],["impl From<Config> for Config"],["impl From<(String, StatusCode)> for Error"],["impl From<RequestError> for Error"],["impl<Types> From<BlockId<Types>> for BlockRequest<Types>
    where\n Types: NodeType,
    "],["impl<Types: NodeType> From<usize> for BlockId<Types>"],["impl<Types: NodeType> From<BlockQueryData<Types>> for BlockSummaryQueryData<Types>
    where\n Payload<Types>: QueryablePayload,
    "],["impl From<RequestError> for Error"],["impl<Types: NodeType> From<usize> for LeafId<Types>"],["impl From<Error> for MetricsError"],["impl From<String> for Error"],["impl<Types: NodeType> From<Commitment<<Types as NodeType>::BlockHeader>> for BlockId<Types>"],["impl From<(String, StatusCode)> for Error"],["impl<Types: NodeType> From<Commitment<Leaf<Types>>> for LeafId<Types>"],["impl From<QueryError> for Error"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/default/trait.Default.js b/trait.impl/core/default/trait.Default.js index 6f4e1bd7b..eaab72efd 100644 --- a/trait.impl/core/default/trait.Default.js +++ b/trait.impl/core/default/trait.Default.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"hotshot_query_service":[["impl Default for Options"],["impl<Types> Default for AnyProvider<Types>
    where\n Types: NodeType,
    "],["impl Default for NoFetching"],["impl<T, C> Default for Fetcher<T, C>"],["impl Default for Options"],["impl Default for Options"],["impl Default for Options"],["impl Default for PrometheusMetrics"],["impl Default for MetricsDataSource"],["impl Default for Config"],["impl Default for MempoolQueryData"]] +"hotshot_query_service":[["impl Default for Options"],["impl Default for Options"],["impl Default for Options"],["impl Default for Config"],["impl Default for NoFetching"],["impl<Types> Default for AnyProvider<Types>
    where\n Types: NodeType,
    "],["impl Default for MockNodeImpl"],["impl<T, C> Default for Fetcher<T, C>"],["impl Default for MetricsDataSource"],["impl Default for PrometheusMetrics"],["impl Default for Options"],["impl Default for NoStorage"],["impl Default for MockTypes"],["impl Default for MempoolQueryData"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/error/trait.Error.js b/trait.impl/core/error/trait.Error.js index f83fbcd78..b434a5938 100644 --- a/trait.impl/core/error/trait.Error.js +++ b/trait.impl/core/error/trait.Error.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"hotshot_query_service":[["impl Error for Error
    where\n Self: Debug + Display,
    "],["impl<Types: NodeType> Error for InconsistentLeafError<Types>
    where\n Self: Debug + Display,
    "],["impl Error for MetricsError
    where\n Self: Debug + Display,
    "],["impl Error for Error
    where\n Self: Debug + Display,
    "],["impl Error for QueryError
    where\n Self: Debug + Display,
    "],["impl Error for Error
    where\n Self: Debug + Display,
    "],["impl Error for Error
    where\n Self: Debug + Display,
    "]] +"hotshot_query_service":[["impl<Types: NodeType> Error for InconsistentLeafError<Types>
    where\n Self: Debug + Display,
    "],["impl Error for Error
    where\n Self: Debug + Display,
    "],["impl Error for Error
    where\n Self: Debug + Display,
    "],["impl Error for Error
    where\n Self: Debug + Display,
    "],["impl Error for QueryError
    where\n Self: Debug + Display,
    "],["impl Error for MetricsError
    where\n Self: Debug + Display,
    "],["impl Error for Error
    where\n Self: Debug + Display,
    "]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ 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 199f09344..413e59a4d 100644 --- a/trait.impl/core/fmt/trait.Debug.js +++ b/trait.impl/core/fmt/trait.Debug.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"hotshot_query_service":[["impl<__T0: Debug> Debug for FetchBlockSnafu<__T0>"],["impl Debug for SyncStatusSnafu"],["impl Debug for Gauge"],["impl<Types: NodeType> Debug for BlockId<Types>"],["impl Debug for RequestSnafu"],["impl<__T0: Debug, __T1: Debug> Debug for InvalidTransactionIndexSnafu<__T0, __T1>"],["impl<T, C> Debug for Fetcher<T, C>"],["impl Debug for Counter"],["impl<Types: Debug + NodeType> Debug for LeafQueryData<Types>"],["impl Debug for Config"],["impl<Types: NodeType> Debug for FileSystemStorage<Types>
    where\n Payload<Types>: QueryablePayload,\n HashMap<LeafHash<Types>, u64>: Debug,\n HashMap<BlockHash<Types>, u64>: Debug,\n HashMap<TransactionHash<Types>, (u64, TransactionIndex<Types>)>: Debug,\n HashMap<SignatureKey<Types>, Vec<u64>>: Debug,\n LedgerLog<LeafQueryData<Types>>: Debug,\n LedgerLog<BlockQueryData<Types>>: Debug,
    "],["impl<Types, S, P> Debug for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n S: Debug,\n P: Debug,
    "],["impl<D: Debug, U: Debug> Debug for ExtensibleDataSource<D, U>"],["impl Debug for Error"],["impl<Types> Debug for AnyProvider<Types>
    where\n Types: NodeType,
    "],["impl<__T0: Debug> Debug for FetchLeafSnafu<__T0>"],["impl Debug for MetricsDataSource"],["impl Debug for QueryError"],["impl<__T0: Debug, __T1: Debug> Debug for CustomSnafu<__T0, __T1>"],["impl Debug for PayloadRequest"],["impl<Types> Debug for BlockRequest<Types>
    where\n Types: NodeType,
    "],["impl Debug for Error"],["impl Debug for PrometheusMetrics"],["impl<Types: Debug + NodeType> Debug for BlockQueryData<Types>"],["impl Debug for Error"],["impl<Types: Debug + NodeType> Debug for TransactionQueryData<Types>
    where\n Payload<Types>: QueryablePayload,
    "],["impl Debug for QuerySnafu"],["impl Debug for NoFetching"],["impl Debug for RequestSnafu"],["impl<__T0: Debug> Debug for QueryProposalsSnafu<__T0>"],["impl Debug for LeafRequest"],["impl Debug for MempoolQueryData"],["impl<Types: Debug + NodeType> Debug for PayloadQueryData<Types>"],["impl<Types: Debug + NodeType> Debug for InconsistentLeafError<Types>"],["impl<__T0: Debug> Debug for FetchTransactionSnafu<__T0>"],["impl Debug for SqlStorage"],["impl Debug for MetricsError"],["impl<Types: NodeType> Debug for LeafId<Types>"],["impl<Types: Debug + NodeType> Debug for TransactionSummaryQueryData<Types>"],["impl<__T0: Debug, __T1: Debug> Debug for CustomSnafu<__T0, __T1>"],["impl Debug for NotFoundSnafu"],["impl Debug for Label"],["impl<Types: Debug + NodeType> Debug for BlockSummaryQueryData<Types>"],["impl Debug for SyncStatus"],["impl Debug for Histogram"],["impl Debug for MissingSnafu"],["impl Debug for Error"],["impl Debug for InvalidSignatureKeySnafu"],["impl Debug for QueryServiceProvider"],["impl<__T0: Debug> Debug for Snafu<__T0>"]] +"hotshot_query_service":[["impl Debug for TmpDb"],["impl Debug for Error"],["impl<Types: NodeType> Debug for LeafId<Types>"],["impl<Types, S, P> Debug for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n S: Debug,\n P: Debug,
    "],["impl Debug for RequestSnafu"],["impl<T, C> Debug for Fetcher<T, C>"],["impl<Types: Debug + NodeType> Debug for TransactionQueryData<Types>
    where\n Payload<Types>: QueryablePayload,
    "],["impl Debug for LeafRequest"],["impl Debug for SyncStatus"],["impl Debug for QuerySnafu"],["impl<__T0: Debug, __T1: Debug> Debug for InvalidTransactionIndexSnafu<__T0, __T1>"],["impl<__T0: Debug> Debug for QueryProposalsSnafu<__T0>"],["impl<__T0: Debug> Debug for FetchBlockSnafu<__T0>"],["impl<Types: Debug + NodeType> Debug for PayloadQueryData<Types>"],["impl Debug for MockTypes"],["impl Debug for Error"],["impl Debug for Histogram"],["impl<Types> Debug for BlockRequest<Types>
    where\n Types: NodeType,
    "],["impl<Types> Debug for AnyProvider<Types>
    where\n Types: NodeType,
    "],["impl<__T0: Debug> Debug for FetchLeafSnafu<__T0>"],["impl<Types: Debug + NodeType> Debug for BlockSummaryQueryData<Types>"],["impl Debug for RequestSnafu"],["impl Debug for NoStorage"],["impl<Types: Debug + NodeType> Debug for TransactionSummaryQueryData<Types>"],["impl Debug for Counter"],["impl Debug for PrometheusMetrics"],["impl Debug for Gauge"],["impl Debug for Config"],["impl Debug for PayloadRequest"],["impl<Types: NodeType> Debug for BlockId<Types>"],["impl Debug for MetricsError"],["impl<__T0: Debug> Debug for Snafu<__T0>"],["impl<Types: NodeType> Debug for FileSystemStorage<Types>
    where\n Payload<Types>: QueryablePayload,\n HashMap<LeafHash<Types>, u64>: Debug,\n HashMap<BlockHash<Types>, u64>: Debug,\n HashMap<TransactionHash<Types>, (u64, TransactionIndex<Types>)>: Debug,\n HashMap<SignatureKey<Types>, Vec<u64>>: Debug,\n LedgerLog<LeafQueryData<Types>>: Debug,\n LedgerLog<BlockQueryData<Types>>: Debug,
    "],["impl<Types: Debug + NodeType> Debug for InconsistentLeafError<Types>"],["impl<Types: Debug + NodeType> Debug for BlockQueryData<Types>"],["impl<P> Debug for TestProvider<P>
    where\n P: Debug,
    "],["impl Debug for InvalidSignatureKeySnafu"],["impl Debug for MetricsDataSource"],["impl Debug for QueryServiceProvider"],["impl Debug for QueryError"],["impl Debug for Error"],["impl Debug for NotFoundSnafu"],["impl Debug for MissingSnafu"],["impl Debug for MempoolQueryData"],["impl<D: Debug, U: Debug> Debug for ExtensibleDataSource<D, U>"],["impl Debug for MockNodeImpl"],["impl<__T0: Debug, __T1: Debug> Debug for CustomSnafu<__T0, __T1>"],["impl Debug for Label"],["impl Debug for SqlStorage"],["impl<__T0: Debug> Debug for FetchTransactionSnafu<__T0>"],["impl<Types: Debug + NodeType> Debug for LeafQueryData<Types>"],["impl Debug for Error"],["impl Debug for NoFetching"],["impl<__T0: Debug, __T1: Debug> Debug for CustomSnafu<__T0, __T1>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/fmt/trait.Display.js b/trait.impl/core/fmt/trait.Display.js index 186e77e71..c383de09a 100644 --- a/trait.impl/core/fmt/trait.Display.js +++ b/trait.impl/core/fmt/trait.Display.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"hotshot_query_service":[["impl<Types> Display for BlockRequest<Types>
    where\n TransactionHash<Types>: Display,\n BlockId<Types>: Display,\n Types: NodeType,
    "],["impl<Types: NodeType> Display for LeafId<Types>"],["impl Display for Error"],["impl<Types: NodeType> Display for BlockId<Types>"],["impl Display for Error"],["impl Display for MetricsError"],["impl<Types: NodeType> Display for InconsistentLeafError<Types>"],["impl Display for Error"],["impl Display for Error"],["impl Display for QueryError"]] +"hotshot_query_service":[["impl Display for Error"],["impl<Types: NodeType> Display for LeafId<Types>"],["impl Display for Error"],["impl Display for Error"],["impl Display for Error"],["impl Display for MetricsError"],["impl<Types: NodeType> Display for BlockId<Types>"],["impl<Types: NodeType> Display for InconsistentLeafError<Types>"],["impl Display for QueryError"],["impl<Types> Display for BlockRequest<Types>
    where\n TransactionHash<Types>: Display,\n BlockId<Types>: Display,\n Types: NodeType,
    "]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/hash/trait.Hash.js b/trait.impl/core/hash/trait.Hash.js index 3bc93e299..c8f630ab0 100644 --- a/trait.impl/core/hash/trait.Hash.js +++ b/trait.impl/core/hash/trait.Hash.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"hotshot_query_service":[["impl<Types: NodeType> Hash for BlockId<Types>"],["impl Hash for LeafRequest"],["impl Hash for PayloadRequest"],["impl<Types: NodeType> Hash for LeafId<Types>"],["impl Hash for SyncStatus"],["impl Hash for MempoolQueryData"],["impl<Types> Hash for BlockRequest<Types>
    where\n Types: NodeType,
    "]] +"hotshot_query_service":[["impl Hash for SyncStatus"],["impl<Types> Hash for BlockRequest<Types>
    where\n Types: NodeType,
    "],["impl Hash for MockTypes"],["impl Hash for MempoolQueryData"],["impl<Types: NodeType> Hash for BlockId<Types>"],["impl<Types: NodeType> Hash for LeafId<Types>"],["impl Hash for PayloadRequest"],["impl Hash for MockNodeImpl"],["impl Hash for LeafRequest"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ 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 61fdda8cc..d65d116ba 100644 --- a/trait.impl/core/marker/trait.Copy.js +++ b/trait.impl/core/marker/trait.Copy.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"hotshot_query_service":[["impl<__T0: Copy> Copy for QueryProposalsSnafu<__T0>"],["impl Copy for PayloadRequest"],["impl<Types: NodeType> Copy for LeafId<Types>"],["impl<__T0: Copy, __T1: Copy> Copy for CustomSnafu<__T0, __T1>"],["impl Copy for SyncStatusSnafu"],["impl<__T0: Copy, __T1: Copy> Copy for CustomSnafu<__T0, __T1>"],["impl Copy for MissingSnafu"],["impl Copy for RequestSnafu"],["impl<Types> Copy for BlockRequest<Types>
    where\n Types: NodeType,
    "],["impl<__T0: Copy> Copy for FetchBlockSnafu<__T0>"],["impl<__T0: Copy, __T1: Copy> Copy for InvalidTransactionIndexSnafu<__T0, __T1>"],["impl Copy for LeafRequest"],["impl Copy for InvalidSignatureKeySnafu"],["impl Copy for NotFoundSnafu"],["impl Copy for RequestSnafu"],["impl<__T0: Copy> Copy for Snafu<__T0>"],["impl<__T0: Copy> Copy for FetchTransactionSnafu<__T0>"],["impl<Types: NodeType> Copy for BlockId<Types>"],["impl<__T0: Copy> Copy for FetchLeafSnafu<__T0>"],["impl<D: Copy, U: Copy> Copy for ExtensibleDataSource<D, U>"],["impl Copy for NoFetching"],["impl Copy for QuerySnafu"]] +"hotshot_query_service":[["impl Copy for RequestSnafu"],["impl Copy for MissingSnafu"],["impl Copy for QuerySnafu"],["impl Copy for PayloadRequest"],["impl Copy for LeafRequest"],["impl Copy for MockTypes"],["impl Copy for NoStorage"],["impl<__T0: Copy> Copy for QueryProposalsSnafu<__T0>"],["impl<__T0: Copy> Copy for FetchBlockSnafu<__T0>"],["impl<__T0: Copy, __T1: Copy> Copy for CustomSnafu<__T0, __T1>"],["impl Copy for InvalidSignatureKeySnafu"],["impl<Types: NodeType> Copy for BlockId<Types>"],["impl Copy for MockNodeImpl"],["impl<__T0: Copy> Copy for FetchTransactionSnafu<__T0>"],["impl<D: Copy, U: Copy> Copy for ExtensibleDataSource<D, U>"],["impl<__T0: Copy, __T1: Copy> Copy for CustomSnafu<__T0, __T1>"],["impl<__T0: Copy> Copy for Snafu<__T0>"],["impl<__T0: Copy> Copy for FetchLeafSnafu<__T0>"],["impl<Types: NodeType> Copy for LeafId<Types>"],["impl<Types> Copy for BlockRequest<Types>
    where\n Types: NodeType,
    "],["impl<__T0: Copy, __T1: Copy> Copy for InvalidTransactionIndexSnafu<__T0, __T1>"],["impl Copy for RequestSnafu"],["impl Copy for NotFoundSnafu"],["impl Copy for NoFetching"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ 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 4c3b70ecb..358ab103e 100644 --- a/trait.impl/core/marker/trait.Freeze.js +++ b/trait.impl/core/marker/trait.Freeze.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"hotshot_query_service":[["impl<Types> Freeze for LeafId<Types>",1,["hotshot_query_service::availability::data_source::LeafId"]],["impl<Types> Freeze for BlockId<Types>",1,["hotshot_query_service::availability::data_source::BlockId"]],["impl<T> Freeze for Fetch<T>
    where\n T: Freeze,
    ",1,["hotshot_query_service::availability::fetch::Fetch"]],["impl<Types> Freeze for LeafQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: Freeze,\n <Types as NodeType>::BlockPayload: Freeze,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QCType: Freeze,\n <Types as NodeType>::SignatureKey: Freeze,\n <Types as NodeType>::Time: Freeze,
    ",1,["hotshot_query_service::availability::query_data::LeafQueryData"]],["impl<Types> Freeze for InconsistentLeafError<Types>",1,["hotshot_query_service::availability::query_data::InconsistentLeafError"]],["impl<Types> Freeze for BlockQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: Freeze,\n <Types as NodeType>::BlockPayload: Freeze,\n <Types as NodeType>::SignatureKey: Freeze,
    ",1,["hotshot_query_service::availability::query_data::BlockQueryData"]],["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 as QueryablePayload>::InclusionProof: Freeze,\n <Types as NodeType>::Transaction: Freeze,
    ",1,["hotshot_query_service::availability::query_data::TransactionQueryData"]],["impl<Types> Freeze for BlockSummaryQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: Freeze,\n <Types as NodeType>::SignatureKey: Freeze,
    ",1,["hotshot_query_service::availability::query_data::BlockSummaryQueryData"]],["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 Freeze for Options",1,["hotshot_query_service::availability::Options"]],["impl Freeze for Error",1,["hotshot_query_service::availability::Error"]],["impl Freeze for RequestSnafu",1,["hotshot_query_service::availability::RequestSnafu"]],["impl<__T0> Freeze for FetchLeafSnafu<__T0>
    where\n __T0: Freeze,
    ",1,["hotshot_query_service::availability::FetchLeafSnafu"]],["impl<__T0> Freeze for FetchBlockSnafu<__T0>
    where\n __T0: Freeze,
    ",1,["hotshot_query_service::availability::FetchBlockSnafu"]],["impl<__T0> Freeze for FetchTransactionSnafu<__T0>
    where\n __T0: Freeze,
    ",1,["hotshot_query_service::availability::FetchTransactionSnafu"]],["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::availability::CustomSnafu"]],["impl<D, U> Freeze for ExtensibleDataSource<D, U>
    where\n D: Freeze,\n U: Freeze,
    ",1,["hotshot_query_service::data_source::extension::ExtensibleDataSource"]],["impl<Types, S, P> Freeze for Builder<Types, S, P>
    where\n P: Freeze,\n S: 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<'a, Types, S> Freeze for StorageReadGuard<'a, Types, S>",1,["hotshot_query_service::data_source::fetching::StorageReadGuard"]],["impl<'a, Types, S> Freeze for StorageWriteGuard<'a, Types, S>",1,["hotshot_query_service::data_source::fetching::StorageWriteGuard"]],["impl<Types> Freeze for BlockRequest<Types>",1,["hotshot_query_service::data_source::fetching::BlockRequest"]],["impl Freeze for MetricsDataSource",1,["hotshot_query_service::data_source::metrics::MetricsDataSource"]],["impl<Types> Freeze for FileSystemStorage<Types>",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorage"]],["impl Freeze for Config",1,["hotshot_query_service::data_source::storage::sql::Config"]],["impl Freeze for SqlStorage",1,["hotshot_query_service::data_source::storage::sql::SqlStorage"]],["impl<'a> Freeze for Transaction<'a>",1,["hotshot_query_service::data_source::storage::sql::Transaction"]],["impl Freeze for Error",1,["hotshot_query_service::error::Error"]],["impl<Types> Freeze for AnyProvider<Types>",1,["hotshot_query_service::fetching::provider::any::AnyProvider"]],["impl Freeze for QueryServiceProvider",1,["hotshot_query_service::fetching::provider::query_service::QueryServiceProvider"]],["impl Freeze for NoFetching",1,["hotshot_query_service::fetching::provider::NoFetching"]],["impl Freeze for PayloadRequest",1,["hotshot_query_service::fetching::request::PayloadRequest"]],["impl Freeze for LeafRequest",1,["hotshot_query_service::fetching::request::LeafRequest"]],["impl<T, C> Freeze for Fetcher<T, C>",1,["hotshot_query_service::fetching::Fetcher"]],["impl Freeze for MetricsError",1,["hotshot_query_service::metrics::MetricsError"]],["impl Freeze for PrometheusMetrics",1,["hotshot_query_service::metrics::PrometheusMetrics"]],["impl Freeze for Counter",1,["hotshot_query_service::metrics::Counter"]],["impl Freeze for Gauge",1,["hotshot_query_service::metrics::Gauge"]],["impl Freeze for Histogram",1,["hotshot_query_service::metrics::Histogram"]],["impl Freeze for Label",1,["hotshot_query_service::metrics::Label"]],["impl Freeze for SyncStatus",1,["hotshot_query_service::node::query_data::SyncStatus"]],["impl Freeze for Options",1,["hotshot_query_service::node::Options"]],["impl Freeze for Error",1,["hotshot_query_service::node::Error"]],["impl Freeze for RequestSnafu",1,["hotshot_query_service::node::RequestSnafu"]],["impl Freeze for QuerySnafu",1,["hotshot_query_service::node::QuerySnafu"]],["impl<__T0> Freeze for QueryProposalsSnafu<__T0>
    where\n __T0: Freeze,
    ",1,["hotshot_query_service::node::QueryProposalsSnafu"]],["impl Freeze for InvalidSignatureKeySnafu",1,["hotshot_query_service::node::InvalidSignatureKeySnafu"]],["impl Freeze for SyncStatusSnafu",1,["hotshot_query_service::node::SyncStatusSnafu"]],["impl<__T0, __T1> Freeze for CustomSnafu<__T0, __T1>
    where\n __T0: Freeze,\n __T1: Freeze,
    ",1,["hotshot_query_service::node::CustomSnafu"]],["impl Freeze for MempoolQueryData",1,["hotshot_query_service::status::query_data::MempoolQueryData"]],["impl Freeze for Options",1,["hotshot_query_service::status::Options"]],["impl Freeze for Error",1,["hotshot_query_service::status::Error"]],["impl Freeze for QueryError",1,["hotshot_query_service::QueryError"]],["impl Freeze for NotFoundSnafu",1,["hotshot_query_service::NotFoundSnafu"]],["impl Freeze for MissingSnafu",1,["hotshot_query_service::MissingSnafu"]],["impl<__T0> Freeze for Snafu<__T0>
    where\n __T0: Freeze,
    ",1,["hotshot_query_service::Snafu"]],["impl Freeze for Options",1,["hotshot_query_service::Options"]]] +"hotshot_query_service":[["impl<Types> Freeze for LeafId<Types>",1,["hotshot_query_service::availability::data_source::LeafId"]],["impl<Types> Freeze for BlockId<Types>",1,["hotshot_query_service::availability::data_source::BlockId"]],["impl<T> Freeze for Fetch<T>
    where\n T: Freeze,
    ",1,["hotshot_query_service::availability::fetch::Fetch"]],["impl<Types> Freeze for LeafQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: Freeze,\n <Types as NodeType>::BlockPayload: Freeze,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QCType: Freeze,\n <Types as NodeType>::SignatureKey: Freeze,\n <Types as NodeType>::Time: Freeze,
    ",1,["hotshot_query_service::availability::query_data::LeafQueryData"]],["impl<Types> Freeze for InconsistentLeafError<Types>",1,["hotshot_query_service::availability::query_data::InconsistentLeafError"]],["impl<Types> Freeze for BlockQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: Freeze,\n <Types as NodeType>::BlockPayload: Freeze,\n <Types as NodeType>::SignatureKey: Freeze,
    ",1,["hotshot_query_service::availability::query_data::BlockQueryData"]],["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 as QueryablePayload>::InclusionProof: Freeze,\n <Types as NodeType>::Transaction: Freeze,
    ",1,["hotshot_query_service::availability::query_data::TransactionQueryData"]],["impl<Types> Freeze for BlockSummaryQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: Freeze,\n <Types as NodeType>::SignatureKey: Freeze,
    ",1,["hotshot_query_service::availability::query_data::BlockSummaryQueryData"]],["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 Freeze for Options",1,["hotshot_query_service::availability::Options"]],["impl Freeze for Error",1,["hotshot_query_service::availability::Error"]],["impl Freeze for RequestSnafu",1,["hotshot_query_service::availability::RequestSnafu"]],["impl<__T0> Freeze for FetchLeafSnafu<__T0>
    where\n __T0: Freeze,
    ",1,["hotshot_query_service::availability::FetchLeafSnafu"]],["impl<__T0> Freeze for FetchBlockSnafu<__T0>
    where\n __T0: Freeze,
    ",1,["hotshot_query_service::availability::FetchBlockSnafu"]],["impl<__T0> Freeze for FetchTransactionSnafu<__T0>
    where\n __T0: Freeze,
    ",1,["hotshot_query_service::availability::FetchTransactionSnafu"]],["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::availability::CustomSnafu"]],["impl<D, U> Freeze for ExtensibleDataSource<D, U>
    where\n D: Freeze,\n U: Freeze,
    ",1,["hotshot_query_service::data_source::extension::ExtensibleDataSource"]],["impl<Types, S, P> Freeze for Builder<Types, S, P>
    where\n P: Freeze,\n S: 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<'a, Types, S> Freeze for StorageReadGuard<'a, Types, S>",1,["hotshot_query_service::data_source::fetching::StorageReadGuard"]],["impl<'a, Types, S> Freeze for StorageWriteGuard<'a, Types, S>",1,["hotshot_query_service::data_source::fetching::StorageWriteGuard"]],["impl<Types> Freeze for BlockRequest<Types>",1,["hotshot_query_service::data_source::fetching::BlockRequest"]],["impl Freeze for MetricsDataSource",1,["hotshot_query_service::data_source::metrics::MetricsDataSource"]],["impl<Types> Freeze for FileSystemStorage<Types>",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorage"]],["impl Freeze for Storage",1,["hotshot_query_service::data_source::storage::no_storage::testing::Storage"]],["impl Freeze for DataSource",1,["hotshot_query_service::data_source::storage::no_storage::testing::DataSource"]],["impl Freeze for NoStorage",1,["hotshot_query_service::data_source::storage::no_storage::NoStorage"]],["impl Freeze for TmpDb",1,["hotshot_query_service::data_source::storage::sql::testing::TmpDb"]],["impl Freeze for Config",1,["hotshot_query_service::data_source::storage::sql::Config"]],["impl Freeze for SqlStorage",1,["hotshot_query_service::data_source::storage::sql::SqlStorage"]],["impl<'a> Freeze for Transaction<'a>",1,["hotshot_query_service::data_source::storage::sql::Transaction"]],["impl Freeze for Error",1,["hotshot_query_service::error::Error"]],["impl<Types> Freeze for AnyProvider<Types>",1,["hotshot_query_service::fetching::provider::any::AnyProvider"]],["impl Freeze for QueryServiceProvider",1,["hotshot_query_service::fetching::provider::query_service::QueryServiceProvider"]],["impl<P> Freeze for TestProvider<P>",1,["hotshot_query_service::fetching::provider::testing::TestProvider"]],["impl Freeze for NoFetching",1,["hotshot_query_service::fetching::provider::NoFetching"]],["impl Freeze for PayloadRequest",1,["hotshot_query_service::fetching::request::PayloadRequest"]],["impl Freeze for LeafRequest",1,["hotshot_query_service::fetching::request::LeafRequest"]],["impl<T, C> Freeze for Fetcher<T, C>",1,["hotshot_query_service::fetching::Fetcher"]],["impl Freeze for MetricsError",1,["hotshot_query_service::metrics::MetricsError"]],["impl Freeze for PrometheusMetrics",1,["hotshot_query_service::metrics::PrometheusMetrics"]],["impl Freeze for Counter",1,["hotshot_query_service::metrics::Counter"]],["impl Freeze for Gauge",1,["hotshot_query_service::metrics::Gauge"]],["impl Freeze for Histogram",1,["hotshot_query_service::metrics::Histogram"]],["impl Freeze for Label",1,["hotshot_query_service::metrics::Label"]],["impl Freeze for SyncStatus",1,["hotshot_query_service::node::query_data::SyncStatus"]],["impl Freeze for Options",1,["hotshot_query_service::node::Options"]],["impl Freeze for Error",1,["hotshot_query_service::node::Error"]],["impl Freeze for RequestSnafu",1,["hotshot_query_service::node::RequestSnafu"]],["impl Freeze for QuerySnafu",1,["hotshot_query_service::node::QuerySnafu"]],["impl<__T0> Freeze for QueryProposalsSnafu<__T0>
    where\n __T0: Freeze,
    ",1,["hotshot_query_service::node::QueryProposalsSnafu"]],["impl Freeze for InvalidSignatureKeySnafu",1,["hotshot_query_service::node::InvalidSignatureKeySnafu"]],["impl<__T0, __T1> Freeze for CustomSnafu<__T0, __T1>
    where\n __T0: Freeze,\n __T1: Freeze,
    ",1,["hotshot_query_service::node::CustomSnafu"]],["impl Freeze for MempoolQueryData",1,["hotshot_query_service::status::query_data::MempoolQueryData"]],["impl Freeze for Options",1,["hotshot_query_service::status::Options"]],["impl Freeze for Error",1,["hotshot_query_service::status::Error"]],["impl<D> Freeze for MockNetwork<D>",1,["hotshot_query_service::testing::consensus::MockNetwork"]],["impl Freeze for MockTypes",1,["hotshot_query_service::testing::mocks::MockTypes"]],["impl Freeze for MockNodeImpl",1,["hotshot_query_service::testing::mocks::MockNodeImpl"]],["impl Freeze for QueryError",1,["hotshot_query_service::QueryError"]],["impl Freeze for NotFoundSnafu",1,["hotshot_query_service::NotFoundSnafu"]],["impl Freeze for MissingSnafu",1,["hotshot_query_service::MissingSnafu"]],["impl<__T0> Freeze for Snafu<__T0>
    where\n __T0: Freeze,
    ",1,["hotshot_query_service::Snafu"]],["impl Freeze for Options",1,["hotshot_query_service::Options"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ 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 25a7d03a7..25d9275ac 100644 --- a/trait.impl/core/marker/trait.Send.js +++ b/trait.impl/core/marker/trait.Send.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"hotshot_query_service":[["impl<Types> Send for LeafId<Types>",1,["hotshot_query_service::availability::data_source::LeafId"]],["impl<Types> Send for BlockId<Types>",1,["hotshot_query_service::availability::data_source::BlockId"]],["impl<T> Send for Fetch<T>
    where\n T: Send,
    ",1,["hotshot_query_service::availability::fetch::Fetch"]],["impl<Types> Send for LeafQueryData<Types>",1,["hotshot_query_service::availability::query_data::LeafQueryData"]],["impl<Types> Send for InconsistentLeafError<Types>",1,["hotshot_query_service::availability::query_data::InconsistentLeafError"]],["impl<Types> Send for BlockQueryData<Types>",1,["hotshot_query_service::availability::query_data::BlockQueryData"]],["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 as QueryablePayload>::InclusionProof: Send,
    ",1,["hotshot_query_service::availability::query_data::TransactionQueryData"]],["impl<Types> Send for BlockSummaryQueryData<Types>",1,["hotshot_query_service::availability::query_data::BlockSummaryQueryData"]],["impl<Types> Send for TransactionSummaryQueryData<Types>",1,["hotshot_query_service::availability::query_data::TransactionSummaryQueryData"]],["impl Send for Options",1,["hotshot_query_service::availability::Options"]],["impl Send for Error",1,["hotshot_query_service::availability::Error"]],["impl Send for RequestSnafu",1,["hotshot_query_service::availability::RequestSnafu"]],["impl<__T0> Send for FetchLeafSnafu<__T0>
    where\n __T0: Send,
    ",1,["hotshot_query_service::availability::FetchLeafSnafu"]],["impl<__T0> Send for FetchBlockSnafu<__T0>
    where\n __T0: Send,
    ",1,["hotshot_query_service::availability::FetchBlockSnafu"]],["impl<__T0> Send for FetchTransactionSnafu<__T0>
    where\n __T0: Send,
    ",1,["hotshot_query_service::availability::FetchTransactionSnafu"]],["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::availability::CustomSnafu"]],["impl<D, U> Send for ExtensibleDataSource<D, U>
    where\n D: Send,\n U: Send,
    ",1,["hotshot_query_service::data_source::extension::ExtensibleDataSource"]],["impl<Types, S, P> Send for Builder<Types, S, P>
    where\n P: Send,\n S: Send,\n Types: Send,
    ",1,["hotshot_query_service::data_source::fetching::Builder"]],["impl<Types, S, P> Send for FetchingDataSource<Types, S, P>
    where\n P: Send + Sync,\n S: Send + Sync,
    ",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["impl<'a, Types, S> Send for StorageReadGuard<'a, Types, S>
    where\n S: Sync,
    ",1,["hotshot_query_service::data_source::fetching::StorageReadGuard"]],["impl<'a, Types, S> Send for StorageWriteGuard<'a, Types, S>
    where\n S: Send,
    ",1,["hotshot_query_service::data_source::fetching::StorageWriteGuard"]],["impl<Types> Send for BlockRequest<Types>",1,["hotshot_query_service::data_source::fetching::BlockRequest"]],["impl Send for MetricsDataSource",1,["hotshot_query_service::data_source::metrics::MetricsDataSource"]],["impl<Types> Send for FileSystemStorage<Types>",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorage"]],["impl Send for Config",1,["hotshot_query_service::data_source::storage::sql::Config"]],["impl Send for SqlStorage",1,["hotshot_query_service::data_source::storage::sql::SqlStorage"]],["impl<'a> Send for Transaction<'a>",1,["hotshot_query_service::data_source::storage::sql::Transaction"]],["impl Send for Error",1,["hotshot_query_service::error::Error"]],["impl<Types> Send for AnyProvider<Types>",1,["hotshot_query_service::fetching::provider::any::AnyProvider"]],["impl Send for QueryServiceProvider",1,["hotshot_query_service::fetching::provider::query_service::QueryServiceProvider"]],["impl Send for NoFetching",1,["hotshot_query_service::fetching::provider::NoFetching"]],["impl Send for PayloadRequest",1,["hotshot_query_service::fetching::request::PayloadRequest"]],["impl Send for LeafRequest",1,["hotshot_query_service::fetching::request::LeafRequest"]],["impl<T, C> Send for Fetcher<T, C>
    where\n C: Send,\n T: Send,
    ",1,["hotshot_query_service::fetching::Fetcher"]],["impl Send for MetricsError",1,["hotshot_query_service::metrics::MetricsError"]],["impl Send for PrometheusMetrics",1,["hotshot_query_service::metrics::PrometheusMetrics"]],["impl Send for Counter",1,["hotshot_query_service::metrics::Counter"]],["impl Send for Gauge",1,["hotshot_query_service::metrics::Gauge"]],["impl Send for Histogram",1,["hotshot_query_service::metrics::Histogram"]],["impl Send for Label",1,["hotshot_query_service::metrics::Label"]],["impl Send for SyncStatus",1,["hotshot_query_service::node::query_data::SyncStatus"]],["impl Send for Options",1,["hotshot_query_service::node::Options"]],["impl Send for Error",1,["hotshot_query_service::node::Error"]],["impl Send for RequestSnafu",1,["hotshot_query_service::node::RequestSnafu"]],["impl Send for QuerySnafu",1,["hotshot_query_service::node::QuerySnafu"]],["impl<__T0> Send for QueryProposalsSnafu<__T0>
    where\n __T0: Send,
    ",1,["hotshot_query_service::node::QueryProposalsSnafu"]],["impl Send for InvalidSignatureKeySnafu",1,["hotshot_query_service::node::InvalidSignatureKeySnafu"]],["impl Send for SyncStatusSnafu",1,["hotshot_query_service::node::SyncStatusSnafu"]],["impl<__T0, __T1> Send for CustomSnafu<__T0, __T1>
    where\n __T0: Send,\n __T1: Send,
    ",1,["hotshot_query_service::node::CustomSnafu"]],["impl Send for MempoolQueryData",1,["hotshot_query_service::status::query_data::MempoolQueryData"]],["impl Send for Options",1,["hotshot_query_service::status::Options"]],["impl Send for Error",1,["hotshot_query_service::status::Error"]],["impl Send for QueryError",1,["hotshot_query_service::QueryError"]],["impl Send for NotFoundSnafu",1,["hotshot_query_service::NotFoundSnafu"]],["impl Send for MissingSnafu",1,["hotshot_query_service::MissingSnafu"]],["impl<__T0> Send for Snafu<__T0>
    where\n __T0: Send,
    ",1,["hotshot_query_service::Snafu"]],["impl Send for Options",1,["hotshot_query_service::Options"]]] +"hotshot_query_service":[["impl<Types> Send for LeafId<Types>",1,["hotshot_query_service::availability::data_source::LeafId"]],["impl<Types> Send for BlockId<Types>",1,["hotshot_query_service::availability::data_source::BlockId"]],["impl<T> Send for Fetch<T>
    where\n T: Send,
    ",1,["hotshot_query_service::availability::fetch::Fetch"]],["impl<Types> Send for LeafQueryData<Types>",1,["hotshot_query_service::availability::query_data::LeafQueryData"]],["impl<Types> Send for InconsistentLeafError<Types>",1,["hotshot_query_service::availability::query_data::InconsistentLeafError"]],["impl<Types> Send for BlockQueryData<Types>",1,["hotshot_query_service::availability::query_data::BlockQueryData"]],["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 as QueryablePayload>::InclusionProof: Send,
    ",1,["hotshot_query_service::availability::query_data::TransactionQueryData"]],["impl<Types> Send for BlockSummaryQueryData<Types>",1,["hotshot_query_service::availability::query_data::BlockSummaryQueryData"]],["impl<Types> Send for TransactionSummaryQueryData<Types>",1,["hotshot_query_service::availability::query_data::TransactionSummaryQueryData"]],["impl Send for Options",1,["hotshot_query_service::availability::Options"]],["impl Send for Error",1,["hotshot_query_service::availability::Error"]],["impl Send for RequestSnafu",1,["hotshot_query_service::availability::RequestSnafu"]],["impl<__T0> Send for FetchLeafSnafu<__T0>
    where\n __T0: Send,
    ",1,["hotshot_query_service::availability::FetchLeafSnafu"]],["impl<__T0> Send for FetchBlockSnafu<__T0>
    where\n __T0: Send,
    ",1,["hotshot_query_service::availability::FetchBlockSnafu"]],["impl<__T0> Send for FetchTransactionSnafu<__T0>
    where\n __T0: Send,
    ",1,["hotshot_query_service::availability::FetchTransactionSnafu"]],["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::availability::CustomSnafu"]],["impl<D, U> Send for ExtensibleDataSource<D, U>
    where\n D: Send,\n U: Send,
    ",1,["hotshot_query_service::data_source::extension::ExtensibleDataSource"]],["impl<Types, S, P> Send for Builder<Types, S, P>
    where\n P: Send,\n S: Send,\n Types: Send,
    ",1,["hotshot_query_service::data_source::fetching::Builder"]],["impl<Types, S, P> Send for FetchingDataSource<Types, S, P>
    where\n P: Send + Sync,\n S: Send + Sync,
    ",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["impl<'a, Types, S> Send for StorageReadGuard<'a, Types, S>
    where\n S: Sync,
    ",1,["hotshot_query_service::data_source::fetching::StorageReadGuard"]],["impl<'a, Types, S> Send for StorageWriteGuard<'a, Types, S>
    where\n S: Send,
    ",1,["hotshot_query_service::data_source::fetching::StorageWriteGuard"]],["impl<Types> Send for BlockRequest<Types>",1,["hotshot_query_service::data_source::fetching::BlockRequest"]],["impl Send for MetricsDataSource",1,["hotshot_query_service::data_source::metrics::MetricsDataSource"]],["impl<Types> Send for FileSystemStorage<Types>",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorage"]],["impl Send for Storage",1,["hotshot_query_service::data_source::storage::no_storage::testing::Storage"]],["impl Send for DataSource",1,["hotshot_query_service::data_source::storage::no_storage::testing::DataSource"]],["impl Send for NoStorage",1,["hotshot_query_service::data_source::storage::no_storage::NoStorage"]],["impl Send for TmpDb",1,["hotshot_query_service::data_source::storage::sql::testing::TmpDb"]],["impl Send for Config",1,["hotshot_query_service::data_source::storage::sql::Config"]],["impl Send for SqlStorage",1,["hotshot_query_service::data_source::storage::sql::SqlStorage"]],["impl<'a> Send for Transaction<'a>",1,["hotshot_query_service::data_source::storage::sql::Transaction"]],["impl Send for Error",1,["hotshot_query_service::error::Error"]],["impl<Types> Send for AnyProvider<Types>",1,["hotshot_query_service::fetching::provider::any::AnyProvider"]],["impl Send for QueryServiceProvider",1,["hotshot_query_service::fetching::provider::query_service::QueryServiceProvider"]],["impl<P> Send for TestProvider<P>
    where\n P: Send + Sync,
    ",1,["hotshot_query_service::fetching::provider::testing::TestProvider"]],["impl Send for NoFetching",1,["hotshot_query_service::fetching::provider::NoFetching"]],["impl Send for PayloadRequest",1,["hotshot_query_service::fetching::request::PayloadRequest"]],["impl Send for LeafRequest",1,["hotshot_query_service::fetching::request::LeafRequest"]],["impl<T, C> Send for Fetcher<T, C>
    where\n C: Send,\n T: Send,
    ",1,["hotshot_query_service::fetching::Fetcher"]],["impl Send for MetricsError",1,["hotshot_query_service::metrics::MetricsError"]],["impl Send for PrometheusMetrics",1,["hotshot_query_service::metrics::PrometheusMetrics"]],["impl Send for Counter",1,["hotshot_query_service::metrics::Counter"]],["impl Send for Gauge",1,["hotshot_query_service::metrics::Gauge"]],["impl Send for Histogram",1,["hotshot_query_service::metrics::Histogram"]],["impl Send for Label",1,["hotshot_query_service::metrics::Label"]],["impl Send for SyncStatus",1,["hotshot_query_service::node::query_data::SyncStatus"]],["impl Send for Options",1,["hotshot_query_service::node::Options"]],["impl Send for Error",1,["hotshot_query_service::node::Error"]],["impl Send for RequestSnafu",1,["hotshot_query_service::node::RequestSnafu"]],["impl Send for QuerySnafu",1,["hotshot_query_service::node::QuerySnafu"]],["impl<__T0> Send for QueryProposalsSnafu<__T0>
    where\n __T0: Send,
    ",1,["hotshot_query_service::node::QueryProposalsSnafu"]],["impl Send for InvalidSignatureKeySnafu",1,["hotshot_query_service::node::InvalidSignatureKeySnafu"]],["impl<__T0, __T1> Send for CustomSnafu<__T0, __T1>
    where\n __T0: Send,\n __T1: Send,
    ",1,["hotshot_query_service::node::CustomSnafu"]],["impl Send for MempoolQueryData",1,["hotshot_query_service::status::query_data::MempoolQueryData"]],["impl Send for Options",1,["hotshot_query_service::status::Options"]],["impl Send for Error",1,["hotshot_query_service::status::Error"]],["impl<D> Send for MockNetwork<D>",1,["hotshot_query_service::testing::consensus::MockNetwork"]],["impl Send for MockTypes",1,["hotshot_query_service::testing::mocks::MockTypes"]],["impl Send for MockNodeImpl",1,["hotshot_query_service::testing::mocks::MockNodeImpl"]],["impl Send for QueryError",1,["hotshot_query_service::QueryError"]],["impl Send for NotFoundSnafu",1,["hotshot_query_service::NotFoundSnafu"]],["impl Send for MissingSnafu",1,["hotshot_query_service::MissingSnafu"]],["impl<__T0> Send for Snafu<__T0>
    where\n __T0: Send,
    ",1,["hotshot_query_service::Snafu"]],["impl Send for Options",1,["hotshot_query_service::Options"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/marker/trait.StructuralEq.js b/trait.impl/core/marker/trait.StructuralEq.js index c87792032..87f0819a3 100644 --- a/trait.impl/core/marker/trait.StructuralEq.js +++ b/trait.impl/core/marker/trait.StructuralEq.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"hotshot_query_service":[["impl StructuralEq for PayloadRequest"],["impl<Types: NodeType> StructuralEq for BlockQueryData<Types>"],["impl<Types: NodeType> StructuralEq for PayloadQueryData<Types>"],["impl<Types: NodeType> StructuralEq for TransactionQueryData<Types>
    where\n Payload<Types>: QueryablePayload,
    "],["impl StructuralEq for SyncStatus"],["impl<Types: NodeType> StructuralEq for TransactionSummaryQueryData<Types>"],["impl<Types: NodeType> StructuralEq for BlockSummaryQueryData<Types>"],["impl StructuralEq for MempoolQueryData"],["impl<Types: NodeType> StructuralEq for LeafQueryData<Types>"],["impl StructuralEq for LeafRequest"]] +"hotshot_query_service":[["impl<Types: NodeType> StructuralEq for TransactionSummaryQueryData<Types>"],["impl StructuralEq for LeafRequest"],["impl<Types: NodeType> StructuralEq for PayloadQueryData<Types>"],["impl StructuralEq for MempoolQueryData"],["impl<Types: NodeType> StructuralEq for TransactionQueryData<Types>
    where\n Payload<Types>: QueryablePayload,
    "],["impl StructuralEq for PayloadRequest"],["impl StructuralEq for MockTypes"],["impl<Types: NodeType> StructuralEq for BlockSummaryQueryData<Types>"],["impl StructuralEq for SyncStatus"],["impl StructuralEq for MockNodeImpl"],["impl<Types: NodeType> StructuralEq for BlockQueryData<Types>"],["impl<Types: NodeType> StructuralEq for LeafQueryData<Types>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ 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 22f35fbf3..4474bb3e8 100644 --- a/trait.impl/core/marker/trait.StructuralPartialEq.js +++ b/trait.impl/core/marker/trait.StructuralPartialEq.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"hotshot_query_service":[["impl StructuralPartialEq for MempoolQueryData"],["impl StructuralPartialEq for SyncStatus"],["impl StructuralPartialEq for PayloadRequest"],["impl<Types: NodeType> StructuralPartialEq for PayloadQueryData<Types>"],["impl<Types: NodeType> StructuralPartialEq for BlockSummaryQueryData<Types>"],["impl<Types: NodeType> StructuralPartialEq for TransactionSummaryQueryData<Types>"],["impl<Types: NodeType> StructuralPartialEq for TransactionQueryData<Types>
    where\n Payload<Types>: QueryablePayload,
    "],["impl<Types: NodeType> StructuralPartialEq for LeafQueryData<Types>"],["impl<Types: NodeType> StructuralPartialEq for BlockQueryData<Types>"],["impl StructuralPartialEq for LeafRequest"]] +"hotshot_query_service":[["impl StructuralPartialEq for SyncStatus"],["impl<Types: NodeType> StructuralPartialEq for TransactionQueryData<Types>
    where\n Payload<Types>: QueryablePayload,
    "],["impl StructuralPartialEq for MockNodeImpl"],["impl<Types: NodeType> StructuralPartialEq for BlockSummaryQueryData<Types>"],["impl StructuralPartialEq for MockTypes"],["impl StructuralPartialEq for PayloadRequest"],["impl StructuralPartialEq for MempoolQueryData"],["impl<Types: NodeType> StructuralPartialEq for LeafQueryData<Types>"],["impl StructuralPartialEq for LeafRequest"],["impl<Types: NodeType> StructuralPartialEq for PayloadQueryData<Types>"],["impl<Types: NodeType> StructuralPartialEq for BlockQueryData<Types>"],["impl<Types: NodeType> StructuralPartialEq for TransactionSummaryQueryData<Types>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ 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 745ef6db3..ee4759ed3 100644 --- a/trait.impl/core/marker/trait.Sync.js +++ b/trait.impl/core/marker/trait.Sync.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"hotshot_query_service":[["impl<Types> Sync for LeafId<Types>",1,["hotshot_query_service::availability::data_source::LeafId"]],["impl<Types> Sync for BlockId<Types>",1,["hotshot_query_service::availability::data_source::BlockId"]],["impl<T> !Sync for Fetch<T>",1,["hotshot_query_service::availability::fetch::Fetch"]],["impl<Types> Sync for LeafQueryData<Types>",1,["hotshot_query_service::availability::query_data::LeafQueryData"]],["impl<Types> Sync for InconsistentLeafError<Types>",1,["hotshot_query_service::availability::query_data::InconsistentLeafError"]],["impl<Types> Sync for BlockQueryData<Types>",1,["hotshot_query_service::availability::query_data::BlockQueryData"]],["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 as QueryablePayload>::InclusionProof: Sync,
    ",1,["hotshot_query_service::availability::query_data::TransactionQueryData"]],["impl<Types> Sync for BlockSummaryQueryData<Types>",1,["hotshot_query_service::availability::query_data::BlockSummaryQueryData"]],["impl<Types> Sync for TransactionSummaryQueryData<Types>",1,["hotshot_query_service::availability::query_data::TransactionSummaryQueryData"]],["impl Sync for Options",1,["hotshot_query_service::availability::Options"]],["impl Sync for Error",1,["hotshot_query_service::availability::Error"]],["impl Sync for RequestSnafu",1,["hotshot_query_service::availability::RequestSnafu"]],["impl<__T0> Sync for FetchLeafSnafu<__T0>
    where\n __T0: Sync,
    ",1,["hotshot_query_service::availability::FetchLeafSnafu"]],["impl<__T0> Sync for FetchBlockSnafu<__T0>
    where\n __T0: Sync,
    ",1,["hotshot_query_service::availability::FetchBlockSnafu"]],["impl<__T0> Sync for FetchTransactionSnafu<__T0>
    where\n __T0: Sync,
    ",1,["hotshot_query_service::availability::FetchTransactionSnafu"]],["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::availability::CustomSnafu"]],["impl<D, U> Sync for ExtensibleDataSource<D, U>
    where\n D: Sync,\n U: Sync,
    ",1,["hotshot_query_service::data_source::extension::ExtensibleDataSource"]],["impl<Types, S, P> Sync for Builder<Types, S, P>
    where\n P: Sync,\n S: Sync,\n Types: Sync,
    ",1,["hotshot_query_service::data_source::fetching::Builder"]],["impl<Types, S, P> Sync for FetchingDataSource<Types, S, P>
    where\n P: Send + Sync,\n S: Send + Sync,
    ",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["impl<'a, Types, S> Sync for StorageReadGuard<'a, Types, S>
    where\n S: Sync,
    ",1,["hotshot_query_service::data_source::fetching::StorageReadGuard"]],["impl<'a, Types, S> Sync for StorageWriteGuard<'a, Types, S>
    where\n S: Sync,
    ",1,["hotshot_query_service::data_source::fetching::StorageWriteGuard"]],["impl<Types> Sync for BlockRequest<Types>",1,["hotshot_query_service::data_source::fetching::BlockRequest"]],["impl Sync for MetricsDataSource",1,["hotshot_query_service::data_source::metrics::MetricsDataSource"]],["impl<Types> Sync for FileSystemStorage<Types>",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorage"]],["impl Sync for Config",1,["hotshot_query_service::data_source::storage::sql::Config"]],["impl Sync for SqlStorage",1,["hotshot_query_service::data_source::storage::sql::SqlStorage"]],["impl<'a> Sync for Transaction<'a>",1,["hotshot_query_service::data_source::storage::sql::Transaction"]],["impl Sync for Error",1,["hotshot_query_service::error::Error"]],["impl<Types> Sync for AnyProvider<Types>",1,["hotshot_query_service::fetching::provider::any::AnyProvider"]],["impl Sync for QueryServiceProvider",1,["hotshot_query_service::fetching::provider::query_service::QueryServiceProvider"]],["impl Sync for NoFetching",1,["hotshot_query_service::fetching::provider::NoFetching"]],["impl Sync for PayloadRequest",1,["hotshot_query_service::fetching::request::PayloadRequest"]],["impl Sync for LeafRequest",1,["hotshot_query_service::fetching::request::LeafRequest"]],["impl<T, C> Sync for Fetcher<T, C>
    where\n C: Send,\n T: Send,
    ",1,["hotshot_query_service::fetching::Fetcher"]],["impl Sync for MetricsError",1,["hotshot_query_service::metrics::MetricsError"]],["impl Sync for PrometheusMetrics",1,["hotshot_query_service::metrics::PrometheusMetrics"]],["impl Sync for Counter",1,["hotshot_query_service::metrics::Counter"]],["impl Sync for Gauge",1,["hotshot_query_service::metrics::Gauge"]],["impl Sync for Histogram",1,["hotshot_query_service::metrics::Histogram"]],["impl Sync for Label",1,["hotshot_query_service::metrics::Label"]],["impl Sync for SyncStatus",1,["hotshot_query_service::node::query_data::SyncStatus"]],["impl Sync for Options",1,["hotshot_query_service::node::Options"]],["impl Sync for Error",1,["hotshot_query_service::node::Error"]],["impl Sync for RequestSnafu",1,["hotshot_query_service::node::RequestSnafu"]],["impl Sync for QuerySnafu",1,["hotshot_query_service::node::QuerySnafu"]],["impl<__T0> Sync for QueryProposalsSnafu<__T0>
    where\n __T0: Sync,
    ",1,["hotshot_query_service::node::QueryProposalsSnafu"]],["impl Sync for InvalidSignatureKeySnafu",1,["hotshot_query_service::node::InvalidSignatureKeySnafu"]],["impl Sync for SyncStatusSnafu",1,["hotshot_query_service::node::SyncStatusSnafu"]],["impl<__T0, __T1> Sync for CustomSnafu<__T0, __T1>
    where\n __T0: Sync,\n __T1: Sync,
    ",1,["hotshot_query_service::node::CustomSnafu"]],["impl Sync for MempoolQueryData",1,["hotshot_query_service::status::query_data::MempoolQueryData"]],["impl Sync for Options",1,["hotshot_query_service::status::Options"]],["impl Sync for Error",1,["hotshot_query_service::status::Error"]],["impl Sync for QueryError",1,["hotshot_query_service::QueryError"]],["impl Sync for NotFoundSnafu",1,["hotshot_query_service::NotFoundSnafu"]],["impl Sync for MissingSnafu",1,["hotshot_query_service::MissingSnafu"]],["impl<__T0> Sync for Snafu<__T0>
    where\n __T0: Sync,
    ",1,["hotshot_query_service::Snafu"]],["impl Sync for Options",1,["hotshot_query_service::Options"]]] +"hotshot_query_service":[["impl<Types> Sync for LeafId<Types>",1,["hotshot_query_service::availability::data_source::LeafId"]],["impl<Types> Sync for BlockId<Types>",1,["hotshot_query_service::availability::data_source::BlockId"]],["impl<T> !Sync for Fetch<T>",1,["hotshot_query_service::availability::fetch::Fetch"]],["impl<Types> Sync for LeafQueryData<Types>",1,["hotshot_query_service::availability::query_data::LeafQueryData"]],["impl<Types> Sync for InconsistentLeafError<Types>",1,["hotshot_query_service::availability::query_data::InconsistentLeafError"]],["impl<Types> Sync for BlockQueryData<Types>",1,["hotshot_query_service::availability::query_data::BlockQueryData"]],["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 as QueryablePayload>::InclusionProof: Sync,
    ",1,["hotshot_query_service::availability::query_data::TransactionQueryData"]],["impl<Types> Sync for BlockSummaryQueryData<Types>",1,["hotshot_query_service::availability::query_data::BlockSummaryQueryData"]],["impl<Types> Sync for TransactionSummaryQueryData<Types>",1,["hotshot_query_service::availability::query_data::TransactionSummaryQueryData"]],["impl Sync for Options",1,["hotshot_query_service::availability::Options"]],["impl Sync for Error",1,["hotshot_query_service::availability::Error"]],["impl Sync for RequestSnafu",1,["hotshot_query_service::availability::RequestSnafu"]],["impl<__T0> Sync for FetchLeafSnafu<__T0>
    where\n __T0: Sync,
    ",1,["hotshot_query_service::availability::FetchLeafSnafu"]],["impl<__T0> Sync for FetchBlockSnafu<__T0>
    where\n __T0: Sync,
    ",1,["hotshot_query_service::availability::FetchBlockSnafu"]],["impl<__T0> Sync for FetchTransactionSnafu<__T0>
    where\n __T0: Sync,
    ",1,["hotshot_query_service::availability::FetchTransactionSnafu"]],["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::availability::CustomSnafu"]],["impl<D, U> Sync for ExtensibleDataSource<D, U>
    where\n D: Sync,\n U: Sync,
    ",1,["hotshot_query_service::data_source::extension::ExtensibleDataSource"]],["impl<Types, S, P> Sync for Builder<Types, S, P>
    where\n P: Sync,\n S: Sync,\n Types: Sync,
    ",1,["hotshot_query_service::data_source::fetching::Builder"]],["impl<Types, S, P> Sync for FetchingDataSource<Types, S, P>
    where\n P: Send + Sync,\n S: Send + Sync,
    ",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["impl<'a, Types, S> Sync for StorageReadGuard<'a, Types, S>
    where\n S: Sync,
    ",1,["hotshot_query_service::data_source::fetching::StorageReadGuard"]],["impl<'a, Types, S> Sync for StorageWriteGuard<'a, Types, S>
    where\n S: Sync,
    ",1,["hotshot_query_service::data_source::fetching::StorageWriteGuard"]],["impl<Types> Sync for BlockRequest<Types>",1,["hotshot_query_service::data_source::fetching::BlockRequest"]],["impl Sync for MetricsDataSource",1,["hotshot_query_service::data_source::metrics::MetricsDataSource"]],["impl<Types> Sync for FileSystemStorage<Types>",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorage"]],["impl Sync for Storage",1,["hotshot_query_service::data_source::storage::no_storage::testing::Storage"]],["impl Sync for DataSource",1,["hotshot_query_service::data_source::storage::no_storage::testing::DataSource"]],["impl Sync for NoStorage",1,["hotshot_query_service::data_source::storage::no_storage::NoStorage"]],["impl Sync for TmpDb",1,["hotshot_query_service::data_source::storage::sql::testing::TmpDb"]],["impl Sync for Config",1,["hotshot_query_service::data_source::storage::sql::Config"]],["impl Sync for SqlStorage",1,["hotshot_query_service::data_source::storage::sql::SqlStorage"]],["impl<'a> Sync for Transaction<'a>",1,["hotshot_query_service::data_source::storage::sql::Transaction"]],["impl Sync for Error",1,["hotshot_query_service::error::Error"]],["impl<Types> Sync for AnyProvider<Types>",1,["hotshot_query_service::fetching::provider::any::AnyProvider"]],["impl Sync for QueryServiceProvider",1,["hotshot_query_service::fetching::provider::query_service::QueryServiceProvider"]],["impl<P> Sync for TestProvider<P>
    where\n P: Send + Sync,
    ",1,["hotshot_query_service::fetching::provider::testing::TestProvider"]],["impl Sync for NoFetching",1,["hotshot_query_service::fetching::provider::NoFetching"]],["impl Sync for PayloadRequest",1,["hotshot_query_service::fetching::request::PayloadRequest"]],["impl Sync for LeafRequest",1,["hotshot_query_service::fetching::request::LeafRequest"]],["impl<T, C> Sync for Fetcher<T, C>
    where\n C: Send,\n T: Send,
    ",1,["hotshot_query_service::fetching::Fetcher"]],["impl Sync for MetricsError",1,["hotshot_query_service::metrics::MetricsError"]],["impl Sync for PrometheusMetrics",1,["hotshot_query_service::metrics::PrometheusMetrics"]],["impl Sync for Counter",1,["hotshot_query_service::metrics::Counter"]],["impl Sync for Gauge",1,["hotshot_query_service::metrics::Gauge"]],["impl Sync for Histogram",1,["hotshot_query_service::metrics::Histogram"]],["impl Sync for Label",1,["hotshot_query_service::metrics::Label"]],["impl Sync for SyncStatus",1,["hotshot_query_service::node::query_data::SyncStatus"]],["impl Sync for Options",1,["hotshot_query_service::node::Options"]],["impl Sync for Error",1,["hotshot_query_service::node::Error"]],["impl Sync for RequestSnafu",1,["hotshot_query_service::node::RequestSnafu"]],["impl Sync for QuerySnafu",1,["hotshot_query_service::node::QuerySnafu"]],["impl<__T0> Sync for QueryProposalsSnafu<__T0>
    where\n __T0: Sync,
    ",1,["hotshot_query_service::node::QueryProposalsSnafu"]],["impl Sync for InvalidSignatureKeySnafu",1,["hotshot_query_service::node::InvalidSignatureKeySnafu"]],["impl<__T0, __T1> Sync for CustomSnafu<__T0, __T1>
    where\n __T0: Sync,\n __T1: Sync,
    ",1,["hotshot_query_service::node::CustomSnafu"]],["impl Sync for MempoolQueryData",1,["hotshot_query_service::status::query_data::MempoolQueryData"]],["impl Sync for Options",1,["hotshot_query_service::status::Options"]],["impl Sync for Error",1,["hotshot_query_service::status::Error"]],["impl<D> Sync for MockNetwork<D>",1,["hotshot_query_service::testing::consensus::MockNetwork"]],["impl Sync for MockTypes",1,["hotshot_query_service::testing::mocks::MockTypes"]],["impl Sync for MockNodeImpl",1,["hotshot_query_service::testing::mocks::MockNodeImpl"]],["impl Sync for QueryError",1,["hotshot_query_service::QueryError"]],["impl Sync for NotFoundSnafu",1,["hotshot_query_service::NotFoundSnafu"]],["impl Sync for MissingSnafu",1,["hotshot_query_service::MissingSnafu"]],["impl<__T0> Sync for Snafu<__T0>
    where\n __T0: Sync,
    ",1,["hotshot_query_service::Snafu"]],["impl Sync for Options",1,["hotshot_query_service::Options"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ 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 e33c51635..3f5ed9c80 100644 --- a/trait.impl/core/marker/trait.Unpin.js +++ b/trait.impl/core/marker/trait.Unpin.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"hotshot_query_service":[["impl<Types> Unpin for LeafId<Types>",1,["hotshot_query_service::availability::data_source::LeafId"]],["impl<Types> Unpin for BlockId<Types>",1,["hotshot_query_service::availability::data_source::BlockId"]],["impl<T> Unpin for Fetch<T>
    where\n T: Unpin,
    ",1,["hotshot_query_service::availability::fetch::Fetch"]],["impl<Types> Unpin for LeafQueryData<Types>
    where\n Types: Unpin,\n <Types as NodeType>::BlockHeader: Unpin,\n <Types as NodeType>::BlockPayload: Unpin,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QCType: Unpin,\n <Types as NodeType>::SignatureKey: Unpin,\n <Types as NodeType>::Time: Unpin,
    ",1,["hotshot_query_service::availability::query_data::LeafQueryData"]],["impl<Types> Unpin for InconsistentLeafError<Types>",1,["hotshot_query_service::availability::query_data::InconsistentLeafError"]],["impl<Types> Unpin for BlockQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: Unpin,\n <Types as NodeType>::BlockPayload: Unpin,\n <Types as NodeType>::SignatureKey: Unpin,
    ",1,["hotshot_query_service::availability::query_data::BlockQueryData"]],["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 as QueryablePayload>::InclusionProof: Unpin,\n <Types as NodeType>::Transaction: Unpin,
    ",1,["hotshot_query_service::availability::query_data::TransactionQueryData"]],["impl<Types> Unpin for BlockSummaryQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: Unpin,\n <Types as NodeType>::SignatureKey: Unpin,
    ",1,["hotshot_query_service::availability::query_data::BlockSummaryQueryData"]],["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 Unpin for Options",1,["hotshot_query_service::availability::Options"]],["impl Unpin for Error",1,["hotshot_query_service::availability::Error"]],["impl Unpin for RequestSnafu",1,["hotshot_query_service::availability::RequestSnafu"]],["impl<__T0> Unpin for FetchLeafSnafu<__T0>
    where\n __T0: Unpin,
    ",1,["hotshot_query_service::availability::FetchLeafSnafu"]],["impl<__T0> Unpin for FetchBlockSnafu<__T0>
    where\n __T0: Unpin,
    ",1,["hotshot_query_service::availability::FetchBlockSnafu"]],["impl<__T0> Unpin for FetchTransactionSnafu<__T0>
    where\n __T0: Unpin,
    ",1,["hotshot_query_service::availability::FetchTransactionSnafu"]],["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::availability::CustomSnafu"]],["impl<D, U> Unpin for ExtensibleDataSource<D, U>
    where\n D: Unpin,\n U: Unpin,
    ",1,["hotshot_query_service::data_source::extension::ExtensibleDataSource"]],["impl<Types, S, P> Unpin for Builder<Types, S, P>
    where\n P: Unpin,\n S: Unpin,\n Types: Unpin,
    ",1,["hotshot_query_service::data_source::fetching::Builder"]],["impl<Types, S, P> Unpin for FetchingDataSource<Types, S, P>",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["impl<'a, Types, S> Unpin for StorageReadGuard<'a, Types, S>",1,["hotshot_query_service::data_source::fetching::StorageReadGuard"]],["impl<'a, Types, S> Unpin for StorageWriteGuard<'a, Types, S>",1,["hotshot_query_service::data_source::fetching::StorageWriteGuard"]],["impl<Types> Unpin for BlockRequest<Types>",1,["hotshot_query_service::data_source::fetching::BlockRequest"]],["impl Unpin for MetricsDataSource",1,["hotshot_query_service::data_source::metrics::MetricsDataSource"]],["impl<Types> Unpin for FileSystemStorage<Types>
    where\n Types: Unpin,\n <Types as NodeType>::BlockHeader: Unpin,\n <Types as NodeType>::BlockPayload: Unpin,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QCType: Unpin,\n <Types as NodeType>::SignatureKey: Unpin,\n <Types as NodeType>::Time: Unpin,\n <<Types as NodeType>::BlockPayload as QueryablePayload>::TransactionIndex: Unpin,
    ",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorage"]],["impl Unpin for Config",1,["hotshot_query_service::data_source::storage::sql::Config"]],["impl Unpin for SqlStorage",1,["hotshot_query_service::data_source::storage::sql::SqlStorage"]],["impl<'a> Unpin for Transaction<'a>",1,["hotshot_query_service::data_source::storage::sql::Transaction"]],["impl Unpin for Error",1,["hotshot_query_service::error::Error"]],["impl<Types> Unpin for AnyProvider<Types>",1,["hotshot_query_service::fetching::provider::any::AnyProvider"]],["impl Unpin for QueryServiceProvider",1,["hotshot_query_service::fetching::provider::query_service::QueryServiceProvider"]],["impl Unpin for NoFetching",1,["hotshot_query_service::fetching::provider::NoFetching"]],["impl Unpin for PayloadRequest",1,["hotshot_query_service::fetching::request::PayloadRequest"]],["impl Unpin for LeafRequest",1,["hotshot_query_service::fetching::request::LeafRequest"]],["impl<T, C> Unpin for Fetcher<T, C>",1,["hotshot_query_service::fetching::Fetcher"]],["impl Unpin for MetricsError",1,["hotshot_query_service::metrics::MetricsError"]],["impl Unpin for PrometheusMetrics",1,["hotshot_query_service::metrics::PrometheusMetrics"]],["impl Unpin for Counter",1,["hotshot_query_service::metrics::Counter"]],["impl Unpin for Gauge",1,["hotshot_query_service::metrics::Gauge"]],["impl Unpin for Histogram",1,["hotshot_query_service::metrics::Histogram"]],["impl Unpin for Label",1,["hotshot_query_service::metrics::Label"]],["impl Unpin for SyncStatus",1,["hotshot_query_service::node::query_data::SyncStatus"]],["impl Unpin for Options",1,["hotshot_query_service::node::Options"]],["impl Unpin for Error",1,["hotshot_query_service::node::Error"]],["impl Unpin for RequestSnafu",1,["hotshot_query_service::node::RequestSnafu"]],["impl Unpin for QuerySnafu",1,["hotshot_query_service::node::QuerySnafu"]],["impl<__T0> Unpin for QueryProposalsSnafu<__T0>
    where\n __T0: Unpin,
    ",1,["hotshot_query_service::node::QueryProposalsSnafu"]],["impl Unpin for InvalidSignatureKeySnafu",1,["hotshot_query_service::node::InvalidSignatureKeySnafu"]],["impl Unpin for SyncStatusSnafu",1,["hotshot_query_service::node::SyncStatusSnafu"]],["impl<__T0, __T1> Unpin for CustomSnafu<__T0, __T1>
    where\n __T0: Unpin,\n __T1: Unpin,
    ",1,["hotshot_query_service::node::CustomSnafu"]],["impl Unpin for MempoolQueryData",1,["hotshot_query_service::status::query_data::MempoolQueryData"]],["impl Unpin for Options",1,["hotshot_query_service::status::Options"]],["impl Unpin for Error",1,["hotshot_query_service::status::Error"]],["impl Unpin for QueryError",1,["hotshot_query_service::QueryError"]],["impl Unpin for NotFoundSnafu",1,["hotshot_query_service::NotFoundSnafu"]],["impl Unpin for MissingSnafu",1,["hotshot_query_service::MissingSnafu"]],["impl<__T0> Unpin for Snafu<__T0>
    where\n __T0: Unpin,
    ",1,["hotshot_query_service::Snafu"]],["impl Unpin for Options",1,["hotshot_query_service::Options"]]] +"hotshot_query_service":[["impl<Types> Unpin for LeafId<Types>",1,["hotshot_query_service::availability::data_source::LeafId"]],["impl<Types> Unpin for BlockId<Types>",1,["hotshot_query_service::availability::data_source::BlockId"]],["impl<T> Unpin for Fetch<T>
    where\n T: Unpin,
    ",1,["hotshot_query_service::availability::fetch::Fetch"]],["impl<Types> Unpin for LeafQueryData<Types>
    where\n Types: Unpin,\n <Types as NodeType>::BlockHeader: Unpin,\n <Types as NodeType>::BlockPayload: Unpin,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QCType: Unpin,\n <Types as NodeType>::SignatureKey: Unpin,\n <Types as NodeType>::Time: Unpin,
    ",1,["hotshot_query_service::availability::query_data::LeafQueryData"]],["impl<Types> Unpin for InconsistentLeafError<Types>",1,["hotshot_query_service::availability::query_data::InconsistentLeafError"]],["impl<Types> Unpin for BlockQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: Unpin,\n <Types as NodeType>::BlockPayload: Unpin,\n <Types as NodeType>::SignatureKey: Unpin,
    ",1,["hotshot_query_service::availability::query_data::BlockQueryData"]],["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 as QueryablePayload>::InclusionProof: Unpin,\n <Types as NodeType>::Transaction: Unpin,
    ",1,["hotshot_query_service::availability::query_data::TransactionQueryData"]],["impl<Types> Unpin for BlockSummaryQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: Unpin,\n <Types as NodeType>::SignatureKey: Unpin,
    ",1,["hotshot_query_service::availability::query_data::BlockSummaryQueryData"]],["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 Unpin for Options",1,["hotshot_query_service::availability::Options"]],["impl Unpin for Error",1,["hotshot_query_service::availability::Error"]],["impl Unpin for RequestSnafu",1,["hotshot_query_service::availability::RequestSnafu"]],["impl<__T0> Unpin for FetchLeafSnafu<__T0>
    where\n __T0: Unpin,
    ",1,["hotshot_query_service::availability::FetchLeafSnafu"]],["impl<__T0> Unpin for FetchBlockSnafu<__T0>
    where\n __T0: Unpin,
    ",1,["hotshot_query_service::availability::FetchBlockSnafu"]],["impl<__T0> Unpin for FetchTransactionSnafu<__T0>
    where\n __T0: Unpin,
    ",1,["hotshot_query_service::availability::FetchTransactionSnafu"]],["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::availability::CustomSnafu"]],["impl<D, U> Unpin for ExtensibleDataSource<D, U>
    where\n D: Unpin,\n U: Unpin,
    ",1,["hotshot_query_service::data_source::extension::ExtensibleDataSource"]],["impl<Types, S, P> Unpin for Builder<Types, S, P>
    where\n P: Unpin,\n S: Unpin,\n Types: Unpin,
    ",1,["hotshot_query_service::data_source::fetching::Builder"]],["impl<Types, S, P> Unpin for FetchingDataSource<Types, S, P>",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["impl<'a, Types, S> Unpin for StorageReadGuard<'a, Types, S>",1,["hotshot_query_service::data_source::fetching::StorageReadGuard"]],["impl<'a, Types, S> Unpin for StorageWriteGuard<'a, Types, S>",1,["hotshot_query_service::data_source::fetching::StorageWriteGuard"]],["impl<Types> Unpin for BlockRequest<Types>",1,["hotshot_query_service::data_source::fetching::BlockRequest"]],["impl Unpin for MetricsDataSource",1,["hotshot_query_service::data_source::metrics::MetricsDataSource"]],["impl<Types> Unpin for FileSystemStorage<Types>
    where\n Types: Unpin,\n <Types as NodeType>::BlockHeader: Unpin,\n <Types as NodeType>::BlockPayload: Unpin,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QCType: Unpin,\n <Types as NodeType>::SignatureKey: Unpin,\n <Types as NodeType>::Time: Unpin,\n <<Types as NodeType>::BlockPayload as QueryablePayload>::TransactionIndex: Unpin,
    ",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorage"]],["impl Unpin for Storage",1,["hotshot_query_service::data_source::storage::no_storage::testing::Storage"]],["impl Unpin for DataSource",1,["hotshot_query_service::data_source::storage::no_storage::testing::DataSource"]],["impl Unpin for NoStorage",1,["hotshot_query_service::data_source::storage::no_storage::NoStorage"]],["impl Unpin for TmpDb",1,["hotshot_query_service::data_source::storage::sql::testing::TmpDb"]],["impl Unpin for Config",1,["hotshot_query_service::data_source::storage::sql::Config"]],["impl Unpin for SqlStorage",1,["hotshot_query_service::data_source::storage::sql::SqlStorage"]],["impl<'a> Unpin for Transaction<'a>",1,["hotshot_query_service::data_source::storage::sql::Transaction"]],["impl Unpin for Error",1,["hotshot_query_service::error::Error"]],["impl<Types> Unpin for AnyProvider<Types>",1,["hotshot_query_service::fetching::provider::any::AnyProvider"]],["impl Unpin for QueryServiceProvider",1,["hotshot_query_service::fetching::provider::query_service::QueryServiceProvider"]],["impl<P> Unpin for TestProvider<P>",1,["hotshot_query_service::fetching::provider::testing::TestProvider"]],["impl Unpin for NoFetching",1,["hotshot_query_service::fetching::provider::NoFetching"]],["impl Unpin for PayloadRequest",1,["hotshot_query_service::fetching::request::PayloadRequest"]],["impl Unpin for LeafRequest",1,["hotshot_query_service::fetching::request::LeafRequest"]],["impl<T, C> Unpin for Fetcher<T, C>",1,["hotshot_query_service::fetching::Fetcher"]],["impl Unpin for MetricsError",1,["hotshot_query_service::metrics::MetricsError"]],["impl Unpin for PrometheusMetrics",1,["hotshot_query_service::metrics::PrometheusMetrics"]],["impl Unpin for Counter",1,["hotshot_query_service::metrics::Counter"]],["impl Unpin for Gauge",1,["hotshot_query_service::metrics::Gauge"]],["impl Unpin for Histogram",1,["hotshot_query_service::metrics::Histogram"]],["impl Unpin for Label",1,["hotshot_query_service::metrics::Label"]],["impl Unpin for SyncStatus",1,["hotshot_query_service::node::query_data::SyncStatus"]],["impl Unpin for Options",1,["hotshot_query_service::node::Options"]],["impl Unpin for Error",1,["hotshot_query_service::node::Error"]],["impl Unpin for RequestSnafu",1,["hotshot_query_service::node::RequestSnafu"]],["impl Unpin for QuerySnafu",1,["hotshot_query_service::node::QuerySnafu"]],["impl<__T0> Unpin for QueryProposalsSnafu<__T0>
    where\n __T0: Unpin,
    ",1,["hotshot_query_service::node::QueryProposalsSnafu"]],["impl Unpin for InvalidSignatureKeySnafu",1,["hotshot_query_service::node::InvalidSignatureKeySnafu"]],["impl<__T0, __T1> Unpin for CustomSnafu<__T0, __T1>
    where\n __T0: Unpin,\n __T1: Unpin,
    ",1,["hotshot_query_service::node::CustomSnafu"]],["impl Unpin for MempoolQueryData",1,["hotshot_query_service::status::query_data::MempoolQueryData"]],["impl Unpin for Options",1,["hotshot_query_service::status::Options"]],["impl Unpin for Error",1,["hotshot_query_service::status::Error"]],["impl<D> Unpin for MockNetwork<D>",1,["hotshot_query_service::testing::consensus::MockNetwork"]],["impl Unpin for MockTypes",1,["hotshot_query_service::testing::mocks::MockTypes"]],["impl Unpin for MockNodeImpl",1,["hotshot_query_service::testing::mocks::MockNodeImpl"]],["impl Unpin for QueryError",1,["hotshot_query_service::QueryError"]],["impl Unpin for NotFoundSnafu",1,["hotshot_query_service::NotFoundSnafu"]],["impl Unpin for MissingSnafu",1,["hotshot_query_service::MissingSnafu"]],["impl<__T0> Unpin for Snafu<__T0>
    where\n __T0: Unpin,
    ",1,["hotshot_query_service::Snafu"]],["impl Unpin for Options",1,["hotshot_query_service::Options"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/ops/deref/trait.Deref.js b/trait.impl/core/ops/deref/trait.Deref.js index b6ed72f0a..33c9d3cbf 100644 --- a/trait.impl/core/ops/deref/trait.Deref.js +++ b/trait.impl/core/ops/deref/trait.Deref.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"hotshot_query_service":[["impl<'a, Types, S> Deref for StorageReadGuard<'a, Types, S>
    where\n Types: NodeType,
    "],["impl<'a, Types, S> Deref for StorageWriteGuard<'a, Types, S>
    where\n Types: NodeType,
    "]] +"hotshot_query_service":[["impl<'a, Types, S> Deref for StorageWriteGuard<'a, Types, S>
    where\n Types: NodeType,
    "],["impl<'a, Types, S> Deref for StorageReadGuard<'a, Types, S>
    where\n Types: NodeType,
    "]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/ops/drop/trait.Drop.js b/trait.impl/core/ops/drop/trait.Drop.js index 00a70eabf..404cc3bc6 100644 --- a/trait.impl/core/ops/drop/trait.Drop.js +++ b/trait.impl/core/ops/drop/trait.Drop.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"hotshot_query_service":[["impl Drop for SqlStorage"]] +"hotshot_query_service":[["impl Drop for SqlStorage"],["impl<D: DataSourceLifeCycle> Drop for MockNetwork<D>"],["impl Drop for TmpDb"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ 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 24671eeb6..190974717 100644 --- a/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js +++ b/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"hotshot_query_service":[["impl<Types> RefUnwindSafe for LeafId<Types>",1,["hotshot_query_service::availability::data_source::LeafId"]],["impl<Types> RefUnwindSafe for BlockId<Types>",1,["hotshot_query_service::availability::data_source::BlockId"]],["impl<T> !RefUnwindSafe for Fetch<T>",1,["hotshot_query_service::availability::fetch::Fetch"]],["impl<Types> RefUnwindSafe for LeafQueryData<Types>
    where\n Types: RefUnwindSafe,\n <Types as NodeType>::BlockHeader: RefUnwindSafe,\n <Types as NodeType>::BlockPayload: RefUnwindSafe,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QCType: RefUnwindSafe,\n <Types as NodeType>::SignatureKey: RefUnwindSafe,\n <Types as NodeType>::Time: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::LeafQueryData"]],["impl<Types> RefUnwindSafe for InconsistentLeafError<Types>",1,["hotshot_query_service::availability::query_data::InconsistentLeafError"]],["impl<Types> RefUnwindSafe for BlockQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: RefUnwindSafe,\n <Types as NodeType>::BlockPayload: RefUnwindSafe,\n <Types as NodeType>::SignatureKey: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::BlockQueryData"]],["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 as QueryablePayload>::InclusionProof: RefUnwindSafe,\n <Types as NodeType>::Transaction: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::TransactionQueryData"]],["impl<Types> RefUnwindSafe for BlockSummaryQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: RefUnwindSafe,\n <Types as NodeType>::SignatureKey: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::BlockSummaryQueryData"]],["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 RefUnwindSafe for Options",1,["hotshot_query_service::availability::Options"]],["impl RefUnwindSafe for Error",1,["hotshot_query_service::availability::Error"]],["impl RefUnwindSafe for RequestSnafu",1,["hotshot_query_service::availability::RequestSnafu"]],["impl<__T0> RefUnwindSafe for FetchLeafSnafu<__T0>
    where\n __T0: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::FetchLeafSnafu"]],["impl<__T0> RefUnwindSafe for FetchBlockSnafu<__T0>
    where\n __T0: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::FetchBlockSnafu"]],["impl<__T0> RefUnwindSafe for FetchTransactionSnafu<__T0>
    where\n __T0: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::FetchTransactionSnafu"]],["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::availability::CustomSnafu"]],["impl<D, U> RefUnwindSafe for ExtensibleDataSource<D, U>
    where\n D: RefUnwindSafe,\n U: RefUnwindSafe,
    ",1,["hotshot_query_service::data_source::extension::ExtensibleDataSource"]],["impl<Types, S, P> RefUnwindSafe for Builder<Types, S, P>
    where\n P: RefUnwindSafe,\n S: RefUnwindSafe,\n Types: RefUnwindSafe,
    ",1,["hotshot_query_service::data_source::fetching::Builder"]],["impl<Types, S, P> !RefUnwindSafe for FetchingDataSource<Types, S, P>",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["impl<'a, Types, S> !RefUnwindSafe for StorageReadGuard<'a, Types, S>",1,["hotshot_query_service::data_source::fetching::StorageReadGuard"]],["impl<'a, Types, S> !RefUnwindSafe for StorageWriteGuard<'a, Types, S>",1,["hotshot_query_service::data_source::fetching::StorageWriteGuard"]],["impl<Types> RefUnwindSafe for BlockRequest<Types>",1,["hotshot_query_service::data_source::fetching::BlockRequest"]],["impl !RefUnwindSafe for MetricsDataSource",1,["hotshot_query_service::data_source::metrics::MetricsDataSource"]],["impl<Types> RefUnwindSafe for FileSystemStorage<Types>
    where\n Types: RefUnwindSafe,\n <Types as NodeType>::BlockHeader: RefUnwindSafe,\n <Types as NodeType>::BlockPayload: RefUnwindSafe,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QCType: RefUnwindSafe,\n <Types as NodeType>::SignatureKey: RefUnwindSafe,\n <Types as NodeType>::Time: RefUnwindSafe,\n <<Types as NodeType>::BlockPayload as QueryablePayload>::TransactionIndex: RefUnwindSafe,
    ",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorage"]],["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<'a> !RefUnwindSafe for Transaction<'a>",1,["hotshot_query_service::data_source::storage::sql::Transaction"]],["impl RefUnwindSafe for Error",1,["hotshot_query_service::error::Error"]],["impl<Types> !RefUnwindSafe for AnyProvider<Types>",1,["hotshot_query_service::fetching::provider::any::AnyProvider"]],["impl !RefUnwindSafe for QueryServiceProvider",1,["hotshot_query_service::fetching::provider::query_service::QueryServiceProvider"]],["impl RefUnwindSafe for NoFetching",1,["hotshot_query_service::fetching::provider::NoFetching"]],["impl RefUnwindSafe for PayloadRequest",1,["hotshot_query_service::fetching::request::PayloadRequest"]],["impl RefUnwindSafe for LeafRequest",1,["hotshot_query_service::fetching::request::LeafRequest"]],["impl<T, C> !RefUnwindSafe for Fetcher<T, C>",1,["hotshot_query_service::fetching::Fetcher"]],["impl !RefUnwindSafe for MetricsError",1,["hotshot_query_service::metrics::MetricsError"]],["impl !RefUnwindSafe for PrometheusMetrics",1,["hotshot_query_service::metrics::PrometheusMetrics"]],["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 Label",1,["hotshot_query_service::metrics::Label"]],["impl RefUnwindSafe for SyncStatus",1,["hotshot_query_service::node::query_data::SyncStatus"]],["impl RefUnwindSafe for Options",1,["hotshot_query_service::node::Options"]],["impl RefUnwindSafe for Error",1,["hotshot_query_service::node::Error"]],["impl RefUnwindSafe for RequestSnafu",1,["hotshot_query_service::node::RequestSnafu"]],["impl RefUnwindSafe for QuerySnafu",1,["hotshot_query_service::node::QuerySnafu"]],["impl<__T0> RefUnwindSafe for QueryProposalsSnafu<__T0>
    where\n __T0: RefUnwindSafe,
    ",1,["hotshot_query_service::node::QueryProposalsSnafu"]],["impl RefUnwindSafe for InvalidSignatureKeySnafu",1,["hotshot_query_service::node::InvalidSignatureKeySnafu"]],["impl RefUnwindSafe for SyncStatusSnafu",1,["hotshot_query_service::node::SyncStatusSnafu"]],["impl<__T0, __T1> RefUnwindSafe for CustomSnafu<__T0, __T1>
    where\n __T0: RefUnwindSafe,\n __T1: RefUnwindSafe,
    ",1,["hotshot_query_service::node::CustomSnafu"]],["impl RefUnwindSafe for MempoolQueryData",1,["hotshot_query_service::status::query_data::MempoolQueryData"]],["impl RefUnwindSafe for Options",1,["hotshot_query_service::status::Options"]],["impl RefUnwindSafe for Error",1,["hotshot_query_service::status::Error"]],["impl RefUnwindSafe for QueryError",1,["hotshot_query_service::QueryError"]],["impl RefUnwindSafe for NotFoundSnafu",1,["hotshot_query_service::NotFoundSnafu"]],["impl RefUnwindSafe for MissingSnafu",1,["hotshot_query_service::MissingSnafu"]],["impl<__T0> RefUnwindSafe for Snafu<__T0>
    where\n __T0: RefUnwindSafe,
    ",1,["hotshot_query_service::Snafu"]],["impl RefUnwindSafe for Options",1,["hotshot_query_service::Options"]]] +"hotshot_query_service":[["impl<Types> RefUnwindSafe for LeafId<Types>",1,["hotshot_query_service::availability::data_source::LeafId"]],["impl<Types> RefUnwindSafe for BlockId<Types>",1,["hotshot_query_service::availability::data_source::BlockId"]],["impl<T> !RefUnwindSafe for Fetch<T>",1,["hotshot_query_service::availability::fetch::Fetch"]],["impl<Types> RefUnwindSafe for LeafQueryData<Types>
    where\n Types: RefUnwindSafe,\n <Types as NodeType>::BlockHeader: RefUnwindSafe,\n <Types as NodeType>::BlockPayload: RefUnwindSafe,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QCType: RefUnwindSafe,\n <Types as NodeType>::SignatureKey: RefUnwindSafe,\n <Types as NodeType>::Time: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::LeafQueryData"]],["impl<Types> RefUnwindSafe for InconsistentLeafError<Types>",1,["hotshot_query_service::availability::query_data::InconsistentLeafError"]],["impl<Types> RefUnwindSafe for BlockQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: RefUnwindSafe,\n <Types as NodeType>::BlockPayload: RefUnwindSafe,\n <Types as NodeType>::SignatureKey: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::BlockQueryData"]],["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 as QueryablePayload>::InclusionProof: RefUnwindSafe,\n <Types as NodeType>::Transaction: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::TransactionQueryData"]],["impl<Types> RefUnwindSafe for BlockSummaryQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: RefUnwindSafe,\n <Types as NodeType>::SignatureKey: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::BlockSummaryQueryData"]],["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 RefUnwindSafe for Options",1,["hotshot_query_service::availability::Options"]],["impl RefUnwindSafe for Error",1,["hotshot_query_service::availability::Error"]],["impl RefUnwindSafe for RequestSnafu",1,["hotshot_query_service::availability::RequestSnafu"]],["impl<__T0> RefUnwindSafe for FetchLeafSnafu<__T0>
    where\n __T0: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::FetchLeafSnafu"]],["impl<__T0> RefUnwindSafe for FetchBlockSnafu<__T0>
    where\n __T0: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::FetchBlockSnafu"]],["impl<__T0> RefUnwindSafe for FetchTransactionSnafu<__T0>
    where\n __T0: RefUnwindSafe,
    ",1,["hotshot_query_service::availability::FetchTransactionSnafu"]],["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::availability::CustomSnafu"]],["impl<D, U> RefUnwindSafe for ExtensibleDataSource<D, U>
    where\n D: RefUnwindSafe,\n U: RefUnwindSafe,
    ",1,["hotshot_query_service::data_source::extension::ExtensibleDataSource"]],["impl<Types, S, P> RefUnwindSafe for Builder<Types, S, P>
    where\n P: RefUnwindSafe,\n S: RefUnwindSafe,\n Types: RefUnwindSafe,
    ",1,["hotshot_query_service::data_source::fetching::Builder"]],["impl<Types, S, P> !RefUnwindSafe for FetchingDataSource<Types, S, P>",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["impl<'a, Types, S> !RefUnwindSafe for StorageReadGuard<'a, Types, S>",1,["hotshot_query_service::data_source::fetching::StorageReadGuard"]],["impl<'a, Types, S> !RefUnwindSafe for StorageWriteGuard<'a, Types, S>",1,["hotshot_query_service::data_source::fetching::StorageWriteGuard"]],["impl<Types> RefUnwindSafe for BlockRequest<Types>",1,["hotshot_query_service::data_source::fetching::BlockRequest"]],["impl !RefUnwindSafe for MetricsDataSource",1,["hotshot_query_service::data_source::metrics::MetricsDataSource"]],["impl<Types> RefUnwindSafe for FileSystemStorage<Types>
    where\n Types: RefUnwindSafe,\n <Types as NodeType>::BlockHeader: RefUnwindSafe,\n <Types as NodeType>::BlockPayload: RefUnwindSafe,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QCType: RefUnwindSafe,\n <Types as NodeType>::SignatureKey: RefUnwindSafe,\n <Types as NodeType>::Time: RefUnwindSafe,\n <<Types as NodeType>::BlockPayload as QueryablePayload>::TransactionIndex: RefUnwindSafe,
    ",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorage"]],["impl RefUnwindSafe for Storage",1,["hotshot_query_service::data_source::storage::no_storage::testing::Storage"]],["impl !RefUnwindSafe for DataSource",1,["hotshot_query_service::data_source::storage::no_storage::testing::DataSource"]],["impl RefUnwindSafe for NoStorage",1,["hotshot_query_service::data_source::storage::no_storage::NoStorage"]],["impl RefUnwindSafe for TmpDb",1,["hotshot_query_service::data_source::storage::sql::testing::TmpDb"]],["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<'a> !RefUnwindSafe for Transaction<'a>",1,["hotshot_query_service::data_source::storage::sql::Transaction"]],["impl RefUnwindSafe for Error",1,["hotshot_query_service::error::Error"]],["impl<Types> !RefUnwindSafe for AnyProvider<Types>",1,["hotshot_query_service::fetching::provider::any::AnyProvider"]],["impl !RefUnwindSafe for QueryServiceProvider",1,["hotshot_query_service::fetching::provider::query_service::QueryServiceProvider"]],["impl<P> !RefUnwindSafe for TestProvider<P>",1,["hotshot_query_service::fetching::provider::testing::TestProvider"]],["impl RefUnwindSafe for NoFetching",1,["hotshot_query_service::fetching::provider::NoFetching"]],["impl RefUnwindSafe for PayloadRequest",1,["hotshot_query_service::fetching::request::PayloadRequest"]],["impl RefUnwindSafe for LeafRequest",1,["hotshot_query_service::fetching::request::LeafRequest"]],["impl<T, C> !RefUnwindSafe for Fetcher<T, C>",1,["hotshot_query_service::fetching::Fetcher"]],["impl !RefUnwindSafe for MetricsError",1,["hotshot_query_service::metrics::MetricsError"]],["impl !RefUnwindSafe for PrometheusMetrics",1,["hotshot_query_service::metrics::PrometheusMetrics"]],["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 Label",1,["hotshot_query_service::metrics::Label"]],["impl RefUnwindSafe for SyncStatus",1,["hotshot_query_service::node::query_data::SyncStatus"]],["impl RefUnwindSafe for Options",1,["hotshot_query_service::node::Options"]],["impl RefUnwindSafe for Error",1,["hotshot_query_service::node::Error"]],["impl RefUnwindSafe for RequestSnafu",1,["hotshot_query_service::node::RequestSnafu"]],["impl RefUnwindSafe for QuerySnafu",1,["hotshot_query_service::node::QuerySnafu"]],["impl<__T0> RefUnwindSafe for QueryProposalsSnafu<__T0>
    where\n __T0: RefUnwindSafe,
    ",1,["hotshot_query_service::node::QueryProposalsSnafu"]],["impl RefUnwindSafe for InvalidSignatureKeySnafu",1,["hotshot_query_service::node::InvalidSignatureKeySnafu"]],["impl<__T0, __T1> RefUnwindSafe for CustomSnafu<__T0, __T1>
    where\n __T0: RefUnwindSafe,\n __T1: RefUnwindSafe,
    ",1,["hotshot_query_service::node::CustomSnafu"]],["impl RefUnwindSafe for MempoolQueryData",1,["hotshot_query_service::status::query_data::MempoolQueryData"]],["impl RefUnwindSafe for Options",1,["hotshot_query_service::status::Options"]],["impl RefUnwindSafe for Error",1,["hotshot_query_service::status::Error"]],["impl<D> !RefUnwindSafe for MockNetwork<D>",1,["hotshot_query_service::testing::consensus::MockNetwork"]],["impl RefUnwindSafe for MockTypes",1,["hotshot_query_service::testing::mocks::MockTypes"]],["impl RefUnwindSafe for MockNodeImpl",1,["hotshot_query_service::testing::mocks::MockNodeImpl"]],["impl RefUnwindSafe for QueryError",1,["hotshot_query_service::QueryError"]],["impl RefUnwindSafe for NotFoundSnafu",1,["hotshot_query_service::NotFoundSnafu"]],["impl RefUnwindSafe for MissingSnafu",1,["hotshot_query_service::MissingSnafu"]],["impl<__T0> RefUnwindSafe for Snafu<__T0>
    where\n __T0: RefUnwindSafe,
    ",1,["hotshot_query_service::Snafu"]],["impl RefUnwindSafe for Options",1,["hotshot_query_service::Options"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ 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 89e8dc731..83fd24663 100644 --- a/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js +++ b/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"hotshot_query_service":[["impl<Types> UnwindSafe for LeafId<Types>",1,["hotshot_query_service::availability::data_source::LeafId"]],["impl<Types> UnwindSafe for BlockId<Types>",1,["hotshot_query_service::availability::data_source::BlockId"]],["impl<T> !UnwindSafe for Fetch<T>",1,["hotshot_query_service::availability::fetch::Fetch"]],["impl<Types> UnwindSafe for LeafQueryData<Types>
    where\n Types: UnwindSafe,\n <Types as NodeType>::BlockHeader: UnwindSafe,\n <Types as NodeType>::BlockPayload: UnwindSafe,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QCType: UnwindSafe,\n <Types as NodeType>::SignatureKey: UnwindSafe,\n <Types as NodeType>::Time: UnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::LeafQueryData"]],["impl<Types> UnwindSafe for InconsistentLeafError<Types>",1,["hotshot_query_service::availability::query_data::InconsistentLeafError"]],["impl<Types> UnwindSafe for BlockQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: UnwindSafe,\n <Types as NodeType>::BlockPayload: UnwindSafe,\n <Types as NodeType>::SignatureKey: UnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::BlockQueryData"]],["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 as QueryablePayload>::InclusionProof: UnwindSafe,\n <Types as NodeType>::Transaction: UnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::TransactionQueryData"]],["impl<Types> UnwindSafe for BlockSummaryQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: UnwindSafe,\n <Types as NodeType>::SignatureKey: UnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::BlockSummaryQueryData"]],["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 UnwindSafe for Options",1,["hotshot_query_service::availability::Options"]],["impl UnwindSafe for Error",1,["hotshot_query_service::availability::Error"]],["impl UnwindSafe for RequestSnafu",1,["hotshot_query_service::availability::RequestSnafu"]],["impl<__T0> UnwindSafe for FetchLeafSnafu<__T0>
    where\n __T0: UnwindSafe,
    ",1,["hotshot_query_service::availability::FetchLeafSnafu"]],["impl<__T0> UnwindSafe for FetchBlockSnafu<__T0>
    where\n __T0: UnwindSafe,
    ",1,["hotshot_query_service::availability::FetchBlockSnafu"]],["impl<__T0> UnwindSafe for FetchTransactionSnafu<__T0>
    where\n __T0: UnwindSafe,
    ",1,["hotshot_query_service::availability::FetchTransactionSnafu"]],["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::availability::CustomSnafu"]],["impl<D, U> UnwindSafe for ExtensibleDataSource<D, U>
    where\n D: UnwindSafe,\n U: UnwindSafe,
    ",1,["hotshot_query_service::data_source::extension::ExtensibleDataSource"]],["impl<Types, S, P> UnwindSafe for Builder<Types, S, P>
    where\n P: UnwindSafe,\n S: UnwindSafe,\n Types: UnwindSafe,
    ",1,["hotshot_query_service::data_source::fetching::Builder"]],["impl<Types, S, P> !UnwindSafe for FetchingDataSource<Types, S, P>",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["impl<'a, Types, S> !UnwindSafe for StorageReadGuard<'a, Types, S>",1,["hotshot_query_service::data_source::fetching::StorageReadGuard"]],["impl<'a, Types, S> !UnwindSafe for StorageWriteGuard<'a, Types, S>",1,["hotshot_query_service::data_source::fetching::StorageWriteGuard"]],["impl<Types> UnwindSafe for BlockRequest<Types>",1,["hotshot_query_service::data_source::fetching::BlockRequest"]],["impl !UnwindSafe for MetricsDataSource",1,["hotshot_query_service::data_source::metrics::MetricsDataSource"]],["impl<Types> UnwindSafe for FileSystemStorage<Types>
    where\n Types: UnwindSafe,\n <Types as NodeType>::BlockHeader: UnwindSafe,\n <Types as NodeType>::BlockPayload: UnwindSafe,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QCType: UnwindSafe,\n <Types as NodeType>::SignatureKey: UnwindSafe,\n <Types as NodeType>::Time: UnwindSafe,\n <<Types as NodeType>::BlockPayload as QueryablePayload>::TransactionIndex: UnwindSafe,
    ",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorage"]],["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<'a> !UnwindSafe for Transaction<'a>",1,["hotshot_query_service::data_source::storage::sql::Transaction"]],["impl UnwindSafe for Error",1,["hotshot_query_service::error::Error"]],["impl<Types> !UnwindSafe for AnyProvider<Types>",1,["hotshot_query_service::fetching::provider::any::AnyProvider"]],["impl !UnwindSafe for QueryServiceProvider",1,["hotshot_query_service::fetching::provider::query_service::QueryServiceProvider"]],["impl UnwindSafe for NoFetching",1,["hotshot_query_service::fetching::provider::NoFetching"]],["impl UnwindSafe for PayloadRequest",1,["hotshot_query_service::fetching::request::PayloadRequest"]],["impl UnwindSafe for LeafRequest",1,["hotshot_query_service::fetching::request::LeafRequest"]],["impl<T, C> !UnwindSafe for Fetcher<T, C>",1,["hotshot_query_service::fetching::Fetcher"]],["impl !UnwindSafe for MetricsError",1,["hotshot_query_service::metrics::MetricsError"]],["impl !UnwindSafe for PrometheusMetrics",1,["hotshot_query_service::metrics::PrometheusMetrics"]],["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 Label",1,["hotshot_query_service::metrics::Label"]],["impl UnwindSafe for SyncStatus",1,["hotshot_query_service::node::query_data::SyncStatus"]],["impl UnwindSafe for Options",1,["hotshot_query_service::node::Options"]],["impl UnwindSafe for Error",1,["hotshot_query_service::node::Error"]],["impl UnwindSafe for RequestSnafu",1,["hotshot_query_service::node::RequestSnafu"]],["impl UnwindSafe for QuerySnafu",1,["hotshot_query_service::node::QuerySnafu"]],["impl<__T0> UnwindSafe for QueryProposalsSnafu<__T0>
    where\n __T0: UnwindSafe,
    ",1,["hotshot_query_service::node::QueryProposalsSnafu"]],["impl UnwindSafe for InvalidSignatureKeySnafu",1,["hotshot_query_service::node::InvalidSignatureKeySnafu"]],["impl UnwindSafe for SyncStatusSnafu",1,["hotshot_query_service::node::SyncStatusSnafu"]],["impl<__T0, __T1> UnwindSafe for CustomSnafu<__T0, __T1>
    where\n __T0: UnwindSafe,\n __T1: UnwindSafe,
    ",1,["hotshot_query_service::node::CustomSnafu"]],["impl UnwindSafe for MempoolQueryData",1,["hotshot_query_service::status::query_data::MempoolQueryData"]],["impl UnwindSafe for Options",1,["hotshot_query_service::status::Options"]],["impl UnwindSafe for Error",1,["hotshot_query_service::status::Error"]],["impl UnwindSafe for QueryError",1,["hotshot_query_service::QueryError"]],["impl UnwindSafe for NotFoundSnafu",1,["hotshot_query_service::NotFoundSnafu"]],["impl UnwindSafe for MissingSnafu",1,["hotshot_query_service::MissingSnafu"]],["impl<__T0> UnwindSafe for Snafu<__T0>
    where\n __T0: UnwindSafe,
    ",1,["hotshot_query_service::Snafu"]],["impl UnwindSafe for Options",1,["hotshot_query_service::Options"]]] +"hotshot_query_service":[["impl<Types> UnwindSafe for LeafId<Types>",1,["hotshot_query_service::availability::data_source::LeafId"]],["impl<Types> UnwindSafe for BlockId<Types>",1,["hotshot_query_service::availability::data_source::BlockId"]],["impl<T> !UnwindSafe for Fetch<T>",1,["hotshot_query_service::availability::fetch::Fetch"]],["impl<Types> UnwindSafe for LeafQueryData<Types>
    where\n Types: UnwindSafe,\n <Types as NodeType>::BlockHeader: UnwindSafe,\n <Types as NodeType>::BlockPayload: UnwindSafe,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QCType: UnwindSafe,\n <Types as NodeType>::SignatureKey: UnwindSafe,\n <Types as NodeType>::Time: UnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::LeafQueryData"]],["impl<Types> UnwindSafe for InconsistentLeafError<Types>",1,["hotshot_query_service::availability::query_data::InconsistentLeafError"]],["impl<Types> UnwindSafe for BlockQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: UnwindSafe,\n <Types as NodeType>::BlockPayload: UnwindSafe,\n <Types as NodeType>::SignatureKey: UnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::BlockQueryData"]],["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 as QueryablePayload>::InclusionProof: UnwindSafe,\n <Types as NodeType>::Transaction: UnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::TransactionQueryData"]],["impl<Types> UnwindSafe for BlockSummaryQueryData<Types>
    where\n <Types as NodeType>::BlockHeader: UnwindSafe,\n <Types as NodeType>::SignatureKey: UnwindSafe,
    ",1,["hotshot_query_service::availability::query_data::BlockSummaryQueryData"]],["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 UnwindSafe for Options",1,["hotshot_query_service::availability::Options"]],["impl UnwindSafe for Error",1,["hotshot_query_service::availability::Error"]],["impl UnwindSafe for RequestSnafu",1,["hotshot_query_service::availability::RequestSnafu"]],["impl<__T0> UnwindSafe for FetchLeafSnafu<__T0>
    where\n __T0: UnwindSafe,
    ",1,["hotshot_query_service::availability::FetchLeafSnafu"]],["impl<__T0> UnwindSafe for FetchBlockSnafu<__T0>
    where\n __T0: UnwindSafe,
    ",1,["hotshot_query_service::availability::FetchBlockSnafu"]],["impl<__T0> UnwindSafe for FetchTransactionSnafu<__T0>
    where\n __T0: UnwindSafe,
    ",1,["hotshot_query_service::availability::FetchTransactionSnafu"]],["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::availability::CustomSnafu"]],["impl<D, U> UnwindSafe for ExtensibleDataSource<D, U>
    where\n D: UnwindSafe,\n U: UnwindSafe,
    ",1,["hotshot_query_service::data_source::extension::ExtensibleDataSource"]],["impl<Types, S, P> UnwindSafe for Builder<Types, S, P>
    where\n P: UnwindSafe,\n S: UnwindSafe,\n Types: UnwindSafe,
    ",1,["hotshot_query_service::data_source::fetching::Builder"]],["impl<Types, S, P> !UnwindSafe for FetchingDataSource<Types, S, P>",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["impl<'a, Types, S> !UnwindSafe for StorageReadGuard<'a, Types, S>",1,["hotshot_query_service::data_source::fetching::StorageReadGuard"]],["impl<'a, Types, S> !UnwindSafe for StorageWriteGuard<'a, Types, S>",1,["hotshot_query_service::data_source::fetching::StorageWriteGuard"]],["impl<Types> UnwindSafe for BlockRequest<Types>",1,["hotshot_query_service::data_source::fetching::BlockRequest"]],["impl !UnwindSafe for MetricsDataSource",1,["hotshot_query_service::data_source::metrics::MetricsDataSource"]],["impl<Types> UnwindSafe for FileSystemStorage<Types>
    where\n Types: UnwindSafe,\n <Types as NodeType>::BlockHeader: UnwindSafe,\n <Types as NodeType>::BlockPayload: UnwindSafe,\n <<Types as NodeType>::SignatureKey as SignatureKey>::QCType: UnwindSafe,\n <Types as NodeType>::SignatureKey: UnwindSafe,\n <Types as NodeType>::Time: UnwindSafe,\n <<Types as NodeType>::BlockPayload as QueryablePayload>::TransactionIndex: UnwindSafe,
    ",1,["hotshot_query_service::data_source::storage::fs::FileSystemStorage"]],["impl UnwindSafe for Storage",1,["hotshot_query_service::data_source::storage::no_storage::testing::Storage"]],["impl !UnwindSafe for DataSource",1,["hotshot_query_service::data_source::storage::no_storage::testing::DataSource"]],["impl UnwindSafe for NoStorage",1,["hotshot_query_service::data_source::storage::no_storage::NoStorage"]],["impl UnwindSafe for TmpDb",1,["hotshot_query_service::data_source::storage::sql::testing::TmpDb"]],["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<'a> !UnwindSafe for Transaction<'a>",1,["hotshot_query_service::data_source::storage::sql::Transaction"]],["impl UnwindSafe for Error",1,["hotshot_query_service::error::Error"]],["impl<Types> !UnwindSafe for AnyProvider<Types>",1,["hotshot_query_service::fetching::provider::any::AnyProvider"]],["impl !UnwindSafe for QueryServiceProvider",1,["hotshot_query_service::fetching::provider::query_service::QueryServiceProvider"]],["impl<P> !UnwindSafe for TestProvider<P>",1,["hotshot_query_service::fetching::provider::testing::TestProvider"]],["impl UnwindSafe for NoFetching",1,["hotshot_query_service::fetching::provider::NoFetching"]],["impl UnwindSafe for PayloadRequest",1,["hotshot_query_service::fetching::request::PayloadRequest"]],["impl UnwindSafe for LeafRequest",1,["hotshot_query_service::fetching::request::LeafRequest"]],["impl<T, C> !UnwindSafe for Fetcher<T, C>",1,["hotshot_query_service::fetching::Fetcher"]],["impl !UnwindSafe for MetricsError",1,["hotshot_query_service::metrics::MetricsError"]],["impl !UnwindSafe for PrometheusMetrics",1,["hotshot_query_service::metrics::PrometheusMetrics"]],["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 Label",1,["hotshot_query_service::metrics::Label"]],["impl UnwindSafe for SyncStatus",1,["hotshot_query_service::node::query_data::SyncStatus"]],["impl UnwindSafe for Options",1,["hotshot_query_service::node::Options"]],["impl UnwindSafe for Error",1,["hotshot_query_service::node::Error"]],["impl UnwindSafe for RequestSnafu",1,["hotshot_query_service::node::RequestSnafu"]],["impl UnwindSafe for QuerySnafu",1,["hotshot_query_service::node::QuerySnafu"]],["impl<__T0> UnwindSafe for QueryProposalsSnafu<__T0>
    where\n __T0: UnwindSafe,
    ",1,["hotshot_query_service::node::QueryProposalsSnafu"]],["impl UnwindSafe for InvalidSignatureKeySnafu",1,["hotshot_query_service::node::InvalidSignatureKeySnafu"]],["impl<__T0, __T1> UnwindSafe for CustomSnafu<__T0, __T1>
    where\n __T0: UnwindSafe,\n __T1: UnwindSafe,
    ",1,["hotshot_query_service::node::CustomSnafu"]],["impl UnwindSafe for MempoolQueryData",1,["hotshot_query_service::status::query_data::MempoolQueryData"]],["impl UnwindSafe for Options",1,["hotshot_query_service::status::Options"]],["impl UnwindSafe for Error",1,["hotshot_query_service::status::Error"]],["impl<D> !UnwindSafe for MockNetwork<D>",1,["hotshot_query_service::testing::consensus::MockNetwork"]],["impl UnwindSafe for MockTypes",1,["hotshot_query_service::testing::mocks::MockTypes"]],["impl UnwindSafe for MockNodeImpl",1,["hotshot_query_service::testing::mocks::MockNodeImpl"]],["impl UnwindSafe for QueryError",1,["hotshot_query_service::QueryError"]],["impl UnwindSafe for NotFoundSnafu",1,["hotshot_query_service::NotFoundSnafu"]],["impl UnwindSafe for MissingSnafu",1,["hotshot_query_service::MissingSnafu"]],["impl<__T0> UnwindSafe for Snafu<__T0>
    where\n __T0: UnwindSafe,
    ",1,["hotshot_query_service::Snafu"]],["impl UnwindSafe for Options",1,["hotshot_query_service::Options"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/hotshot_query_service/node/data_source/trait.UpdateNodeData.js b/trait.impl/hotshot_query_service/availability/query_data/trait.QueryablePayload.js similarity index 100% rename from trait.impl/hotshot_query_service/node/data_source/trait.UpdateNodeData.js rename to trait.impl/hotshot_query_service/availability/query_data/trait.QueryablePayload.js diff --git a/trait.impl/hotshot_query_service/testing/consensus/trait.DataSourceLifeCycle.js b/trait.impl/hotshot_query_service/testing/consensus/trait.DataSourceLifeCycle.js new file mode 100644 index 000000000..146940164 --- /dev/null +++ b/trait.impl/hotshot_query_service/testing/consensus/trait.DataSourceLifeCycle.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"hotshot_query_service":[] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/hotshot_query_service/testing/consensus/trait.TestableDataSource.js b/trait.impl/hotshot_query_service/testing/consensus/trait.TestableDataSource.js new file mode 100644 index 000000000..146940164 --- /dev/null +++ b/trait.impl/hotshot_query_service/testing/consensus/trait.TestableDataSource.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"hotshot_query_service":[] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/hotshot_types/traits/node_implementation/trait.NodeImplementation.js b/trait.impl/hotshot_types/traits/node_implementation/trait.NodeImplementation.js new file mode 100644 index 000000000..20fdac4b1 --- /dev/null +++ b/trait.impl/hotshot_types/traits/node_implementation/trait.NodeImplementation.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"hotshot_query_service":[["impl NodeImplementation<MockTypes> for MockNodeImpl"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/hotshot_types/traits/node_implementation/trait.NodeType.js b/trait.impl/hotshot_types/traits/node_implementation/trait.NodeType.js new file mode 100644 index 000000000..d2392f92d --- /dev/null +++ b/trait.impl/hotshot_types/traits/node_implementation/trait.NodeType.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"hotshot_query_service":[["impl NodeType for MockTypes"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/serde/de/trait.Deserialize.js b/trait.impl/serde/de/trait.Deserialize.js index eeb76b197..7234948b0 100644 --- a/trait.impl/serde/de/trait.Deserialize.js +++ b/trait.impl/serde/de/trait.Deserialize.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"hotshot_query_service":[["impl<'de, Types: NodeType> Deserialize<'de> for BlockSummaryQueryData<Types>"],["impl<'de, Types: NodeType> Deserialize<'de> for TransactionSummaryQueryData<Types>"],["impl<'de> Deserialize<'de> for Error"],["impl<'de, Types: NodeType> Deserialize<'de> for PayloadQueryData<Types>"],["impl<'de> Deserialize<'de> for Error"],["impl<'de, Types: NodeType> Deserialize<'de> for BlockQueryData<Types>"],["impl<'de> Deserialize<'de> for QueryError"],["impl<'de, Types: NodeType> Deserialize<'de> for LeafQueryData<Types>"],["impl<'de> Deserialize<'de> for Error"],["impl<'de> Deserialize<'de> for SyncStatus"],["impl<'de> Deserialize<'de> for MempoolQueryData"],["impl<'de> Deserialize<'de> for Error"],["impl<'de, Types: NodeType> Deserialize<'de> for TransactionQueryData<Types>
    where\n Payload<Types>: QueryablePayload,
    "]] +"hotshot_query_service":[["impl<'de, Types: NodeType> Deserialize<'de> for BlockSummaryQueryData<Types>"],["impl<'de> Deserialize<'de> for Error"],["impl<'de> Deserialize<'de> for MockTypes"],["impl<'de> Deserialize<'de> for MempoolQueryData"],["impl<'de, Types: NodeType> Deserialize<'de> for BlockQueryData<Types>"],["impl<'de, Types: NodeType> Deserialize<'de> for TransactionSummaryQueryData<Types>"],["impl<'de> Deserialize<'de> for Error"],["impl<'de, Types: NodeType> Deserialize<'de> for LeafQueryData<Types>"],["impl<'de, Types: NodeType> Deserialize<'de> for PayloadQueryData<Types>"],["impl<'de> Deserialize<'de> for QueryError"],["impl<'de> Deserialize<'de> for Error"],["impl<'de> Deserialize<'de> for SyncStatus"],["impl<'de> Deserialize<'de> for MockNodeImpl"],["impl<'de> Deserialize<'de> for Error"],["impl<'de, Types: NodeType> Deserialize<'de> for TransactionQueryData<Types>
    where\n Payload<Types>: QueryablePayload,
    "]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/serde/ser/trait.Serialize.js b/trait.impl/serde/ser/trait.Serialize.js index 07314c3b9..4d5823bd2 100644 --- a/trait.impl/serde/ser/trait.Serialize.js +++ b/trait.impl/serde/ser/trait.Serialize.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"hotshot_query_service":[["impl Serialize for Error"],["impl<Types: NodeType> Serialize for BlockSummaryQueryData<Types>"],["impl Serialize for SyncStatus"],["impl<Types: NodeType> Serialize for PayloadQueryData<Types>"],["impl<Types: NodeType> Serialize for TransactionQueryData<Types>
    where\n Payload<Types>: QueryablePayload,
    "],["impl Serialize for QueryError"],["impl Serialize for Error"],["impl<Types: NodeType> Serialize for BlockQueryData<Types>"],["impl<Types: NodeType> Serialize for TransactionSummaryQueryData<Types>"],["impl Serialize for Error"],["impl Serialize for MempoolQueryData"],["impl<Types: NodeType> Serialize for LeafQueryData<Types>"],["impl Serialize for Error"]] +"hotshot_query_service":[["impl Serialize for Error"],["impl<Types: NodeType> Serialize for BlockQueryData<Types>"],["impl<Types: NodeType> Serialize for TransactionQueryData<Types>
    where\n Payload<Types>: QueryablePayload,
    "],["impl Serialize for MempoolQueryData"],["impl<Types: NodeType> Serialize for TransactionSummaryQueryData<Types>"],["impl Serialize for MockTypes"],["impl Serialize for Error"],["impl<Types: NodeType> Serialize for PayloadQueryData<Types>"],["impl<Types: NodeType> Serialize for BlockSummaryQueryData<Types>"],["impl Serialize for Error"],["impl<Types: NodeType> Serialize for LeafQueryData<Types>"],["impl Serialize for SyncStatus"],["impl Serialize for Error"],["impl Serialize for QueryError"],["impl Serialize for MockNodeImpl"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/snafu/trait.ErrorCompat.js b/trait.impl/snafu/trait.ErrorCompat.js index 280cd1a47..93ff9e25b 100644 --- a/trait.impl/snafu/trait.ErrorCompat.js +++ b/trait.impl/snafu/trait.ErrorCompat.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"hotshot_query_service":[["impl ErrorCompat for Error"],["impl ErrorCompat for Error"],["impl ErrorCompat for Error"],["impl ErrorCompat for Error"],["impl<Types: NodeType> ErrorCompat for InconsistentLeafError<Types>"],["impl ErrorCompat for MetricsError"],["impl ErrorCompat for QueryError"]] +"hotshot_query_service":[["impl ErrorCompat for Error"],["impl<Types: NodeType> ErrorCompat for InconsistentLeafError<Types>"],["impl ErrorCompat for Error"],["impl ErrorCompat for Error"],["impl ErrorCompat for MetricsError"],["impl ErrorCompat for QueryError"],["impl ErrorCompat for Error"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/snafu/trait.IntoError.js b/trait.impl/snafu/trait.IntoError.js index 176846fac..76f91f1f6 100644 --- a/trait.impl/snafu/trait.IntoError.js +++ b/trait.impl/snafu/trait.IntoError.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"hotshot_query_service":[["impl<__T0, __T1> IntoError<Error> for CustomSnafu<__T0, __T1>
    where\n Error: Error + ErrorCompat,\n __T0: Into<String>,\n __T1: Into<StatusCode>,
    "],["impl IntoError<QueryError> for NotFoundSnafu
    where\n QueryError: Error + ErrorCompat,
    "],["impl<__T0> IntoError<Error> for QueryProposalsSnafu<__T0>
    where\n Error: Error + ErrorCompat,\n __T0: Into<String>,
    "],["impl<__T0> IntoError<Error> for FetchLeafSnafu<__T0>
    where\n Error: Error + ErrorCompat,\n __T0: Into<String>,
    "],["impl IntoError<Error> for InvalidSignatureKeySnafu
    where\n Error: Error + ErrorCompat,
    "],["impl<__T0> IntoError<QueryError> for Snafu<__T0>
    where\n QueryError: Error + ErrorCompat,\n __T0: Into<String>,
    "],["impl IntoError<Error> for QuerySnafu
    where\n Error: Error + ErrorCompat,
    "],["impl<__T0> IntoError<Error> for FetchTransactionSnafu<__T0>
    where\n Error: Error + ErrorCompat,\n __T0: Into<String>,
    "],["impl<__T0, __T1> IntoError<Error> for CustomSnafu<__T0, __T1>
    where\n Error: Error + ErrorCompat,\n __T0: Into<String>,\n __T1: Into<StatusCode>,
    "],["impl IntoError<Error> for SyncStatusSnafu
    where\n Error: Error + ErrorCompat,
    "],["impl<__T0, __T1> IntoError<Error> for InvalidTransactionIndexSnafu<__T0, __T1>
    where\n Error: Error + ErrorCompat,\n __T0: Into<u64>,\n __T1: Into<u64>,
    "],["impl IntoError<Error> for RequestSnafu
    where\n Error: Error + ErrorCompat,
    "],["impl IntoError<QueryError> for MissingSnafu
    where\n QueryError: Error + ErrorCompat,
    "],["impl<__T0> IntoError<Error> for FetchBlockSnafu<__T0>
    where\n Error: Error + ErrorCompat,\n __T0: Into<String>,
    "],["impl IntoError<Error> for RequestSnafu
    where\n Error: Error + ErrorCompat,
    "]] +"hotshot_query_service":[["impl IntoError<Error> for RequestSnafu
    where\n Error: Error + ErrorCompat,
    "],["impl IntoError<QueryError> for NotFoundSnafu
    where\n QueryError: Error + ErrorCompat,
    "],["impl<__T0> IntoError<QueryError> for Snafu<__T0>
    where\n QueryError: Error + ErrorCompat,\n __T0: Into<String>,
    "],["impl<__T0, __T1> IntoError<Error> for InvalidTransactionIndexSnafu<__T0, __T1>
    where\n Error: Error + ErrorCompat,\n __T0: Into<u64>,\n __T1: Into<u64>,
    "],["impl IntoError<QueryError> for MissingSnafu
    where\n QueryError: Error + ErrorCompat,
    "],["impl<__T0, __T1> IntoError<Error> for CustomSnafu<__T0, __T1>
    where\n Error: Error + ErrorCompat,\n __T0: Into<String>,\n __T1: Into<StatusCode>,
    "],["impl<__T0> IntoError<Error> for FetchTransactionSnafu<__T0>
    where\n Error: Error + ErrorCompat,\n __T0: Into<String>,
    "],["impl<__T0> IntoError<Error> for FetchLeafSnafu<__T0>
    where\n Error: Error + ErrorCompat,\n __T0: Into<String>,
    "],["impl<__T0, __T1> IntoError<Error> for CustomSnafu<__T0, __T1>
    where\n Error: Error + ErrorCompat,\n __T0: Into<String>,\n __T1: Into<StatusCode>,
    "],["impl IntoError<Error> for InvalidSignatureKeySnafu
    where\n Error: Error + ErrorCompat,
    "],["impl IntoError<Error> for RequestSnafu
    where\n Error: Error + ErrorCompat,
    "],["impl IntoError<Error> for QuerySnafu
    where\n Error: Error + ErrorCompat,
    "],["impl<__T0> IntoError<Error> for QueryProposalsSnafu<__T0>
    where\n Error: Error + ErrorCompat,\n __T0: Into<String>,
    "],["impl<__T0> IntoError<Error> for FetchBlockSnafu<__T0>
    where\n Error: Error + ErrorCompat,\n __T0: Into<String>,
    "]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/type.impl/hotshot/traits/election/static_committee/struct.GeneralStaticCommittee.js b/type.impl/hotshot/traits/election/static_committee/struct.GeneralStaticCommittee.js new file mode 100644 index 000000000..9ec5ba847 --- /dev/null +++ b/type.impl/hotshot/traits/election/static_committee/struct.GeneralStaticCommittee.js @@ -0,0 +1,3 @@ +(function() {var type_impls = { +"hotshot_query_service":[["
    §

    impl<T, PUBKEY> GeneralStaticCommittee<T, PUBKEY>
    where\n PUBKEY: SignatureKey,

    pub fn new(\n _nodes: &[PUBKEY],\n nodes_with_stake: Vec<<PUBKEY as SignatureKey>::StakeTableEntry>\n) -> GeneralStaticCommittee<T, PUBKEY>

    Creates a new dummy elector

    \n
    ",0,"hotshot_query_service::testing::mocks::MockMembership"],["
    §

    impl<T, PUBKEY> PartialEq for GeneralStaticCommittee<T, PUBKEY>
    where\n T: PartialEq,\n PUBKEY: PartialEq + SignatureKey,\n <PUBKEY as SignatureKey>::StakeTableEntry: PartialEq,

    §

    fn eq(&self, other: &GeneralStaticCommittee<T, PUBKEY>) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    1.0.0 · source§

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

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq","hotshot_query_service::testing::mocks::MockMembership"],["
    §

    impl<T, PUBKEY> Hash for GeneralStaticCommittee<T, PUBKEY>
    where\n T: Hash,\n PUBKEY: Hash + SignatureKey,\n <PUBKEY as SignatureKey>::StakeTableEntry: Hash,

    §

    fn hash<__H>(&self, state: &mut __H)
    where\n __H: Hasher,

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

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

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","hotshot_query_service::testing::mocks::MockMembership"],["
    §

    impl<T, PUBKEY> Eq for GeneralStaticCommittee<T, PUBKEY>
    where\n T: Eq,\n PUBKEY: Eq + SignatureKey,\n <PUBKEY as SignatureKey>::StakeTableEntry: Eq,

    ","Eq","hotshot_query_service::testing::mocks::MockMembership"],["
    §

    impl<T, PUBKEY> Clone for GeneralStaticCommittee<T, PUBKEY>
    where\n T: Clone,\n PUBKEY: Clone + SignatureKey,\n <PUBKEY as SignatureKey>::StakeTableEntry: Clone,

    §

    fn clone(&self) -> GeneralStaticCommittee<T, PUBKEY>

    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::testing::mocks::MockMembership"],["
    §

    impl<T, PUBKEY> Debug for GeneralStaticCommittee<T, PUBKEY>
    where\n T: Debug,\n PUBKEY: Debug + SignatureKey,\n <PUBKEY as SignatureKey>::StakeTableEntry: Debug,

    §

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

    Formats the value using the given formatter. Read more
    ","Debug","hotshot_query_service::testing::mocks::MockMembership"],["
    §

    impl<T, PUBKEY> StructuralPartialEq for GeneralStaticCommittee<T, PUBKEY>
    where\n PUBKEY: SignatureKey,

    ","StructuralPartialEq","hotshot_query_service::testing::mocks::MockMembership"],["
    §

    impl<TYPES, PUBKEY> Membership<TYPES> for GeneralStaticCommittee<TYPES, PUBKEY>
    where\n PUBKEY: SignatureKey + 'static,\n TYPES: NodeType<SignatureKey = PUBKEY, ElectionConfigType = StaticElectionConfig>,

    §

    fn get_committee_qc_stake_table(\n &self\n) -> Vec<<PUBKEY as SignatureKey>::StakeTableEntry>

    Clone the public key and corresponding stake table for current elected committee

    \n
    §

    fn get_leader(&self, view_number: <TYPES as NodeType>::Time) -> PUBKEY

    Index the vector of public keys with the current view number

    \n
    §

    fn has_stake(&self, pub_key: &PUBKEY) -> bool

    Check if a key has stake
    §

    fn get_stake(\n &self,\n pub_key: &<TYPES as NodeType>::SignatureKey\n) -> Option<<<TYPES as NodeType>::SignatureKey as SignatureKey>::StakeTableEntry>

    Get the stake table entry for a public key, returns None if the\nkey is not in the table
    §

    fn default_election_config(\n num_nodes: u64\n) -> <TYPES as NodeType>::ElectionConfigType

    generate a default election configuration
    §

    fn create_election(\n keys_qc: Vec<<PUBKEY as SignatureKey>::StakeTableEntry>,\n config: <TYPES as NodeType>::ElectionConfigType\n) -> GeneralStaticCommittee<TYPES, PUBKEY>

    create an election\nTODO may want to move this to a testableelection trait
    §

    fn total_nodes(&self) -> usize

    Returns the number of total nodes in the committee
    §

    fn success_threshold(&self) -> NonZeroU64

    Returns the threshold for a specific Membership implementation
    §

    fn failure_threshold(&self) -> NonZeroU64

    Returns the threshold for a specific Membership implementation
    §

    fn upgrade_threshold(&self) -> NonZeroU64

    Returns the threshold required to upgrade the network protocol
    §

    fn get_committee(\n &self,\n _view_number: <TYPES as NodeType>::Time\n) -> BTreeSet<<TYPES as NodeType>::SignatureKey>

    The members of the committee for view view_number.
    ","Membership","hotshot_query_service::testing::mocks::MockMembership"],["
    §

    impl<T, PUBKEY> StructuralEq for GeneralStaticCommittee<T, PUBKEY>
    where\n PUBKEY: SignatureKey,

    ","StructuralEq","hotshot_query_service::testing::mocks::MockMembership"]] +};if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/type.impl/hotshot/traits/networking/memory_network/struct.MemoryNetwork.js b/type.impl/hotshot/traits/networking/memory_network/struct.MemoryNetwork.js new file mode 100644 index 000000000..35078550a --- /dev/null +++ b/type.impl/hotshot/traits/networking/memory_network/struct.MemoryNetwork.js @@ -0,0 +1,3 @@ +(function() {var type_impls = { +"hotshot_query_service":[["
    §

    impl<M, K> MemoryNetwork<M, K>
    where\n M: NetworkMsg,\n K: SignatureKey,

    pub fn new(\n pub_key: K,\n metrics: NetworkingMetricsValue,\n master_map: Arc<MasterMap<M, K>>,\n reliability_config: Option<Box<dyn NetworkReliability>>\n) -> MemoryNetwork<M, K>

    Creates a new MemoryNetwork and hooks it up to the group through the provided MasterMap

    \n
    ",0,"hotshot_query_service::testing::mocks::MockNetwork"],["
    §

    impl<M, K> ConnectedNetwork<M, K> for MemoryNetwork<M, K>
    where\n M: NetworkMsg,\n K: SignatureKey + 'static,

    §

    fn wait_for_ready<'life0, 'async_trait>(\n &'life0 self\n) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
    where\n 'life0: 'async_trait,\n MemoryNetwork<M, K>: 'async_trait,

    Blocks until the network is successfully initialized
    §

    fn pause(&self)

    Pauses the underlying network
    §

    fn resume(&self)

    Resumes the underlying network
    §

    fn is_ready<'life0, 'async_trait>(\n &'life0 self\n) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
    where\n 'life0: 'async_trait,\n MemoryNetwork<M, K>: 'async_trait,

    checks if the network is ready\nnonblocking
    §

    fn shut_down<'a, 'b>(\n &'a self\n) -> Pin<Box<dyn Future<Output = ()> + Send + Sync + 'b>>
    where\n 'a: 'b,\n MemoryNetwork<M, K>: 'b,

    Blocks until the network is shut down\nthen returns true
    §

    fn broadcast_message<'life0, 'async_trait>(\n &'life0 self,\n message: M,\n recipients: BTreeSet<K>\n) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>>
    where\n 'life0: 'async_trait,\n MemoryNetwork<M, K>: 'async_trait,

    broadcast message to some subset of nodes\nblocking
    §

    fn direct_message<'life0, 'async_trait>(\n &'life0 self,\n message: M,\n recipient: K\n) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>>
    where\n 'life0: 'async_trait,\n MemoryNetwork<M, K>: 'async_trait,

    Sends a direct message to a specific node\nblocking
    §

    fn recv_msgs<'a, 'b>(\n &'a self,\n transmit_type: TransmitType\n) -> Pin<Box<dyn Future<Output = Result<Vec<M>, NetworkError>> + Send + Sync + 'b>>
    where\n 'a: 'b,\n MemoryNetwork<M, K>: 'b,

    Moves out the entire queue of received messages of ’transmit_type` Read more
    §

    fn queue_node_lookup<'life0, 'async_trait>(\n &'life0 self,\n _view_number: ViewNumber,\n _pk: K\n) -> Pin<Box<dyn Future<Output = Result<(), SendError<Option<(ViewNumber, K)>>>> + Send + 'async_trait>>
    where\n 'life0: 'async_trait,\n Self: 'async_trait,

    queues lookup of a node
    §

    fn inject_consensus_info<'life0, 'async_trait>(\n &'life0 self,\n _event: ConsensusIntentEvent<K>\n) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
    where\n 'life0: 'async_trait,\n Self: 'async_trait,

    Injects consensus data such as view number into the networking implementation\nblocking\nIdeally we would pass in the Time type, but that requires making the entire trait generic over NodeType
    ","ConnectedNetwork","hotshot_query_service::testing::mocks::MockNetwork"],["
    §

    impl<M, K> Clone for MemoryNetwork<M, K>
    where\n M: Clone + NetworkMsg,\n K: Clone + SignatureKey,

    §

    fn clone(&self) -> MemoryNetwork<M, K>

    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::testing::mocks::MockNetwork"],["
    §

    impl<M, K> Debug for MemoryNetwork<M, K>
    where\n M: NetworkMsg,\n K: SignatureKey,

    §

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

    Formats the value using the given formatter. Read more
    ","Debug","hotshot_query_service::testing::mocks::MockNetwork"],["
    §

    impl<TYPES> TestableNetworkingImplementation<TYPES> for MemoryNetwork<Message<TYPES>, <TYPES as NodeType>::SignatureKey>
    where\n TYPES: NodeType,

    §

    fn generator(\n _expected_node_count: usize,\n _num_bootstrap: usize,\n _network_id: usize,\n _da_committee_size: usize,\n _is_da: bool,\n reliability_config: Option<Box<dyn NetworkReliability>>\n) -> Box<dyn Fn(u64) -> (Arc<MemoryNetwork<Message<TYPES>, <TYPES as NodeType>::SignatureKey>>, Arc<MemoryNetwork<Message<TYPES>, <TYPES as NodeType>::SignatureKey>>)>

    generates a network given an expected node count
    §

    fn in_flight_message_count(&self) -> Option<usize>

    Get the number of messages in-flight. Read more
    ","TestableNetworkingImplementation","hotshot_query_service::testing::mocks::MockNetwork"]] +};if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/type.impl/hotshot_example_types/block_types/struct.TestBlockHeader.js b/type.impl/hotshot_example_types/block_types/struct.TestBlockHeader.js new file mode 100644 index 000000000..28ad2c84b --- /dev/null +++ b/type.impl/hotshot_example_types/block_types/struct.TestBlockHeader.js @@ -0,0 +1,3 @@ +(function() {var type_impls = { +"hotshot_query_service":[["
    §

    impl Committable for TestBlockHeader

    §

    fn commit(&self) -> Commitment<TestBlockHeader>

    Create a binding commitment to self.
    §

    fn tag() -> String

    Tag that should be used when serializing commitments to this type. Read more
    ","Committable","hotshot_query_service::testing::mocks::MockHeader"],["
    §

    impl Clone for TestBlockHeader

    §

    fn clone(&self) -> TestBlockHeader

    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::testing::mocks::MockHeader"],["
    §

    impl BlockHeader for TestBlockHeader

    §

    type Payload = TestBlockPayload

    Block payload associated with the commitment.
    §

    type State = TestValidatedState

    Validated state.
    §

    fn new(\n _parent_state: &<TestBlockHeader as BlockHeader>::State,\n _instance_state: &<<TestBlockHeader as BlockHeader>::State as ValidatedState>::Instance,\n parent_header: &TestBlockHeader,\n payload_commitment: <Advz<Bls12<Config>, CoreWrapper<CtVariableCoreWrapper<Sha256VarCore, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, OidSha256>>> as VidScheme>::Commit,\n _metadata: <<TestBlockHeader as BlockHeader>::Payload as BlockPayload>::Metadata\n) -> TestBlockHeader

    Build a header with the payload commitment, metadata, instance-level state, parent header,\nand parent state.
    §

    fn genesis(\n _instance_state: &<<TestBlockHeader as BlockHeader>::State as ValidatedState>::Instance\n) -> (TestBlockHeader, <TestBlockHeader as BlockHeader>::Payload, <<TestBlockHeader as BlockHeader>::Payload as BlockPayload>::Metadata)

    Build the genesis header, payload, and metadata.
    §

    fn block_number(&self) -> u64

    Get the block number.
    §

    fn payload_commitment(\n &self\n) -> <Advz<Bls12<Config>, CoreWrapper<CtVariableCoreWrapper<Sha256VarCore, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, OidSha256>>> as VidScheme>::Commit

    Get the payload commitment.
    §

    fn metadata(\n &self\n) -> &<<TestBlockHeader as BlockHeader>::Payload as BlockPayload>::Metadata

    Get the metadata.
    ","BlockHeader","hotshot_query_service::testing::mocks::MockHeader"],["
    §

    impl Hash for TestBlockHeader

    §

    fn hash<__H>(&self, state: &mut __H)
    where\n __H: Hasher,

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

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

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","hotshot_query_service::testing::mocks::MockHeader"],["
    §

    impl<'de> Deserialize<'de> for TestBlockHeader

    §

    fn deserialize<__D>(\n __deserializer: __D\n) -> Result<TestBlockHeader, <__D as Deserializer<'de>>::Error>
    where\n __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","hotshot_query_service::testing::mocks::MockHeader"],["
    §

    impl Debug for TestBlockHeader

    §

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

    Formats the value using the given formatter. Read more
    ","Debug","hotshot_query_service::testing::mocks::MockHeader"],["
    §

    impl Serialize for TestBlockHeader

    §

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

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","hotshot_query_service::testing::mocks::MockHeader"],["
    §

    impl StructuralEq for TestBlockHeader

    ","StructuralEq","hotshot_query_service::testing::mocks::MockHeader"],["
    §

    impl StructuralPartialEq for TestBlockHeader

    ","StructuralPartialEq","hotshot_query_service::testing::mocks::MockHeader"],["
    §

    impl PartialEq for TestBlockHeader

    §

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

    This method tests for self and other values to be equal, and is used\nby ==.
    1.0.0 · source§

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

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq","hotshot_query_service::testing::mocks::MockHeader"],["
    §

    impl Eq for TestBlockHeader

    ","Eq","hotshot_query_service::testing::mocks::MockHeader"]] +};if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/type.impl/hotshot_example_types/block_types/struct.TestBlockPayload.js b/type.impl/hotshot_example_types/block_types/struct.TestBlockPayload.js new file mode 100644 index 000000000..a3ff74fcf --- /dev/null +++ b/type.impl/hotshot_example_types/block_types/struct.TestBlockPayload.js @@ -0,0 +1,3 @@ +(function() {var type_impls = { +"hotshot_query_service":[["
    §

    impl TestBlockPayload

    pub fn genesis() -> TestBlockPayload

    Create a genesis block payload with bytes vec![0], to be used for\nconsensus task initiation.

    \n
    Panics
    \n

    If the VidScheme construction fails.

    \n
    ",0,"hotshot_query_service::testing::mocks::MockPayload"],["
    §

    impl Clone for TestBlockPayload

    §

    fn clone(&self) -> TestBlockPayload

    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::testing::mocks::MockPayload"],["
    §

    impl Hash for TestBlockPayload

    §

    fn hash<__H>(&self, state: &mut __H)
    where\n __H: Hasher,

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

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

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","hotshot_query_service::testing::mocks::MockPayload"],["
    §

    impl TestableBlock for TestBlockPayload

    §

    fn genesis() -> TestBlockPayload

    generate a genesis block
    §

    fn txn_count(&self) -> u64

    the number of transactions in this block
    ","TestableBlock","hotshot_query_service::testing::mocks::MockPayload"],["
    §

    impl<'de> Deserialize<'de> for TestBlockPayload

    §

    fn deserialize<__D>(\n __deserializer: __D\n) -> Result<TestBlockPayload, <__D as Deserializer<'de>>::Error>
    where\n __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","hotshot_query_service::testing::mocks::MockPayload"],["
    §

    impl Debug for TestBlockPayload

    §

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

    Formats the value using the given formatter. Read more
    ","Debug","hotshot_query_service::testing::mocks::MockPayload"],["
    §

    impl Serialize for TestBlockPayload

    §

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

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","hotshot_query_service::testing::mocks::MockPayload"],["
    §

    impl StructuralEq for TestBlockPayload

    ","StructuralEq","hotshot_query_service::testing::mocks::MockPayload"],["
    §

    impl BlockPayload for TestBlockPayload

    §

    type Error = BlockError

    The error type for this type of block
    §

    type Transaction = TestTransaction

    The type of the transitions we are applying
    §

    type Metadata = ()

    Data created during block building which feeds into the block header
    §

    type Encode<'a> = <Vec<u8> as IntoIterator>::IntoIter

    Encoded payload.
    §

    fn from_transactions(\n transactions: impl IntoIterator<Item = <TestBlockPayload as BlockPayload>::Transaction>\n) -> Result<(TestBlockPayload, <TestBlockPayload as BlockPayload>::Metadata), <TestBlockPayload as BlockPayload>::Error>

    Build a payload and associated metadata with the transactions. Read more
    §

    fn from_bytes<E>(\n encoded_transactions: E,\n _metadata: &<TestBlockPayload as BlockPayload>::Metadata\n) -> TestBlockPayload
    where\n E: Iterator<Item = u8>,

    Build a payload with the encoded transaction bytes, metadata,\nand the associated number of VID storage nodes Read more
    §

    fn genesis() -> (TestBlockPayload, <TestBlockPayload as BlockPayload>::Metadata)

    Build the genesis payload and metadata.
    §

    fn encode(\n &self\n) -> Result<<TestBlockPayload as BlockPayload>::Encode<'_>, <TestBlockPayload as BlockPayload>::Error>

    Encode the payload Read more
    §

    fn transaction_commitments(\n &self,\n _metadata: &<TestBlockPayload as BlockPayload>::Metadata\n) -> Vec<Commitment<<TestBlockPayload as BlockPayload>::Transaction>>

    List of transaction commitments.
    §

    fn builder_commitment(\n &self,\n _metadata: &<TestBlockPayload as BlockPayload>::Metadata\n) -> BuilderCommitment

    Generate commitment that builders use to sign block options.
    ","BlockPayload","hotshot_query_service::testing::mocks::MockPayload"],["
    §

    impl Display for TestBlockPayload

    §

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

    Formats the value using the given formatter. Read more
    ","Display","hotshot_query_service::testing::mocks::MockPayload"],["
    §

    impl StructuralPartialEq for TestBlockPayload

    ","StructuralPartialEq","hotshot_query_service::testing::mocks::MockPayload"],["
    §

    impl PartialEq for TestBlockPayload

    §

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

    This method tests for self and other values to be equal, and is used\nby ==.
    1.0.0 · source§

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

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq","hotshot_query_service::testing::mocks::MockPayload"],["
    §

    impl Eq for TestBlockPayload

    ","Eq","hotshot_query_service::testing::mocks::MockPayload"]] +};if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/type.impl/hotshot_example_types/block_types/struct.TestTransaction.js b/type.impl/hotshot_example_types/block_types/struct.TestTransaction.js new file mode 100644 index 000000000..561d193d9 --- /dev/null +++ b/type.impl/hotshot_example_types/block_types/struct.TestTransaction.js @@ -0,0 +1,3 @@ +(function() {var type_impls = { +"hotshot_query_service":[["
    §

    impl TestTransaction

    pub fn encode(transactions: Vec<TestTransaction>) -> Result<Vec<u8>, BlockError>

    Encode a list of transactions into bytes.

    \n
    Errors
    \n

    If the transaction length conversion fails.

    \n
    ",0,"hotshot_query_service::testing::mocks::MockTransaction"],["
    §

    impl Committable for TestTransaction

    §

    fn commit(&self) -> Commitment<TestTransaction>

    Create a binding commitment to self.
    §

    fn tag() -> String

    Tag that should be used when serializing commitments to this type. Read more
    ","Committable","hotshot_query_service::testing::mocks::MockTransaction"],["
    §

    impl Transaction for TestTransaction

    ","Transaction","hotshot_query_service::testing::mocks::MockTransaction"],["
    §

    impl Clone for TestTransaction

    §

    fn clone(&self) -> TestTransaction

    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::testing::mocks::MockTransaction"],["
    §

    impl Hash for TestTransaction

    §

    fn hash<__H>(&self, state: &mut __H)
    where\n __H: Hasher,

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

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

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","hotshot_query_service::testing::mocks::MockTransaction"],["
    §

    impl<'de> Deserialize<'de> for TestTransaction

    §

    fn deserialize<__D>(\n __deserializer: __D\n) -> Result<TestTransaction, <__D as Deserializer<'de>>::Error>
    where\n __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","hotshot_query_service::testing::mocks::MockTransaction"],["
    §

    impl Debug for TestTransaction

    §

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

    Formats the value using the given formatter. Read more
    ","Debug","hotshot_query_service::testing::mocks::MockTransaction"],["
    §

    impl Serialize for TestTransaction

    §

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

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","hotshot_query_service::testing::mocks::MockTransaction"],["
    §

    impl StructuralEq for TestTransaction

    ","StructuralEq","hotshot_query_service::testing::mocks::MockTransaction"],["
    §

    impl Default for TestTransaction

    §

    fn default() -> TestTransaction

    Returns the “default value” for a type. Read more
    ","Default","hotshot_query_service::testing::mocks::MockTransaction"],["
    §

    impl StructuralPartialEq for TestTransaction

    ","StructuralPartialEq","hotshot_query_service::testing::mocks::MockTransaction"],["
    §

    impl PartialEq for TestTransaction

    §

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

    This method tests for self and other values to be equal, and is used\nby ==.
    1.0.0 · source§

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

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq","hotshot_query_service::testing::mocks::MockTransaction"],["
    §

    impl Eq for TestTransaction

    ","Eq","hotshot_query_service::testing::mocks::MockTransaction"]] +};if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ 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 e8e0b4a02..67782a923 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,3 +1,3 @@ (function() {var type_impls = { -"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_retry_delay(self, retry_delay: Duration) -> Self

    Set the maximum delay between retries of 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_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 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
    ",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,\n S: NodeDataSource<Types> + UpdateNodeData<Types> + AvailabilityStorage<Types> + VersionedDataSource + 'static,\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"]] +"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_retry_delay(self, retry_delay: Duration) -> Self

    Set the maximum delay between retries of 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_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 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
    ",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,\n S: NodeDataSource<Types> + AvailabilityStorage<Types> + 'static,\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;}})() \ 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 63f730a55..b4f16b3ad 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,3 +1,3 @@ (function() {var type_impls = { -"hotshot_query_service":[["
    source§

    impl<Types, S, P> FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n Payload<Types>: QueryablePayload,\n S: NodeDataSource<Types> + UpdateNodeData<Types> + AvailabilityStorage<Types> + VersionedDataSource + 'static,\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> FetchingDataSource<Types, S, P>
    where\n Types: NodeType,

    source

    pub async fn storage(&self) -> StorageReadGuard<'_, Types, S>

    Obtain direct, read-only access to the underlying local storage.

    \n
    source

    pub async fn storage_mut(&self) -> StorageWriteGuard<'_, Types, S>

    Obtain direct, mutable access the underlying local storage.

    \n
    ",0,"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: NodeDataSource<Types> + Send + Sync,\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 metrics(&self) -> &PrometheusMetrics

    source§

    fn consensus_metrics(&self) -> QueryResult<PrometheusMetrics>

    source§

    fn mempool_info<'life0, 'async_trait>(\n &'life0 self\n) -> Pin<Box<dyn Future<Output = QueryResult<MempoolQueryData>> + 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> UpdateNodeData<Types> for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n S: UpdateNodeData<Types> + Send + Sync,\n P: Send + Sync,

    §

    type Error = <S as UpdateNodeData<Types>>::Error

    source§

    fn insert_leaf<'life0, 'async_trait>(\n &'life0 mut self,\n leaf: LeafQueryData<Types>\n) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    ","UpdateNodeData","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,\n S: UpdateAvailabilityData<Types> + Send + Sync,\n P: Send + Sync,

    §

    type Error = <S as UpdateAvailabilityData<Types>>::Error

    source§

    fn insert_leaf<'life0, 'async_trait>(\n &'life0 mut self,\n leaf: LeafQueryData<Types>\n) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn insert_block<'life0, 'async_trait>(\n &'life0 mut self,\n block: BlockQueryData<Types>\n) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    ","UpdateAvailabilityData","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> AvailabilityDataSource<Types> for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n Payload<Types>: QueryablePayload,\n S: AvailabilityStorage<Types> + 'static,\n P: AvailabilityProvider<Types>,

    §

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

    §

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

    §

    type PayloadRange<R> = Pin<Box<dyn Stream<Item = Fetch<PayloadQueryData<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_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_block_with_transaction<'life0, 'async_trait>(\n &'life0 self,\n hash: TransactionHash<Types>\n) -> Pin<Box<dyn Future<Output = Fetch<(BlockQueryData<Types>, TransactionIndex<Types>)>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    Returns the block containing a transaction with the given hash and the transaction’s\nposition in the block.
    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,

    ","AvailabilityDataSource","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: NodeDataSource<Types> + Send + Sync,\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 get_proposals<'life0, 'life1, 'async_trait>(\n &'life0 self,\n proposer: &'life1 SignatureKey<Types>,\n limit: Option<usize>\n) -> Pin<Box<dyn Future<Output = QueryResult<Vec<LeafQueryData<Types>>>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,\n 'life1: 'async_trait,

    source§

    fn count_proposals<'life0, 'life1, 'async_trait>(\n &'life0 self,\n proposer: &'life1 SignatureKey<Types>\n) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,\n 'life1: '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,

    ","NodeDataSource","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> VersionedDataSource for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n S: VersionedDataSource + Send + Sync,\n P: Send + Sync,

    §

    type Error = <S as VersionedDataSource>::Error

    source§

    fn commit<'life0, 'async_trait>(\n &'life0 mut self\n) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    Atomically commit to all outstanding modifications to the data. Read more
    source§

    fn revert<'life0, 'async_trait>(\n &'life0 mut self\n) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    Erase all oustanding modifications to the data. Read more
    ","VersionedDataSource","hotshot_query_service::data_source::fs::FileSystemDataSource","hotshot_query_service::data_source::sql::SqlDataSource"]] +"hotshot_query_service":[["
    source§

    impl<Types, S, P> FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n Payload<Types>: QueryablePayload,\n S: NodeDataSource<Types> + AvailabilityStorage<Types> + 'static,\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> FetchingDataSource<Types, S, P>
    where\n Types: NodeType,

    source

    pub async fn storage(&self) -> StorageReadGuard<'_, Types, S>

    Obtain direct, read-only access to the underlying local storage.

    \n
    source

    pub async fn storage_mut(&self) -> StorageWriteGuard<'_, Types, S>

    Obtain direct, mutable access the underlying local storage.

    \n
    ",0,"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> NodeDataSource<Types> for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n S: NodeDataSource<Types> + Send + Sync,\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 get_proposals<'life0, 'life1, 'async_trait>(\n &'life0 self,\n proposer: &'life1 SignatureKey<Types>,\n limit: Option<usize>\n) -> Pin<Box<dyn Future<Output = QueryResult<Vec<LeafQueryData<Types>>>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,\n 'life1: 'async_trait,

    source§

    fn count_proposals<'life0, 'life1, 'async_trait>(\n &'life0 self,\n proposer: &'life1 SignatureKey<Types>\n) -> Pin<Box<dyn Future<Output = QueryResult<usize>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,\n 'life1: '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: '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: '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,

    ","NodeDataSource","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,

    §

    type Error = <S as VersionedDataSource>::Error

    source§

    fn commit<'life0, 'async_trait>(\n &'life0 mut self\n) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    Atomically commit to all outstanding modifications to the data. Read more
    source§

    fn revert<'life0, 'async_trait>(\n &'life0 mut self\n) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    Erase all oustanding modifications to the data. Read more
    ","VersionedDataSource","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> AvailabilityDataSource<Types> for FetchingDataSource<Types, S, P>
    where\n Types: NodeType,\n Payload<Types>: QueryablePayload,\n S: AvailabilityStorage<Types> + 'static,\n P: AvailabilityProvider<Types>,

    §

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

    §

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

    §

    type PayloadRange<R> = Pin<Box<dyn Stream<Item = Fetch<PayloadQueryData<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_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_block_with_transaction<'life0, 'async_trait>(\n &'life0 self,\n hash: TransactionHash<Types>\n) -> Pin<Box<dyn Future<Output = Fetch<(BlockQueryData<Types>, TransactionIndex<Types>)>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    Returns the block containing a transaction with the given hash and the transaction’s\nposition in the block.
    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,

    ","AvailabilityDataSource","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: NodeDataSource<Types> + Send + Sync,\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 metrics(&self) -> &PrometheusMetrics

    source§

    fn consensus_metrics(&self) -> QueryResult<PrometheusMetrics>

    source§

    fn mempool_info<'life0, 'async_trait>(\n &'life0 self\n) -> Pin<Box<dyn Future<Output = QueryResult<MempoolQueryData>> + 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,\n S: UpdateAvailabilityData<Types> + Send + Sync,\n P: Send + Sync,

    §

    type Error = <S as UpdateAvailabilityData<Types>>::Error

    source§

    fn insert_leaf<'life0, 'async_trait>(\n &'life0 mut self,\n leaf: LeafQueryData<Types>\n) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn insert_block<'life0, 'async_trait>(\n &'life0 mut self,\n block: BlockQueryData<Types>\n) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    ","UpdateAvailabilityData","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;}})() \ No newline at end of file diff --git a/type.impl/hotshot_query_service/data_source/type.FileSystemDataSource.js b/type.impl/hotshot_query_service/data_source/type.FileSystemDataSource.js new file mode 100644 index 000000000..935ed8a90 --- /dev/null +++ b/type.impl/hotshot_query_service/data_source/type.FileSystemDataSource.js @@ -0,0 +1,3 @@ +(function() {var type_impls = { +"hotshot_query_service":[["
    source§

    impl<Types: NodeType, P> FileSystemDataSource<Types, P>
    where\n Payload<Types>: QueryablePayload,\n P: AvailabilityProvider<Types>,

    source

    pub async fn create(path: &Path, provider: P) -> Result<Self>

    Create a new FileSystemDataSource with storage at path.

    \n

    If there is already data at path, it will be archived.

    \n

    The FileSystemDataSource will manage its own persistence synchronization.

    \n
    source

    pub async fn open(path: &Path, provider: P) -> Result<Self>

    Open an existing FileSystemDataSource from storage at path.

    \n

    If there is no data at path, a new store will be created.

    \n

    The FileSystemDataSource will manage its own persistence synchronization.

    \n
    source

    pub async fn create_with_store(\n loader: &mut AtomicStoreLoader,\n provider: P\n) -> Result<Self>

    Create a new FileSystemDataSource using a persistent storage loader.

    \n

    If there is existing data corresponding to the FileSystemDataSource data structures, it\nwill be archived.

    \n

    The FileSystemDataSource will register its persistent data structures with loader. The\ncaller is responsible for creating an AtomicStore from loader\nand managing synchronization of the store.

    \n
    source

    pub async fn open_with_store(\n loader: &mut AtomicStoreLoader,\n provider: P\n) -> Result<Self>

    Open an existing FileSystemDataSource using a persistent storage loader.

    \n

    If there is no existing data corresponding to the FileSystemDataSource data structures, a\nnew store will be created.

    \n

    The FileSystemDataSource will register its persistent data structures with loader. The\ncaller is responsible for creating an AtomicStore from loader\nand managing synchronization of the store.

    \n
    source

    pub async fn skip_version(&mut self) -> Result<()>

    Advance the version of the persistent store without committing changes to persistent state.

    \n

    This function is useful when the AtomicStore synchronizing\nstorage for this FileSystemDataSource is being managed by the caller. The caller may want\nto persist some changes to other modules whose state is managed by the same\nAtomicStore. In order to call\nAtomicStore::commit_version, the version of\nthis FileSystemDataSource must be advanced, either by\ncommit or, if there are no outstanding changes,\nskip_version.

    \n
    ",0,"hotshot_query_service::testing::consensus::MockDataSource"],["
    source§

    impl<P: AvailabilityProvider<MockTypes> + Default> DataSourceLifeCycle for FileSystemDataSource<MockTypes, P>

    §

    type Storage = TempDir

    Backing storage for the data source. Read more
    source§

    fn create<'async_trait>(\n node_id: usize\n) -> Pin<Box<dyn Future<Output = Self::Storage> + Send + 'async_trait>>
    where\n Self: 'async_trait,

    source§

    fn connect<'life0, 'async_trait>(\n storage: &'life0 Self::Storage\n) -> Pin<Box<dyn Future<Output = Self> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn reset<'life0, 'async_trait>(\n storage: &'life0 Self::Storage\n) -> Pin<Box<dyn Future<Output = Self> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    source§

    fn handle_event<'life0, 'life1, 'async_trait>(\n &'life0 mut self,\n event: &'life1 Event<MockTypes>\n) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,\n 'life1: 'async_trait,

    source§

    fn setup<'life0, 'async_trait>(\n _network: &'life0 MockNetwork<Self>\n) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
    where\n Self: 'async_trait,\n 'life0: 'async_trait,

    Setup runs after setting up the network but before starting a test.
    ","DataSourceLifeCycle","hotshot_query_service::testing::consensus::MockDataSource"]] +};if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/type.impl/hotshot_types/data/struct.QuorumProposal.js b/type.impl/hotshot_types/data/struct.QuorumProposal.js new file mode 100644 index 000000000..59774dfc4 --- /dev/null +++ b/type.impl/hotshot_types/data/struct.QuorumProposal.js @@ -0,0 +1,3 @@ +(function() {var type_impls = { +"hotshot_query_service":[["
    §

    impl<TYPES> Debug for QuorumProposal<TYPES>
    where\n TYPES: NodeType,\n <TYPES as NodeType>::BlockHeader: Debug,\n <TYPES as NodeType>::Time: Debug,\n SimpleCertificate<TYPES, QuorumData<TYPES>, SuccessThreshold>: Debug,\n Option<SimpleCertificate<TYPES, TimeoutData<TYPES>, SuccessThreshold>>: Debug,\n Option<SimpleCertificate<TYPES, UpgradeProposalData<TYPES>, UpgradeThreshold>>: Debug,\n <TYPES as NodeType>::SignatureKey: Debug,

    §

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

    Formats the value using the given formatter. Read more
    ","Debug","hotshot_query_service::testing::mocks::MockQuorumProposal"],["
    §

    impl<TYPES> Eq for QuorumProposal<TYPES>
    where\n TYPES: Eq + NodeType,\n <TYPES as NodeType>::BlockHeader: Eq,\n <TYPES as NodeType>::Time: Eq,\n <TYPES as NodeType>::SignatureKey: Eq,

    ","Eq","hotshot_query_service::testing::mocks::MockQuorumProposal"],["
    §

    impl<TYPES> Clone for QuorumProposal<TYPES>
    where\n TYPES: Clone + NodeType,\n <TYPES as NodeType>::BlockHeader: Clone,\n <TYPES as NodeType>::Time: Clone,\n <TYPES as NodeType>::SignatureKey: Clone,

    §

    fn clone(&self) -> QuorumProposal<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
    ","Clone","hotshot_query_service::testing::mocks::MockQuorumProposal"],["
    §

    impl<'de, TYPES> Deserialize<'de> for QuorumProposal<TYPES>
    where\n TYPES: NodeType,

    §

    fn deserialize<__D>(\n __deserializer: __D\n) -> Result<QuorumProposal<TYPES>, <__D as Deserializer<'de>>::Error>
    where\n __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","hotshot_query_service::testing::mocks::MockQuorumProposal"],["
    §

    impl<TYPES> Hash for QuorumProposal<TYPES>
    where\n TYPES: Hash + NodeType,\n <TYPES as NodeType>::BlockHeader: Hash,\n <TYPES as NodeType>::Time: Hash,\n <TYPES as NodeType>::SignatureKey: Hash,

    §

    fn hash<__H>(&self, state: &mut __H)
    where\n __H: Hasher,

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

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

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","hotshot_query_service::testing::mocks::MockQuorumProposal"],["
    §

    impl<TYPES> HasViewNumber<TYPES> for QuorumProposal<TYPES>
    where\n TYPES: NodeType,

    §

    fn get_view_number(&self) -> <TYPES as NodeType>::Time

    Returns the view number the type refers to.
    ","HasViewNumber","hotshot_query_service::testing::mocks::MockQuorumProposal"],["
    §

    impl<TYPES> StructuralPartialEq for QuorumProposal<TYPES>
    where\n TYPES: NodeType,

    ","StructuralPartialEq","hotshot_query_service::testing::mocks::MockQuorumProposal"],["
    §

    impl<TYPES> PartialEq for QuorumProposal<TYPES>
    where\n TYPES: PartialEq + NodeType,\n <TYPES as NodeType>::BlockHeader: PartialEq,\n <TYPES as NodeType>::Time: PartialEq,\n <TYPES as NodeType>::SignatureKey: PartialEq,

    §

    fn eq(&self, other: &QuorumProposal<TYPES>) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    1.0.0 · source§

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

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq","hotshot_query_service::testing::mocks::MockQuorumProposal"],["
    §

    impl<TYPES> Serialize for QuorumProposal<TYPES>
    where\n TYPES: NodeType + Serialize,\n <TYPES as NodeType>::BlockHeader: Serialize,\n <TYPES as NodeType>::Time: Serialize,\n <TYPES as NodeType>::SignatureKey: Serialize,

    §

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

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","hotshot_query_service::testing::mocks::MockQuorumProposal"],["
    §

    impl<TYPES> StructuralEq for QuorumProposal<TYPES>
    where\n TYPES: NodeType,

    ","StructuralEq","hotshot_query_service::testing::mocks::MockQuorumProposal"]] +};if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file