diff --git a/hotshot_query_service/all.html b/hotshot_query_service/all.html index 803d61e22..87f6ae181 100644 --- a/hotshot_query_service/all.html +++ b/hotshot_query_service/all.html @@ -1 +1 @@ -List of all items in this crate

List of all items

Structs

Enums

Traits

Macros

Functions

Type Aliases

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

List of all items

Structs

Enums

Traits

Macros

Functions

Type Aliases

\ 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 c4525135c..6d5caab76 100644 --- a/hotshot_query_service/availability/enum.BlockId.html +++ b/hotshot_query_service/availability/enum.BlockId.html @@ -2,7 +2,7 @@ Number(usize), Hash(BlockHash<Types>), PayloadHash(VidCommitment), -}

Variants§

§

Number(usize)

§

Hash(BlockHash<Types>)

§

PayloadHash(VidCommitment)

Trait Implementations§

source§

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

source§

fn clone(&self) -> Self

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

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

Performs copy-assignment from source. Read more
source§

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

source§

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

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

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

source§

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

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

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

source§

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

Converts to this type from the input type.
source§

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

source§

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

Converts to this type from the input type.
source§

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

source§

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

Variants§

§

Number(usize)

§

Hash(BlockHash<Types>)

§

PayloadHash(VidCommitment)

Trait Implementations§

source§

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

source§

fn clone(&self) -> Self

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

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

Performs copy-assignment from source. Read more
source§

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

source§

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

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

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

source§

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

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

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

source§

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

Converts to this type from the input type.
source§

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

source§

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

Converts to this type from the input type.
source§

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

source§

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

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

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

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

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

source§

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

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

fn max(self, other: Self) -> Selfwhere diff --git a/hotshot_query_service/availability/enum.Error.html b/hotshot_query_service/availability/enum.Error.html index 587565f36..223d88638 100644 --- a/hotshot_query_service/availability/enum.Error.html +++ b/hotshot_query_service/availability/enum.Error.html @@ -19,25 +19,25 @@ message: String, status: StatusCode, }, -}

Variants§

§

Request

Fields

§source: RequestError
§

FetchLeaf

Fields

§resource: String
§

FetchBlock

Fields

§resource: String
§

FetchTransaction

Fields

§resource: String
§

InvalidTransactionIndex

Fields

§height: u64
§index: u64
§

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 Errorwhere +}

Variants§

§

Request

Fields

§source: RequestError
§

FetchLeaf

Fields

§resource: String
§

FetchBlock

Fields

§resource: String
§

FetchTransaction

Fields

§resource: String
§

InvalidTransactionIndex

Fields

§height: u64
§index: u64
§

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 Errorwhere 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 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 RequestSnafuwhere - 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 RequestSnafuwhere + 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 Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> AsErrorSource for Twhere 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 e32ee8004..314a90cc3 100644 --- a/hotshot_query_service/availability/enum.LeafId.html +++ b/hotshot_query_service/availability/enum.LeafId.html @@ -1,7 +1,7 @@ LeafId in hotshot_query_service::availability - Rust
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) -> Selfwhere diff --git a/hotshot_query_service/availability/struct.InconsistentLeafError.html b/hotshot_query_service/availability/struct.InconsistentLeafError.html index db369d3e6..07832bbe3 100644 --- a/hotshot_query_service/availability/struct.InconsistentLeafError.html +++ b/hotshot_query_service/availability/struct.InconsistentLeafError.html @@ -1,7 +1,7 @@ InconsistentLeafError in hotshot_query_service::availability - Rust
pub struct InconsistentLeafError<Types: NodeType> {
     pub leaf: LeafHash<Types>,
     pub qc_leaf: LeafHash<Types>,
-}

Fields§

§leaf: LeafHash<Types>§qc_leaf: LeafHash<Types>

Trait Implementations§

source§

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

source§

fn clone(&self) -> InconsistentLeafError<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 InconsistentLeafError<Types>

source§

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

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

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

source§

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

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

impl<Types: NodeType> Error for InconsistentLeafError<Types>where +}

Fields§

§leaf: LeafHash<Types>§qc_leaf: LeafHash<Types>

Trait Implementations§

source§

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

source§

fn clone(&self) -> InconsistentLeafError<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 InconsistentLeafError<Types>

source§

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

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

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

source§

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

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

impl<Types: NodeType> Error for InconsistentLeafError<Types>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<Types: NodeType> ErrorCompat for InconsistentLeafError<Types>

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 diff --git a/hotshot_query_service/availability/trait.AvailabilityDataSource.html b/hotshot_query_service/availability/trait.AvailabilityDataSource.html index 5f776d61a..581c10754 100644 --- a/hotshot_query_service/availability/trait.AvailabilityDataSource.html +++ b/hotshot_query_service/availability/trait.AvailabilityDataSource.html @@ -172,7 +172,7 @@ where 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, diff --git a/hotshot_query_service/availability/trait.UpdateAvailabilityData.html b/hotshot_query_service/availability/trait.UpdateAvailabilityData.html index bfe403c45..c52bbf718 100644 --- a/hotshot_query_service/availability/trait.UpdateAvailabilityData.html +++ b/hotshot_query_service/availability/trait.UpdateAvailabilityData.html @@ -29,7 +29,7 @@ U: Send + Sync, Types: NodeType,

§

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

source§

impl<Types> UpdateAvailabilityData<Types> for SqlStoragewhere 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, 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 ee71d4ce3..e0de4d258 100644 --- a/hotshot_query_service/data_source/storage/fs/struct.FileSystemStorage.html +++ b/hotshot_query_service/data_source/storage/fs/struct.FileSystemStorage.html @@ -105,13 +105,13 @@ ) -> 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>( + 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>( + 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, diff --git a/hotshot_query_service/data_source/storage/sql/struct.SqlStorage.html b/hotshot_query_service/data_source/storage/sql/struct.SqlStorage.html index 2ad783152..dbd88e386 100644 --- a/hotshot_query_service/data_source/storage/sql/struct.SqlStorage.html +++ b/hotshot_query_service/data_source/storage/sql/struct.SqlStorage.html @@ -136,12 +136,12 @@ ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,

source§

impl<Types> UpdateNodeData<Types> for SqlStoragewhere - Types: NodeType,

§

type Error = QueryError

source§

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

source§

impl VersionedDataSource for SqlStorage

§

type Error = 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, diff --git a/hotshot_query_service/data_source/struct.ExtensibleDataSource.html b/hotshot_query_service/data_source/struct.ExtensibleDataSource.html index b046cfb53..2c7972405 100644 --- a/hotshot_query_service/data_source/struct.ExtensibleDataSource.html +++ b/hotshot_query_service/data_source/struct.ExtensibleDataSource.html @@ -133,7 +133,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 @@ -146,14 +146,14 @@ '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>( + 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, diff --git a/hotshot_query_service/data_source/struct.FetchingDataSource.html b/hotshot_query_service/data_source/struct.FetchingDataSource.html index 7d0fbb794..e2422ad79 100644 --- a/hotshot_query_service/data_source/struct.FetchingDataSource.html +++ b/hotshot_query_service/data_source/struct.FetchingDataSource.html @@ -1,4 +1,4 @@ -FetchingDataSource in hotshot_query_service::data_source - Rust
pub struct FetchingDataSource<Types, S, P>where
+FetchingDataSource in hotshot_query_service::data_source - Rust
pub struct FetchingDataSource<Types, S, P>where
     Types: NodeType,{ /* private fields */ }
Expand description

The most basic kind of data source.

A data source is constructed modularly by combining a storage implementation with a Fetcher. The former allows the query service to store the @@ -13,14 +13,18 @@ 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, - P: Send + Sync,

source

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

Create a data source with local storage and a remote data availability 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.

+ P: Send + Sync,
source

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

Create a data source with local storage and a remote data availability provider.

+
source

pub async fn with_retry_delay( + storage: S, + provider: P, + delay: Option<Duration> +) -> Result<Self>

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>where Payload<Types>: QueryablePayload, P: Send + Sync,

source

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

Create a new FileSystemDataSource with storage at path.

@@ -66,7 +70,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, @@ -76,43 +80,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 @@ -133,38 +137,38 @@ 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§

impl<Types, S, P> StatusDataSource for FetchingDataSource<Types, S, P>where + 'life1: '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, @@ -172,36 +176,36 @@ &'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 + '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>( + 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, diff --git a/hotshot_query_service/data_source/trait.VersionedDataSource.html b/hotshot_query_service/data_source/trait.VersionedDataSource.html index b19684ae1..21946f8ff 100644 --- a/hotshot_query_service/data_source/trait.VersionedDataSource.html +++ b/hotshot_query_service/data_source/trait.VersionedDataSource.html @@ -39,7 +39,7 @@ changes to the database is considered a fatal error, and this function may panic.

Implementors§

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 diff --git a/hotshot_query_service/enum.Error.html b/hotshot_query_service/enum.Error.html index fc57b8b10..7232665ed 100644 --- a/hotshot_query_service/enum.Error.html +++ b/hotshot_query_service/enum.Error.html @@ -12,14 +12,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>) -> Selfwhere +}

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>) -> Selfwhere E: Display,

§

fn from_request_error(source: RequestError) -> Self

§

fn from_socket_error<E>(source: SocketError<E>) -> Selfwhere E: Display,

§

fn into_tide_error(self) -> Error

§

fn from_server_error(source: Error) -> Self

source§

impl Error for Errorwhere 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 Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> AsErrorSource for Twhere 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 eb4ec29c8..5cf47791a 100644 --- a/hotshot_query_service/enum.QueryError.html +++ b/hotshot_query_service/enum.QueryError.html @@ -8,16 +8,16 @@
§

Missing

The requested resource exists but is not currently available.

In most cases a missing resource can be recovered from DA.

§

Error

Fields

§message: String

There was an error while trying to fetch the requested resource.

-

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

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 QueryErrorwhere 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 MissingSnafuwhere - 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 NotFoundSnafuwhere + 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 NotFoundSnafuwhere 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 Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> AsErrorSource for Twhere 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/fetching/index.html b/hotshot_query_service/fetching/index.html index 8c881b98a..8b04af563 100644 --- a/hotshot_query_service/fetching/index.html +++ b/hotshot_query_service/fetching/index.html @@ -1,4 +1,4 @@ -hotshot_query_service::fetching - Rust
Expand description

Fetching missing data from remote providers.

+hotshot_query_service::fetching - Rust
Expand description

Fetching missing data from remote providers.

This module provides a mechanism to fetch data that is missing from this query service’s storage from a remote data availability provider. Fetcher can be used to handle concurrent requests for data, ensuring that each distinct resource is only fetched once at a time.

diff --git a/hotshot_query_service/fetching/provider/any/struct.AnyProvider.html b/hotshot_query_service/fetching/provider/any/struct.AnyProvider.html new file mode 100644 index 000000000..ee2b9f29d --- /dev/null +++ b/hotshot_query_service/fetching/provider/any/struct.AnyProvider.html @@ -0,0 +1,11 @@ + + + + + Redirection + + +

Redirecting to ../../../../hotshot_query_service/fetching/provider/struct.AnyProvider.html...

+ + + \ No newline at end of file diff --git a/hotshot_query_service/fetching/provider/index.html b/hotshot_query_service/fetching/provider/index.html index e512a0393..965dc87d5 100644 --- a/hotshot_query_service/fetching/provider/index.html +++ b/hotshot_query_service/fetching/provider/index.html @@ -1,4 +1,4 @@ -hotshot_query_service::fetching::provider - Rust
Expand description

Asynchronous fetching from external data availability providers.

+hotshot_query_service::fetching::provider - Rust
Expand description

Asynchronous fetching from external data availability providers.

Occasionally, data will be missing from the local persistent storage of this query service. This may be because the query service never received the data from the attached HotShot instance, which happens for each block payload committed while the attached HotShot instance is not a @@ -18,7 +18,7 @@

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.
  • 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 fc1252b80..fa36bd44a 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":["NoFetching","QueryServiceProvider"],"trait":["LocalProvider","Provider"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"struct":["AnyProvider","NoFetching","QueryServiceProvider"],"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 new file mode 100644 index 000000000..19903e419 --- /dev/null +++ b/hotshot_query_service/fetching/provider/struct.AnyProvider.html @@ -0,0 +1,175 @@ +AnyProvider in hotshot_query_service::fetching::provider - Rust
pub struct AnyProvider<Types>where
+    Types: NodeType,{ /* private fields */ }
Expand description

Adaptor combining multiple data availability providers.

+

This provider adaptor implements the Provider protocol by fetching +requested objects from several different underlying providers. If any of the underlying sources +have the object, the request will eventually succeed.

+

This can be used to combine multiple instances of the same kind of provider, like using +QueryServiceProvider to request objects from a number of +different query services. It can also be used to search different kinds of data providers for +the same object, like searching for a block both in another instance of the query service and in +the HotShot DA committee. Finally, AnyProvider can be used to combine a provider which only +provides blocks and one which only provides leaves into a provider which provides both, and thus +can be used as a provider for the availability API module.

+

Examples

+

Fetching from multiple query services, for resiliency.

+ +
use hotshot_query_service::fetching::provider::{AnyProvider, QueryServiceProvider};
+
+let qs1 = QueryServiceProvider::new("https://backup.query-service.1".parse()?);
+let qs2 = QueryServiceProvider::new("https://backup.query-service.2".parse()?);
+let provider = AnyProvider::<Types>::default()
+    .with_provider(qs1)
+    .with_provider(qs2);
+

Implementations§

source§

impl<Types> AnyProvider<Types>where + Types: NodeType,

source

pub fn with_provider<P>(self, provider: P) -> Selfwhere + P: Provider<Types, PayloadRequest> + Provider<Types, LeafRequest> + Debug + 'static,

Add a sub-provider which fetches both blocks and leaves.

+
source

pub fn with_block_provider<P>(self, provider: P) -> Selfwhere + P: Provider<Types, PayloadRequest> + Debug + 'static,

Add a sub-provider which fetches blocks.

+
source

pub fn with_leaf_provider<P>(self, provider: P) -> Selfwhere + P: Provider<Types, LeafRequest> + Debug + 'static,

Add a sub-provider which fetches leaves.

+

Trait Implementations§

source§

impl<Types> Clone for AnyProvider<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 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>( + &'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>( + &'life0 self, + req: PayloadRequest +) -> Pin<Box<dyn Future<Output = Option<Payload<Types>>> + Send + 'async_trait>>where + Self: 'async_trait, + 'life0: 'async_trait,

Fetch a resource.

Auto Trait Implementations§

§

impl<Types> !RefUnwindSafe for AnyProvider<Types>

§

impl<Types> Send for AnyProvider<Types>

§

impl<Types> Sync for AnyProvider<Types>

§

impl<Types> Unpin for AnyProvider<Types>

§

impl<Types> !UnwindSafe for AnyProvider<Types>

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

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

§

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

§

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

source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + 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) -> Twhere + Self: Into<T>,

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

impl<T> Downcast for Twhere + 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 Twhere + 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 Twhere + T: Clone,

source§

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

source§

impl<T> DynClone for Twhere + 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 Twhere + 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 Twhere + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere + 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) -> Rwhere + 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) -> Rwhere + 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) -> Rwhere + 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 +) -> Rwhere + 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) -> Rwhere + 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) -> Rwhere + 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) -> Rwhere + 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 +) -> Rwhere + 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)) -> Selfwhere + 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)) -> Selfwhere + 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)) -> Selfwhere + 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)) -> Selfwhere + 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)) -> Selfwhere + 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)) -> Selfwhere + 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)) -> Selfwhere + 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)) -> Selfwhere + 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)) -> Selfwhere + 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)) -> Selfwhere + 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)) -> Selfwhere + 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)) -> Selfwhere + 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 Twhere + 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 Twhere + 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 Twhere + 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 Twhere + 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
§

impl<T> PassType for Twhere + T: Clone + Debug + Sync + Send + '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 dcd17d504..52d2c5fbf 100644 --- a/hotshot_query_service/fetching/provider/struct.NoFetching.html +++ b/hotshot_query_service/fetching/provider/struct.NoFetching.html @@ -1,6 +1,11 @@ -NoFetching in hotshot_query_service::fetching::provider - Rust
pub struct NoFetching;
Expand description

Trivial Provider where fetching always fails.

+NoFetching in hotshot_query_service::fetching::provider - Rust
pub struct NoFetching;
Expand description

Trivial Provider where fetching always fails.

Useful for examples and tests which should never have need of a fetcher.

-

Trait Implementations§

source§

impl Clone for NoFetching

source§

fn clone(&self) -> NoFetching

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 NoFetching

source§

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

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

impl Default for NoFetching

source§

fn default() -> NoFetching

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

impl<Types, T: Send + Request<Types>> Provider<Types, T> for NoFetching

source§

async fn fetch(&self, _req: T) -> Option<T::Response>

Fetch a resource.
source§

impl Copy for NoFetching

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere +

Trait Implementations§

source§

impl Clone for NoFetching

source§

fn clone(&self) -> NoFetching

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 NoFetching

source§

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

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

impl Default for NoFetching

source§

fn default() -> NoFetching

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

impl<Types, T: Send + Request<Types> + 'static> Provider<Types, T> for NoFetching

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

impl Copy for NoFetching

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere T: 'a,

§

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

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere T: 'a,

§

fn implicit( @@ -44,9 +49,7 @@ U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

impl<Types, T, TraitVariantBlanketType> LocalProvider<Types, T> for TraitVariantBlanketTypewhere - T: Request<Types>, - TraitVariantBlanketType: Provider<Types, T>,

source§

async fn fetch(&self, req: T) -> Option<<T as Request<Types>>::Response>

Fetch a resource.
§

impl<D> OwoColorize for D

§

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

§

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 diff --git a/hotshot_query_service/fetching/provider/struct.QueryServiceProvider.html b/hotshot_query_service/fetching/provider/struct.QueryServiceProvider.html index a7133705f..39d1270c6 100644 --- a/hotshot_query_service/fetching/provider/struct.QueryServiceProvider.html +++ b/hotshot_query_service/fetching/provider/struct.QueryServiceProvider.html @@ -1,9 +1,19 @@ -QueryServiceProvider in hotshot_query_service::fetching::provider - Rust
pub struct QueryServiceProvider { /* private fields */ }
Expand description

Data availability provider backed by another instance of this query service.

+QueryServiceProvider in hotshot_query_service::fetching::provider - Rust
pub struct QueryServiceProvider { /* private fields */ }
Expand description

Data availability provider backed by another instance of this query service.

This fetcher implements the Provider interface by querying the REST API provided by another instance of this query service to try and retrieve missing objects.

-

Implementations§

source§

impl QueryServiceProvider

source

pub async fn new(url: Url) -> Self

Trait Implementations§

source§

impl Clone for QueryServiceProvider

source§

fn clone(&self) -> QueryServiceProvider

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 QueryServiceProvider

source§

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

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

impl<Types> Provider<Types, LeafRequest> for QueryServiceProviderwhere - Types: NodeType,

source§

async fn fetch(&self, req: LeafRequest) -> Option<LeafQueryData<Types>>

Fetch a resource.
source§

impl<Types> Provider<Types, PayloadRequest> for QueryServiceProviderwhere - Types: NodeType,

source§

async fn fetch(&self, req: PayloadRequest) -> Option<Payload<Types>>

Fetch a resource.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere +

Implementations§

source§

impl QueryServiceProvider

source

pub fn new(url: Url) -> Self

Trait Implementations§

source§

impl Clone for QueryServiceProvider

source§

fn clone(&self) -> QueryServiceProvider

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 QueryServiceProvider

source§

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

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

impl<Types> Provider<Types, LeafRequest> for QueryServiceProviderwhere + 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 QueryServiceProviderwhere + Types: NodeType,

source§

fn fetch<'life0, 'async_trait>( + &'life0 self, + req: PayloadRequest +) -> Pin<Box<dyn Future<Output = Option<Payload<Types>>> + Send + 'async_trait>>where + Self: 'async_trait, + 'life0: 'async_trait,

Fetch a resource.

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere T: 'a,

§

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

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere T: 'a,

§

fn implicit( @@ -47,9 +57,7 @@ U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

impl<Types, T, TraitVariantBlanketType> LocalProvider<Types, T> for TraitVariantBlanketTypewhere - T: Request<Types>, - TraitVariantBlanketType: Provider<Types, T>,

source§

async fn fetch(&self, req: T) -> Option<<T as Request<Types>>::Response>

Fetch a resource.
§

impl<D> OwoColorize for D

§

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

§

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 diff --git a/hotshot_query_service/fetching/provider/trait.LocalProvider.html b/hotshot_query_service/fetching/provider/trait.LocalProvider.html deleted file mode 100644 index 1ecce7dc3..000000000 --- a/hotshot_query_service/fetching/provider/trait.LocalProvider.html +++ /dev/null @@ -1,7 +0,0 @@ -LocalProvider in hotshot_query_service::fetching::provider - Rust
pub trait LocalProvider<Types, T: Request<Types>> {
-    // Required method
-    async fn fetch(&self, req: T) -> Option<T::Response>;
-}
Expand description

A provider which is able to satisfy requests for data of type T.

-

Required Methods§

source

async fn fetch(&self, req: T) -> Option<T::Response>

Fetch a resource.

-

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<Types, T: Request<Types>, TraitVariantBlanketType> LocalProvider<Types, T> for TraitVariantBlanketTypewhere - TraitVariantBlanketType: Provider<Types, T>,

\ 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 3dc026ffe..0d6602a70 100644 --- a/hotshot_query_service/fetching/provider/trait.Provider.html +++ b/hotshot_query_service/fetching/provider/trait.Provider.html @@ -1,10 +1,29 @@ -Provider in hotshot_query_service::fetching::provider - Rust
pub trait Provider<Types, T: Request<Types>>: Send {
+Provider in hotshot_query_service::fetching::provider - Rust
pub trait Provider<Types, T: Request<Types>>: Send + Sync {
     // Required method
-    fn fetch(&self, req: T) -> impl Future<Output = Option<T::Response>> + Send;
+    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;
 }
Expand description

A provider which is able to satisfy requests for data of type T.

-

Required Methods§

source

fn fetch(&self, req: T) -> impl Future<Output = Option<T::Response>> + Send

Fetch a resource.

-

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<Types, T, P> Provider<Types, T> for Arc<P>where - T: Request<Types>, - P: Provider<Types, T> + Sync,

source§

async fn fetch(&self, req: T) -> Option<T::Response>

Implementors§

source§

impl<Types> Provider<Types, LeafRequest> for QueryServiceProviderwhere - Types: NodeType,

source§

impl<Types> Provider<Types, PayloadRequest> for QueryServiceProviderwhere - Types: NodeType,

source§

impl<Types, T: Send + Request<Types>> Provider<Types, T> for NoFetching

\ No newline at end of file +

This trait use boxed future return types (#[async_trait]) instead of impl Future return +types, so that it can be object safe.

+

Required Methods§

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.

+

Implementations on Foreign Types§

source§

impl<Types, T, P> Provider<Types, T> for Arc<P>where + 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,

Implementors§

source§

impl<Types> Provider<Types, LeafRequest> for AnyProvider<Types>where + Types: NodeType,

source§

impl<Types> Provider<Types, LeafRequest> for QueryServiceProviderwhere + Types: NodeType,

source§

impl<Types> Provider<Types, PayloadRequest> for AnyProvider<Types>where + Types: NodeType,

source§

impl<Types> Provider<Types, PayloadRequest> for QueryServiceProviderwhere + Types: NodeType,

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 5cd0c9b81..99fa2ad5e 100644 --- a/hotshot_query_service/fetching/request/struct.LeafRequest.html +++ b/hotshot_query_service/fetching/request/struct.LeafRequest.html @@ -1,10 +1,21 @@ -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 +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 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 QueryServiceProviderwhere - Types: NodeType,

source§

async fn fetch(&self, req: LeafRequest) -> Option<LeafQueryData<Types>>

Fetch a resource.
source§

impl<Types: NodeType> Request<Types> for LeafRequest

§

type Response = LeafQueryData<Types>

The type of resource that will be returned as a successful response to this request.
source§

impl Copy for LeafRequest

source§

impl Eq for LeafRequest

source§

impl StructuralEq for LeafRequest

source§

impl StructuralPartialEq for LeafRequest

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere +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>( + &'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 QueryServiceProviderwhere + 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: NodeType> Request<Types> for LeafRequest

§

type Response = LeafQueryData<Types>

The type of resource that will be returned as a successful response to this request.
source§

impl Copy for LeafRequest

source§

impl Eq for LeafRequest

source§

impl StructuralEq for LeafRequest

source§

impl StructuralPartialEq for LeafRequest

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere T: 'a,

§

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

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere T: 'a,

§

fn implicit( diff --git a/hotshot_query_service/fetching/request/struct.PayloadRequest.html b/hotshot_query_service/fetching/request/struct.PayloadRequest.html index b896b2e0e..ea73a6e7e 100644 --- a/hotshot_query_service/fetching/request/struct.PayloadRequest.html +++ b/hotshot_query_service/fetching/request/struct.PayloadRequest.html @@ -1,10 +1,21 @@ -PayloadRequest in hotshot_query_service::fetching::request - Rust
pub struct PayloadRequest(pub VidCommitment);
Expand description

A request for a payload with a given commitment.

+PayloadRequest in hotshot_query_service::fetching::request - Rust
pub struct PayloadRequest(pub VidCommitment);
Expand description

A request for a payload with a given commitment.

Tuple Fields§

§0: VidCommitment

Trait Implementations§

source§

impl Clone for PayloadRequest

source§

fn clone(&self) -> PayloadRequest

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 PayloadRequest

source§

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

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

impl Hash for PayloadRequest

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 PayloadRequest

source§

fn eq(&self, other: &PayloadRequest) -> 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, PayloadRequest> for QueryServiceProviderwhere - Types: NodeType,

source§

async fn fetch(&self, req: PayloadRequest) -> Option<Payload<Types>>

Fetch a resource.
source§

impl<Types: NodeType> Request<Types> for PayloadRequest

§

type Response = <Types as NodeType>::BlockPayload

The type of resource that will be returned as a successful response to this request.
source§

impl Copy for PayloadRequest

source§

impl Eq for PayloadRequest

source§

impl StructuralEq for PayloadRequest

source§

impl StructuralPartialEq for PayloadRequest

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere +sufficient, and should not be overridden without very good reason.

source§

impl<Types> Provider<Types, PayloadRequest> for AnyProvider<Types>where + Types: NodeType,

source§

fn fetch<'life0, 'async_trait>( + &'life0 self, + req: PayloadRequest +) -> Pin<Box<dyn Future<Output = Option<Payload<Types>>> + Send + 'async_trait>>where + Self: 'async_trait, + 'life0: 'async_trait,

Fetch a resource.
source§

impl<Types> Provider<Types, PayloadRequest> for QueryServiceProviderwhere + Types: NodeType,

source§

fn fetch<'life0, 'async_trait>( + &'life0 self, + req: PayloadRequest +) -> Pin<Box<dyn Future<Output = Option<Payload<Types>>> + Send + 'async_trait>>where + Self: 'async_trait, + 'life0: 'async_trait,

Fetch a resource.
source§

impl<Types: NodeType> Request<Types> for PayloadRequest

§

type Response = <Types as NodeType>::BlockPayload

The type of resource that will be returned as a successful response to this request.
source§

impl Copy for PayloadRequest

source§

impl Eq for PayloadRequest

source§

impl StructuralEq for PayloadRequest

source§

impl StructuralPartialEq for PayloadRequest

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere T: 'a,

§

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

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere T: 'a,

§

fn implicit( diff --git a/hotshot_query_service/fetching/struct.Fetcher.html b/hotshot_query_service/fetching/struct.Fetcher.html index 13ff44db0..9f4a01b0b 100644 --- a/hotshot_query_service/fetching/struct.Fetcher.html +++ b/hotshot_query_service/fetching/struct.Fetcher.html @@ -1,5 +1,5 @@ -Fetcher in hotshot_query_service::fetching - Rust
pub struct Fetcher<T, C> { /* private fields */ }
Expand description

Management of concurrent requests to fetch resources.

-

Implementations§

source§

impl<T, C> Fetcher<T, C>

source

pub fn spawn_fetch<Types>( +Fetcher in hotshot_query_service::fetching - Rust
pub struct Fetcher<T, C> { /* private fields */ }
Expand description

Management of concurrent requests to fetch resources.

+

Implementations§

source§

impl<T, C> Fetcher<T, C>

source

pub fn with_retry_delay(self, retry_delay: Duration) -> Self

source§

impl<T, C> Fetcher<T, C>

source

pub fn spawn_fetch<Types>( &self, req: T, provider: impl Provider<Types, T> + 'static, @@ -17,7 +17,10 @@ block the caller, which might be on the critical path of request handling.

Note that while callbacks are allowed to be async, they are executed sequentially while an exclusive lock is held, and thus they should not take too long to run or block indefinitely.

-

Trait Implementations§

source§

impl<T, C> Clone for Fetcher<T, C>

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<T, C> Debug for Fetcher<T, C>

source§

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

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

impl<T, C> Default for Fetcher<T, C>

source§

fn default() -> Self

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

Auto Trait Implementations§

§

impl<T, C> !RefUnwindSafe for Fetcher<T, C>

§

impl<T, C> Send for Fetcher<T, C>where +

The spawned task will continue trying to fetch the object until it succeeds, so it is the +caller’s responsibility only to use this method for resources which are known to exist and +be fetchable by provider.

+

Trait Implementations§

source§

impl<T, C> Clone for Fetcher<T, C>

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<T, C> Debug for Fetcher<T, C>

source§

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

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

impl<T, C> Default for Fetcher<T, C>

source§

fn default() -> Self

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

Auto Trait Implementations§

§

impl<T, C> !RefUnwindSafe for Fetcher<T, C>

§

impl<T, C> Send for Fetcher<T, C>where C: Send, T: Send,

§

impl<T, C> Sync for Fetcher<T, C>where C: Send, diff --git a/hotshot_query_service/fetching/trait.Callback.html b/hotshot_query_service/fetching/trait.Callback.html index 17839d02a..b14879665 100644 --- a/hotshot_query_service/fetching/trait.Callback.html +++ b/hotshot_query_service/fetching/trait.Callback.html @@ -1,4 +1,4 @@ -Callback in hotshot_query_service::fetching - Rust
pub trait Callback<T>: Ord + Send {
+Callback in hotshot_query_service::fetching - Rust
pub trait Callback<T>: Ord + Send {
     // Required method
     fn run(self, response: T) -> impl Future<Output = ()> + Send;
 }
Expand description

A callback to process the result of a request.

@@ -11,4 +11,4 @@ callback, so that when the task that actually fetched the resource completes, it will run one instance of each distinct callback which was registered. Callbacks will run in the order determined by Ord.

-

Required Methods§

source

fn run(self, response: T) -> impl Future<Output = ()> + Send

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file +

Required Methods§

source

fn run(self, response: T) -> impl Future<Output = ()> + Send

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file diff --git a/hotshot_query_service/fetching/trait.LocalCallback.html b/hotshot_query_service/fetching/trait.LocalCallback.html index 432fb2647..087d683cc 100644 --- a/hotshot_query_service/fetching/trait.LocalCallback.html +++ b/hotshot_query_service/fetching/trait.LocalCallback.html @@ -1,4 +1,4 @@ -LocalCallback in hotshot_query_service::fetching - Rust
pub trait LocalCallback<T>: Ord {
+LocalCallback in hotshot_query_service::fetching - Rust
pub trait LocalCallback<T>: Ord {
     // Required method
     async fn run(self, response: T);
 }
Expand description

A callback to process the result of a request.

@@ -11,5 +11,5 @@ callback, so that when the task that actually fetched the resource completes, it will run one instance of each distinct callback which was registered. Callbacks will run in the order determined by Ord.

-

Required Methods§

source

async fn run(self, response: T)

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<T, TraitVariantBlanketType> LocalCallback<T> for TraitVariantBlanketTypewhere +

Required Methods§

source

async fn run(self, response: T)

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<T, TraitVariantBlanketType> LocalCallback<T> for TraitVariantBlanketTypewhere TraitVariantBlanketType: Callback<T>,

\ No newline at end of file diff --git a/hotshot_query_service/metrics/enum.MetricsError.html b/hotshot_query_service/metrics/enum.MetricsError.html index af42cc458..31a36c6bb 100644 --- a/hotshot_query_service/metrics/enum.MetricsError.html +++ b/hotshot_query_service/metrics/enum.MetricsError.html @@ -9,7 +9,7 @@ Prometheus { source: Error, }, -}

Variants§

§

NoSuchSubgroup

Fields

§path: Vec<String>
§

NoSuchMetric

Fields

§namespace: Vec<String>
§label: String
§

Prometheus

Fields

§source: Error

Trait Implementations§

source§

impl Debug for MetricsError

source§

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

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

impl Display for MetricsError

source§

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

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

impl Error for MetricsErrorwhere +}

Variants§

§

NoSuchSubgroup

Fields

§path: Vec<String>
§

NoSuchMetric

Fields

§namespace: Vec<String>
§label: String
§

Prometheus

Fields

§source: Error

Trait Implementations§

source§

impl Debug for MetricsError

source§

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

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

impl Display for MetricsError

source§

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

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

impl Error for MetricsErrorwhere 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 MetricsError

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 diff --git a/hotshot_query_service/node/enum.Error.html b/hotshot_query_service/node/enum.Error.html index aa158434c..dcfa8c9a5 100644 --- a/hotshot_query_service/node/enum.Error.html +++ b/hotshot_query_service/node/enum.Error.html @@ -19,15 +19,15 @@ 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 IntoError<Error> for InvalidSignatureKeySnafuwhere - 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 InvalidSignatureKeySnafuwhere + 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 QuerySnafuwhere - 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 RequestSnafuwhere - 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 + __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 QuerySnafuwhere + 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 RequestSnafuwhere + 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 Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> AsErrorSource for Twhere 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/node/trait.NodeDataSource.html b/hotshot_query_service/node/trait.NodeDataSource.html index ac2f3fea8..f7db68968 100644 --- a/hotshot_query_service/node/trait.NodeDataSource.html +++ b/hotshot_query_service/node/trait.NodeDataSource.html @@ -41,7 +41,7 @@ D: NodeDataSource<Types> + Send + Sync, U: Send + Sync, Types: NodeType,
source§

impl<Types> NodeDataSource<Types> for SqlStoragewhere - Types: NodeType,

source§

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

source§

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

source§

impl<Types: NodeType> NodeDataSource<Types> for FileSystemStorage<Types>where diff --git a/hotshot_query_service/node/trait.UpdateNodeData.html b/hotshot_query_service/node/trait.UpdateNodeData.html index 178094edc..e8f9bc104 100644 --- a/hotshot_query_service/node/trait.UpdateNodeData.html +++ b/hotshot_query_service/node/trait.UpdateNodeData.html @@ -17,7 +17,7 @@ D: UpdateNodeData<Types> + Send + Sync, U: Send + Sync, Types: NodeType,

§

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

source§

impl<Types> UpdateNodeData<Types> for SqlStoragewhere - Types: NodeType,

source§

impl<Types, S, P> UpdateNodeData<Types> for FetchingDataSource<Types, S, P>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 diff --git a/hotshot_query_service/status/enum.Error.html b/hotshot_query_service/status/enum.Error.html index 2fb96f7a7..6bc1f57da 100644 --- a/hotshot_query_service/status/enum.Error.html +++ b/hotshot_query_service/status/enum.Error.html @@ -10,7 +10,7 @@ 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<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 From<String> for Error

source§

fn from(original: String) -> 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<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 From<String> for Error

source§

fn from(original: String) -> 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 Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> AsErrorSource for Twhere 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/status/trait.StatusDataSource.html b/hotshot_query_service/status/trait.StatusDataSource.html index 4e866885f..12cc277d2 100644 --- a/hotshot_query_service/status/trait.StatusDataSource.html +++ b/hotshot_query_service/status/trait.StatusDataSource.html @@ -33,7 +33,7 @@ Self: Sync + 'async_trait, 'life0: 'async_trait,

Implementors§

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/search-index.js b/search-index.js index 16f10d4b6..4a079d0f2 100644 --- a/search-index.js +++ b/search-index.js @@ -1,5 +1,5 @@ var searchIndex = JSON.parse('{\ -"hotshot_query_service":{"doc":"The HotShot Query Service is a minimal, generic query …","t":"NNNENGDGNDNNDNDGEGIGDNGLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLAMLLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLOLLLLLLLOLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMAAMMMMMFLLLLLALLMLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLMLLLLLLLMMMMMMIGEDQNDEQENDNDNDNNQDNDQGEDQNNDNDQNINNDGGGGQDILLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKKKLLKKKKLLLLLLLLLLLLLLLLLMLLMLLLLLLLLLLLLLLLLKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLMKLLMLLLLLLLLLLLLLLLLLLMLMMMLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMQDDGDCIILLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLAALLLLLLLLLLLLLLLLLKLLLLLCDDCGCLLOCLICCAKKKKKKKKADLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDIDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLOOLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLCLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLIDICCLLLLLLLLLLLLLLLLLLLAAKKLLLLLLIDIDLLLLLLLLLLLLLLLLLLLLLLLKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDIQLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDDENNNDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMNDEQNDCIDNNDDNDILLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLFLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMENDDNIILLLLMLLLLLLLLLLKLLLLLLLLLLLLLLLLLFLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLKLKLLLLLLLLLMLLLLLLLLLLLLLLMM","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_rejected","get_state","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","rejected","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","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","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","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_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_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_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_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","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","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","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_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","header","header","header","header","header","header","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","insert_block","insert_leaf","internal","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_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_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","partial_cmp","partial_cmp","payload","payload_hash","payload_hash","proof","proof","proposer","qc","qc_leaf","resolve","resource","resource","resource","serialize","serialize","serialize","serialize","serialize","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_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_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","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","with_context","height","index","message","resource","resource","resource","source","status","Error","ExtensibleDataSource","FetchingDataSource","FileSystemDataSource","MetricsDataSource","SqlDataSource","UpdateDataSource","VersionedDataSource","__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","as_bits","as_mut","as_mut_bits","as_ref","block_height","block_height","block_height","block_height","block_height","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","commit","commit","commit","connect","count_proposals","count_proposals","create","create","create_with_store","create_with_store","default","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","encode_hex","encode_hex_upper","fmt","fmt","fmt","from","from","from","get_block","get_block","get_block_range","get_block_range","get_block_with_transaction","get_block_with_transaction","get_leaf","get_leaf","get_leaf_range","get_leaf_range","get_payload","get_payload","get_payload_range","get_payload_range","get_proposals","get_proposals","init","init","init","inner","inner_mut","insert_block","insert_block","insert_leaf","insert_leaf","insert_leaf","insert_leaf","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","metrics","metrics","metrics","new","new","open","open","open_with_store","open_with_store","populate_metrics","populate_metrics","populate_metrics","revert","revert","revert","skip_version","skip_version","sql","storage","storage","storage_mut","to_owned","to_owned","to_owned","transaction","try_as_bits","try_as_mut_bits","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update","update","update","vzip","vzip","vzip","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","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","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","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","LocalProvider","NoFetching","Provider","QueryServiceProvider","__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","default","deref","deref","deref_mut","deref_mut","drop","drop","fetch","fetch","fetch","fetch","fetch","fetch","fetch","fmt","fmt","from","from","init","init","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","new","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","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","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","api_path","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","augment_args","augment_args_for_update","backtrace","block_height","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","build","cause","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","count_proposals","default","define_api","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","description","deserialize","drop","drop","drop","drop","drop","drop","drop","extensions","fail","fail","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from_arg_matches","from_arg_matches_mut","get_proposals","group_id","header","in_current_span","init","init","init","init","init","init","init","insert_leaf","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","into_error","into_error","message","proposer","serialize","source","status","status","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_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","update_from_arg_matches","update_from_arg_matches_mut","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"],"q":[[0,"hotshot_query_service"],[278,"hotshot_query_service::Error"],[283,"hotshot_query_service::QueryError"],[284,"hotshot_query_service::availability"],[880,"hotshot_query_service::availability::Error"],[888,"hotshot_query_service::data_source"],[1038,"hotshot_query_service::data_source::sql"],[1049,"hotshot_query_service::data_source::storage"],[1062,"hotshot_query_service::data_source::storage::fs"],[1102,"hotshot_query_service::data_source::storage::sql"],[1297,"hotshot_query_service::fetching"],[1331,"hotshot_query_service::fetching::provider"],[1390,"hotshot_query_service::fetching::request"],[1455,"hotshot_query_service::metrics"],[1630,"hotshot_query_service::metrics::MetricsError"],[1634,"hotshot_query_service::node"],[1847,"hotshot_query_service::node::Error"],[1853,"hotshot_query_service::status"],[1972,"hotshot_query_service::status::Error"],[1974,"dyn_clone::sealed"],[1975,"dyn_clone::sealed"],[1976,"core::error"],[1977,"clap_builder::builder::command"],[1978,"snafu::backtrace_shim"],[1979,"core::option"],[1980,"alloc::string"],[1981,"core::convert"],[1982,"tide_disco::status"],[1983,"core::clone"],[1984,"hotshot_types::traits::node_implementation"],[1985,"commit"],[1986,"rand_core"],[1987,"core::result"],[1988,"serde::de"],[1989,"hotshot_types::data"],[1990,"core::fmt"],[1991,"core::fmt"],[1992,"clap_builder"],[1993,"hotshot_types::traits::storage"],[1994,"core::hash"],[1995,"core::marker"],[1996,"core::hash"],[1997,"hotshot_types::simple_certificate"],[1998,"hotshot_types::simple_certificate"],[1999,"clap_builder::util::id"],[2000,"core::hash"],[2001,"core::fmt"],[2002,"alloc::sync"],[2003,"alloc::rc"],[2004,"hotshot::types::handle"],[2005,"hotshot_types::traits::node_implementation"],[2006,"serde::ser"],[2007,"snafu"],[2008,"snafu"],[2009,"tide_disco::api"],[2010,"core::iter::traits::iterator"],[2011,"core::cmp"],[2012,"core::future::future"],[2013,"core::pin"],[2014,"core::ops::range"],[2015,"hotshot_types::data"],[2016,"hotshot_types::simple_certificate"],[2017,"bitvec::order"],[2018,"std::path"],[2019,"anyhow"],[2020,"atomic_store::atomic_store"],[2021,"core::iter::traits::collect"],[2022,"hotshot_types::traits::metrics"],[2023,"bitvec::ptr::span"],[2024,"hotshot_types::event"],[2025,"atomic_store::error"],[2026,"time::offset_date_time"],[2027,"std::backtrace"],[2028,"anyhow"],[2029,"core::iter::traits::collect"],[2030,"refinery_core::runner"],[2031,"refinery_core::error"],[2032,"url"],[2033,"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.","Transactions rejected or invalidated by the application of …","The blockchain state after appending 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","Transactions that were marked for rejection while …","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 …","","","","","","","","","","","","","","","","","","","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).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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 …","","","","","","","","","","Wrapper to add extensibility to an existing data source.","The most basic kind of 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 …","","","Connect to a remote database.","","","Create a new FileSystemDataSource with storage at path.","Create a new FileSystemDataSource with storage at path.","Create a new FileSystemDataSource using a persistent …","Create a new FileSystemDataSource using a persistent …","","","","","","","","","","","","","","","","Returns the argument unchanged.","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).","Calls U::from(self).","","","","","","","","","","","","","","Create a data source with local storage and a remote data …","Open an existing FileSystemDataSource from storage at path.","Open an existing FileSystemDataSource from storage at path.","Open an existing FileSystemDataSource using a persistent …","Open an existing FileSystemDataSource using a persistent …","","","","Erase all oustanding modifications to the data.","","","Advance the version of the persistent store without …","Advance the version of the persistent store without …","","Persistent storage for data sources.","Obtain direct, read-only access to the underlying local …","Obtain direct, mutable access the underlying local storage.","","","","Access the transaction which is accumulating all …","","","","","","","","","","","","Update query state based on a new consensus event.","","","","","","","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.","","","","","","","","","","","","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.","","","","","","A provider which is able to satisfy requests for data of …","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.","Fetch a resource.","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","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.","","","","","","","","","","","","","","","","","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,126,0,10,0,0,0,10,0,7,10,0,126,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,23,17,7,11,12,13,10,23,7,10,23,23,0,23,7,10,17,17,17,7,11,12,13,10,23,17,7,11,12,13,10,23,11,12,13,7,7,10,17,7,11,12,13,10,17,7,11,12,13,10,17,173,17,17,0,23,17,7,11,12,13,10,23,17,7,11,12,13,10,23,7,10,17,7,10,17,7,11,12,13,10,23,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,23,23,23,17,17,17,17,17,17,17,17,17,17,17,17,17,23,17,17,7,10,7,10,0,17,7,11,12,13,10,23,0,7,17,7,11,12,13,10,23,17,7,11,12,13,10,23,17,7,11,12,13,10,23,17,7,11,12,13,10,23,11,12,13,17,13,0,0,23,17,23,17,17,0,17,7,10,7,10,0,7,10,23,17,7,11,12,13,10,17,7,10,17,7,11,12,13,10,23,17,7,11,12,13,10,23,173,17,17,7,11,12,13,10,23,23,23,17,17,7,11,12,13,10,23,174,175,176,177,174,178,0,0,0,0,57,34,0,0,121,0,34,0,34,0,34,0,76,77,179,0,34,0,179,0,0,0,57,76,77,0,77,0,57,81,0,81,34,0,0,0,0,0,179,0,0,76,76,77,77,67,67,66,66,78,78,69,69,70,70,79,79,71,71,72,72,73,73,74,74,75,75,34,34,85,81,76,77,67,66,78,69,70,85,79,71,72,73,74,75,34,81,76,77,67,66,78,69,70,85,79,71,72,73,74,75,34,66,34,85,85,66,34,67,69,70,81,76,77,67,66,78,69,70,85,79,71,72,73,74,75,34,81,76,77,67,66,78,69,70,85,79,71,72,73,74,75,34,71,72,73,74,75,179,179,66,34,76,77,67,66,78,69,70,79,71,72,73,74,75,34,76,77,67,66,78,69,70,79,71,72,73,74,75,34,76,77,76,77,81,69,85,0,81,76,77,67,66,78,69,70,85,79,71,72,73,74,75,34,81,76,77,67,66,78,69,70,85,79,71,72,73,74,75,34,66,34,67,78,69,70,34,81,76,77,67,66,78,69,70,85,79,71,72,73,74,75,34,179,179,78,76,77,67,78,69,70,76,76,76,76,77,77,77,77,67,67,67,67,78,78,78,78,69,69,69,69,70,70,70,70,85,71,72,73,74,75,76,76,77,77,67,66,66,78,69,70,79,71,72,73,74,75,34,34,81,76,76,76,77,77,77,67,66,78,69,69,70,85,79,71,72,73,74,75,34,34,34,85,85,67,78,57,57,57,76,77,57,57,57,57,85,76,77,67,78,69,70,76,77,67,66,78,34,67,78,69,70,74,66,34,74,81,76,77,67,66,78,69,70,85,79,71,72,73,74,75,34,121,121,34,81,76,77,67,66,78,69,70,85,79,71,72,73,74,75,34,81,76,77,67,66,78,69,70,85,79,71,72,73,74,75,34,76,77,67,66,78,69,70,85,79,71,72,73,74,75,34,81,76,77,67,66,78,69,70,85,79,71,72,73,74,75,34,79,71,72,73,74,75,81,179,179,78,179,67,66,179,78,81,75,78,67,78,179,179,179,179,179,179,76,77,78,67,78,179,179,67,67,66,81,71,72,73,67,78,69,70,34,78,69,66,34,34,75,57,57,57,57,57,57,76,77,67,66,78,69,70,79,71,72,73,74,75,34,76,77,66,34,179,179,78,70,179,179,78,179,179,179,81,76,77,67,66,78,69,70,85,79,71,72,73,74,75,34,81,76,77,67,66,78,69,70,85,79,71,72,73,74,75,34,81,81,76,77,67,66,78,69,70,85,79,71,72,73,74,75,34,85,85,81,76,77,67,66,78,69,70,85,79,71,72,73,74,75,34,81,180,180,181,182,183,184,185,181,61,0,0,0,0,0,0,0,107,107,108,108,109,109,107,108,109,107,108,109,107,107,107,107,107,107,108,108,109,107,108,109,107,108,109,107,108,109,107,108,109,61,107,108,108,107,108,114,108,114,108,109,107,108,109,107,108,109,107,108,109,107,107,107,108,109,107,108,109,107,108,107,108,107,108,107,108,107,108,107,108,107,108,107,108,107,108,109,107,107,107,108,107,107,108,108,107,108,109,107,108,109,107,108,109,107,108,109,107,108,109,107,108,114,108,114,108,107,108,109,61,107,108,114,108,0,0,108,108,107,108,109,108,107,107,107,108,109,107,108,109,107,108,109,60,107,108,107,108,109,0,0,0,0,0,0,129,129,0,0,129,0,0,0,0,120,120,120,120,120,120,120,120,0,0,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,0,0,0,0,0,0,131,131,110,110,131,112,131,125,110,111,112,131,125,110,111,112,112,112,111,112,131,125,110,111,112,131,125,110,111,112,131,186,125,111,131,110,131,110,131,111,131,110,111,112,111,110,110,0,112,112,131,125,110,111,112,112,131,125,110,111,112,112,112,112,112,131,125,110,111,111,131,131,131,131,131,125,125,125,125,125,112,112,131,131,110,111,112,112,112,131,125,110,110,111,110,111,111,111,111,111,111,111,111,111,112,131,110,0,0,112,131,125,110,111,111,111,111,112,131,125,110,111,112,131,125,110,111,112,131,125,110,111,112,131,125,110,111,112,110,112,131,112,110,131,110,110,0,131,186,186,186,186,186,186,110,111,112,110,131,110,131,110,112,131,111,112,131,125,110,111,112,131,125,110,111,112,131,125,110,111,131,125,110,131,112,131,125,110,111,0,0,0,0,0,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,0,0,187,146,144,144,144,144,144,144,0,0,0,0,148,148,149,149,148,149,148,149,148,149,148,149,148,149,148,149,149,148,149,148,149,148,149,188,147,148,148,148,149,149,148,149,148,149,148,149,148,149,148,149,148,149,148,149,148,148,149,148,149,148,149,148,149,148,149,0,0,0,145,150,150,151,151,150,151,150,151,150,151,150,151,150,151,150,151,150,151,150,151,150,151,150,151,150,150,150,150,151,151,151,151,150,151,150,151,151,150,151,150,151,150,151,150,151,150,151,150,151,150,151,150,151,150,151,150,151,150,151,150,151,0,0,0,0,0,156,156,156,0,123,123,153,153,157,157,154,154,158,158,153,154,156,123,153,157,154,158,156,123,153,157,154,158,156,156,156,123,153,157,154,158,156,123,153,157,154,158,156,123,153,157,154,158,123,153,157,154,158,123,123,123,123,123,156,123,153,157,154,158,156,123,153,157,154,158,156,156,123,153,157,154,158,123,156,156,123,153,157,154,158,156,156,123,153,157,154,158,153,157,158,123,123,123,123,123,156,156,156,123,153,157,154,158,156,123,153,157,154,158,156,123,153,157,154,158,156,123,153,157,154,158,156,123,153,157,154,158,154,154,157,158,156,123,154,123,153,157,154,158,156,156,123,153,157,154,158,156,123,153,157,154,158,156,123,153,157,154,158,157,156,123,153,157,154,158,189,189,190,191,35,0,0,122,35,0,0,0,0,35,35,0,0,35,0,0,167,167,168,168,169,169,165,165,166,166,35,35,170,170,167,168,169,165,166,35,170,167,168,169,165,166,35,35,170,170,35,58,170,167,168,169,165,166,35,170,167,168,169,165,166,35,165,166,35,167,168,169,165,166,35,167,168,169,165,166,35,58,170,0,170,167,168,169,165,166,35,170,167,168,169,165,166,35,35,35,170,167,168,169,165,166,35,170,165,166,167,168,169,165,166,35,35,170,167,168,169,165,166,35,35,35,170,170,58,170,35,35,170,167,168,169,165,166,35,122,35,170,167,168,169,165,166,35,170,167,168,169,165,166,35,170,167,168,169,165,166,35,170,167,168,169,165,166,35,167,168,169,165,166,166,169,35,35,35,166,167,168,169,165,166,35,35,170,167,168,169,165,166,35,170,167,168,169,165,166,35,170,167,168,169,165,166,35,170,170,170,167,168,169,165,166,35,192,193,194,195,193,192,0,36,0,0,36,0,0,171,171,36,36,172,171,172,36,171,172,36,36,172,172,36,59,171,172,36,171,172,36,36,171,36,171,36,171,171,59,59,171,172,0,171,172,36,171,172,36,36,171,36,171,172,36,171,171,171,171,171,172,171,36,36,171,172,36,36,36,172,172,171,172,171,36,36,171,172,36,171,172,36,171,172,36,171,172,36,171,172,36,171,59,59,59,171,196,171,36,36,36,59,59,171,36,36,171,171,172,36,171,172,36,171,172,36,172,172,171,172,36,197,198],"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,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],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,[]],[-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],[-1,[[20,[-2]]],[],[]],[-1,[[20,[-2]]],[],[]],[[[17,[-1]],21,22],[],19],0,[[],23],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[7,25],[10,25],[-1,[[26,[[17,[-2]]]]],27,19],[-1,[[26,[7]]],27],[-1,[[26,[10]]],27],[24,2],[24,2],[24,2],[24,2],[24,2],[24,2],[24,2],[[[17,[-1]],[17,[-1]]],28,19],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[11,[[26,[-1,10]]],[]],[12,[[26,[-1,10]]],[]],[[[13,[-1]]],[[26,[-2,10]]],[[15,[14]]],[]],0,[[[17,[-1]],24],[[26,[2,29]]],19],[[[17,[-1]]],2,19],[[[17,[-1]],30],[[26,[2,31]]],19],[[[17,[-1]],30],[[26,[2,31]]],[32,19]],[[7,30],33],[[7,30],33],[[11,30],33],[[12,30],33],[[[13,[-1]],30],33,32],[[10,30],33],[[10,30],33],[-1,-1,[]],[34,7],[-1,-1,[]],[[[2,[14,16]]],7],[35,7],[36,7],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[37,[[26,[23,38]]]],[37,[[26,[23,38]]]],[[[39,[-1]]],[[17,[-1]]],19],[[],[[17,[-1]]],19],[[[17,[-1]]],[],19],[[[17,[-1]]],9,19],[[-1,-2],22,[40,41],42],[[[17,[-1]]],22,19],[[[17,[-1]]],[[45,[-1,[43,[-1]],44]]],19],[[[17,[-1]]],[[20,[[17,[-1]]]]],19],[[[17,[-1]]],[],19],[[[17,[-1]]],[],19],[[[17,[-1]]],46,19],[[[17,[-1]]],2,19],[[[17,[-1]]],[],19],[[],[[9,[47]]]],[[[17,[-1]],-2],2,19,48],[[-1,-2],[[49,[-2,-3]]],[],[50,51,52],[]],[[-1,-2],[[49,[-2,-3]]],[],[50,51,52],[]],[[-1,-2],[[49,[-2,-3]]],[],[50,51,52],[]],[-1,[],[]],[-1,[],[]],0,[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],0,[-1,7,50],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[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]]],[]],[11,10],[12,10],[[[13,[-1]]],10,[[15,[14]]]],0,0,0,0,0,0,0,0,0,[[23,-2,[56,[-1,-3]]],[[26,[2,7]]],19,[[57,[-1]],[58,[-1]],59,[60,[-1]],61,51,52],[[62,[-1]]]],[[[17,[-1]],-2],26,[19,63],64],[[7,-1],26,64],[[10,-1],26,64],[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,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2,-1]]],[],[]],[-1,[[26,[-2,-2]]],[],[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[[23,37],[[26,[2,38]]]],[[23,37],[[26,[2,38]]]],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,[[-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,[]],[[-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,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,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],[[[66,[-1]]],[[9,[8]]],19],[34,[[9,[8]]]],[[[67,[-1]]],[[68,[-1]]],19],[[[69,[-1]]],[[68,[-1]]],19],[[[70,[-1]]],[[68,[-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,[],[]],[[[71,[-1]]],34,[[15,[14]]]],[[[72,[-1]]],34,[[15,[14]]]],[[[73,[-1]]],34,[[15,[14]]]],[[[74,[-1,-2]]],34,[[15,[22]]],[[15,[22]]]],[[[75,[-1,-2]]],34,[[15,[14]]],[[15,[16]]]],[[-1,20],9,[]],[[-1,20],9,[]],[[[66,[-1]]],[[9,[5]]],19],[34,[[9,[5]]]],[[[76,[-1]]],[[76,[-1]]],19],[[[77,[-1]]],[[77,[-1]]],19],[[[67,[-1]]],[[67,[-1]]],[18,19]],[[[66,[-1]]],[[66,[-1]]],[18,19]],[[[78,[-1]]],[[78,[-1]]],[18,19]],[[[69,[-1]]],[[69,[-1]]],[18,19]],[[[70,[-1]]],[[70,[-1]]],[18,19]],[79,79],[[[71,[-1]]],[[71,[-1]]],18],[[[72,[-1]]],[[72,[-1]]],18],[[[73,[-1]]],[[73,[-1]]],18],[[[74,[-1,-2]]],[[74,[-1,-2]]],18,18],[[[75,[-1,-2]]],[[75,[-1,-2]]],18,18],[34,34],[[-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,[],[]],[[[76,[-1]],[76,[-1]]],80,19],[[[77,[-1]],[77,[-1]]],80,19],[[-1,-2],80,[],[]],[[-1,-2],80,[],[]],[[[81,[-1]],-3],[[26,[-1,-2]]],[],[5,82],[[83,[-2]]]],[[[69,[-1]]],[[84,[-1]]],19],[[],85],[85,[[26,[[86,[-1,34]],87]]],[51,52,88]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[[[66,[-1]]],25,19],[34,25],[-1,[[26,[[67,[-2]]]]],27,19],[-1,[[26,[[78,[-2]]]]],27,19],[-1,[[26,[[69,[-2]]]]],27,19],[-1,[[26,[[70,[-2]]]]],27,19],[-1,[[26,[34]]],27],[24,2],[24,2],[24,2],[24,2],[24,2],[24,2],[24,2],[24,2],[24,2],[24,2],[24,2],[24,2],[24,2],[24,2],[24,2],[24,2],[-1,[[53,[89]]],[]],[-1,[[53,[89]]],[]],[[[78,[-1]]],[[0,[89]]],19],[[[76,[-1]],[76,[-1]]],28,19],[[[77,[-1]],[77,[-1]]],28,19],[[[67,[-1]],[67,[-1]]],28,[90,19]],[[[78,[-1]],[78,[-1]]],28,[90,19]],[[[69,[-1]],[69,[-1]]],28,[90,19]],[[[70,[-1]],[70,[-1]]],28,[90,19]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],0,[[[71,[-1]]],[[26,[-2,34]]],[[15,[14]]],[]],[[[72,[-1]]],[[26,[-2,34]]],[[15,[14]]],[]],[[[73,[-1]]],[[26,[-2,34]]],[[15,[14]]],[]],[[[74,[-1,-2]]],[[26,[-3,34]]],[[15,[22]]],[[15,[22]]],[]],[[[75,[-1,-2]]],[[26,[-3,34]]],[[15,[14]]],[[15,[16]]],[]],[[[76,[-1]],30],33,19],[[[76,[-1]],30],33,19],[[[77,[-1]],30],33,19],[[[77,[-1]],30],33,19],[[[67,[-1]],30],33,[32,19]],[[[66,[-1]],30],33,19],[[[66,[-1]],30],33,[32,19]],[[[78,[-1]],30],33,[32,19]],[[[69,[-1]],30],33,[32,19]],[[[70,[-1]],30],33,[32,19]],[[79,30],33],[[[71,[-1]],30],33,32],[[[72,[-1]],30],33,32],[[[73,[-1]],30],33,32],[[[74,[-1,-2]],30],33,32,32],[[[75,[-1,-2]],30],33,32,32],[[34,30],33],[[34,30],33],[-1,-1,[]],[24,[[76,[-1]]],19],[-1,-1,[]],[[[91,[-1]]],[[76,[-1]]],19],[[[68,[-1]]],[[77,[-1]]],19],[-1,-1,[]],[24,[[77,[-1]]],19],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[78,[-1]]],[[69,[-1]]],19],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[2,[14,16]]],34],[92,34],[-1,-1,[]],[37,[[26,[85,38]]]],[37,[[26,[85,38]]]],[[],[[67,[-1]]],19],[[],[[78,[-1]]],19],[[-1,-3],[[94,[[53,[93]]]]],[],[],[[15,[[77,[-2]]]],51,52]],[[-1,-2],[[94,[[53,[93]]]]],[],[[95,[24]],51]],[[-1,[96,[-2]]],[[94,[[53,[93]]]]],[],[]],[[-1,-2],22,[40,41],42],[[-1,-2],22,[40,41],42],[[-1,-3],[[94,[[53,[93]]]]],[],[],[[15,[[76,[-2]]]],51,52]],[[-1,-2],[[94,[[53,[93]]]]],[],[[95,[24]],51]],[[-1,-3],[[94,[[53,[93]]]]],[],[],[[15,[[77,[-2]]]],51,52]],[[-1,-2],[[94,[[53,[93]]]]],[],[[95,[24]],51]],[[],[[9,[47]]]],[[[76,[-1]],-2],2,19,48],[[[77,[-1]],-2],2,19,48],[[[67,[-1]]],[[91,[-1]]],19],[[[78,[-1]]],[[68,[-1]]],19],[[[69,[-1]]],97,19],[[[70,[-1]]],[[96,[-1]]],19],[[-1,-2],[[49,[-2,-3]]],[],[50,51,52],[]],[[-1,-2],[[49,[-2,-3]]],[],[50,51,52],[]],[[[67,[-1]]],[[98,[-1]]],19],[[-1,-2],[[49,[-2,-3]]],[],[50,51,52],[]],[[[78,[-1]]],[[98,[-1]]],19],[[-1,-2],[[49,[-2,-3]]],[],[50,51,52],[]],[[[67,[-1]]],22,19],[[[78,[-1]]],22,19],[[[69,[-1]]],22,19],[[[70,[-1]]],22,19],0,[-1,[],[]],[-1,[],[]],0,[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[-1,[78,[-2]]],[[94,[[53,[93]]]]],[],[]],[[-1,[67,[-2]]],[[94,[[53,[93]]]]],[],[]],[-1,34,50],[-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,[],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[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]]],[]],[79,34],[[[71,[-1]]],34,[[15,[14]]]],[[[72,[-1]]],34,[[15,[14]]]],[[[73,[-1]]],34,[[15,[14]]]],[[[74,[-1,-2]]],34,[[15,[22]]],[[15,[22]]]],[[[75,[-1,-2]]],34,[[15,[14]]],[[15,[16]]]],[[[81,[-1]]],[],51],[-1,28,[]],[-1,28,[]],[[[78,[-1]]],28,19],[-1,[],[]],[[[67,[-1]]],[[17,[-1]]],19],0,[-1,24,[]],[[[78,[-1]]],24,19],[[[81,[-1]],-2],[[81,[-3]]],[],[51,99],[]],0,[[[78,[-1]]],[[100,[-1]]],19],[[[17,[-1]],[101,[-1]]],[[26,[[67,[-1]],[66,[-1]]]]],19],[[[98,[-1]],[84,[-1]]],[[78,[-1]]],19],[[-1,24],9,[]],[[-1,24],9,[]],[[-1,24],9,[]],[[-1,24],9,[]],[[-1,24],[[9,[2]]],[]],[[-1,24],[[9,[2]]],[]],[[[76,[-1]],[76,[-1]]],[[9,[80]]],19],[[[77,[-1]],[77,[-1]]],[[9,[80]]],19],[[[78,[-1]]],[[84,[-1]]],19],[[[67,[-1]]],97,19],[[[78,[-1]]],97,19],[-1,9,[]],[-1,9,[]],[[[67,[-1]]],[[102,[-1]]],19],[[[67,[-1]]],[[101,[-1]]],19],0,[[[81,[-1]]],-1,51],0,0,0,[[[67,[-1]],-2],26,19,64],[[[78,[-1]],-2],26,19,64],[[[69,[-1]],-2],26,19,64],[[[70,[-1]],-2],26,19,64],[[34,-1],26,64],[[[78,[-1]]],22,19],[[[69,[-1]]],22,19],[[[66,[-1]]],[[9,[5]]],19],[34,[[9,[5]]]],[34,16],0,[[-1,24],[[94,[[53,[93]]]]],52],[[-1,24],[[94,[[53,[93]]]]],52],[[-1,24],[[94,[[53,[93]]]]],52],[[-1,24],[[94,[[53,[93]]]]],52],[[-1,24],[[94,[[53,[93]]]]],52],[[-1,24],[[94,[[53,[93]]]]],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,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,9,[]],[-1,9,[]],[[[78,[-1]],[103,[-1]]],[[9,[[70,[-1]]]]],19],[[[70,[-1]]],[[104,[-1]]],19],[[-1,20],9,[]],[[-1,20],9,[]],[[[78,[-1]],[20,[[104,[-1]]]]],[[9,[[103,[-1]]]]],19],[[-1,20],[[9,[2]]],[]],[[-1,20],[[9,[2]]],[]],[-1,[[9,[2]]],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[[[81,[-1]]],[[26,[-1,[81,[-1]]]]],[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[[85,37],[[26,[2,38]]]],[[85,37],[[26,[2,38]]]],[-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,[],[]],[[[81,[-1]],-2],[[26,[-1,-3]]],[],99,[5,82]],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,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,[[105,[-2,-3]]],[],[],106],[[[107,[-1,-2]]],-2,[],[]],[-1,[[105,[-2,-3]]],[],[],106],[[[107,[-1,-2]]],-2,[],[]],[[[107,[-2,-3]]],[[94,[[53,[93]]]]],19,[[58,[-1]],51,52],[51,52]],[[[107,[-1,-2]]],[[94,[[53,[93]]]]],[59,51,52],[51,52]],[[[108,[-1,-2,-3]]],[[94,[[53,[93]]]]],19,[[58,[-1]],51,52],[51,52]],[[[108,[-1,-2,-3]]],[[94,[[53,[93]]]]],19,[[58,[-1]],51,52],[51,52]],[109,[[94,[[53,[93]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[107,[-1,-2]]],[[107,[-1,-2]]],18,18],[[[108,[-1,-2,-3]]],[[108,[-1,-2,-3]]],19,[],[]],[109,109],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[-1,[[94,[[53,[93]]]]],[]],[[[107,[-1,-2]]],[[94,[[53,[93]]]]],[61,51],51],[[[108,[-1,-2,-3]]],[[94,[[53,[93]]]]],19,[61,51,52],[51,52]],[[110,-1],[[26,[[108,[-2,111,-1]],112]]],[51,52],19],[[[107,[-2,-3]],[102,[-1]]],[[94,[[53,[93]]]]],19,[[58,[-1]],51,52],[51,52]],[[[108,[-1,-2,-3]],[102,[-1]]],[[94,[[53,[93]]]]],19,[[58,[-1]],51,52],[51,52]],[[113,-1],[[115,[[114,[-2,-1]]]]],[51,52],19],[[113,-1],[[115,[[108,[-2,[116,[-2]],-1]]]]],[51,52],19],[[117,-1],[[115,[[114,[-2,-1]]]]],[51,52],19],[[117,-1],[[115,[[108,[-2,[116,[-2]],-1]]]]],[51,52],19],[[],109],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,2],[24,2],[24,2],[-1,-2,[],[[119,[118]]]],[-1,-2,[],[[119,[118]]]],[[[107,[-1,-2]],30],33,32,32],[[[108,[-1,-2,-3]],30],33,19,32,32],[[109,30],33],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[107,[-2,-3]],-4],[[94,[[53,[93]]]]],19,[[57,[-1]],51,52],[51,52],[[15,[[77,[-1]]]],51,52]],[[[108,[-1,-2,-3]],-4],[[94,[[53,[93]]]]],19,[[120,[-1]]],[[0,[-1]]],[[15,[[77,[-1]]]],51,52]],[[[107,[-2,-3]],-4],[[94,[[53,[93]]]]],19,[[57,[-1]],51,52],[51,52],[[95,[24]],51]],[[[108,[-1,-2,-3]],-4],[[94,[[53,[93]]]]],19,[[120,[-1]]],[[0,[-1]]],[[95,[24]],51]],[[[107,[-2,-3]],[96,[-1]]],[[94,[[53,[93]]]]],19,[[57,[-1]],51,52],[51,52]],[[[108,[-1,-2,-3]],[96,[-1]]],[[94,[[53,[93]]]]],19,[[120,[-1]]],[[0,[-1]]]],[[[107,[-2,-3]],-4],[[94,[[53,[93]]]]],19,[[57,[-1]],51,52],[51,52],[[15,[[76,[-1]]]],51,52]],[[[108,[-1,-2,-3]],-4],[[94,[[53,[93]]]]],19,[[120,[-1]]],[[0,[-1]]],[[15,[[76,[-1]]]],51,52]],[[[107,[-2,-3]],-4],[[94,[[53,[93]]]]],19,[[57,[-1]],51,52],[51,52],[[95,[24]],51]],[[[108,[-1,-2,-3]],-4],[[94,[[53,[93]]]]],19,[[120,[-1]]],[[0,[-1]]],[[95,[24]],51]],[[[107,[-2,-3]],-4],[[94,[[53,[93]]]]],19,[[57,[-1]],51,52],[51,52],[[15,[[77,[-1]]]],51,52]],[[[108,[-1,-2,-3]],-4],[[94,[[53,[93]]]]],19,[[120,[-1]]],[[0,[-1]]],[[15,[[77,[-1]]]],51,52]],[[[107,[-2,-3]],-4],[[94,[[53,[93]]]]],19,[[57,[-1]],51,52],[51,52],[[95,[24]],51]],[[[108,[-1,-2,-3]],-4],[[94,[[53,[93]]]]],19,[[120,[-1]]],[[0,[-1]]],[[95,[24]],51]],[[[107,[-2,-3]],[102,[-1]],[9,[24]]],[[94,[[53,[93]]]]],19,[[58,[-1]],51,52],[51,52]],[[[108,[-1,-2,-3]],[102,[-1]],[9,[24]]],[[94,[[53,[93]]]]],19,[[58,[-1]],51,52],[51,52]],[[],24],[[],24],[[],24],[[[107,[-1,-2]]],-1,[],[]],[[[107,[-1,-2]]],-1,[],[]],[[[107,[-2,-3]],[78,[-1]]],[[94,[[53,[93]]]]],19,[[121,[-1]],51,52],[51,52]],[[[108,[-1,-2,-3]],[78,[-1]]],[[94,[[53,[93]]]]],19,[[121,[-1]],51,52],[51,52]],[[[107,[-2,-3]],[67,[-1]]],[[94,[[53,[93]]]]],19,[[122,[-1]],51,52],[51,52]],[[[107,[-2,-3]],[67,[-1]]],[[94,[[53,[93]]]]],19,[[121,[-1]],51,52],[51,52]],[[[108,[-1,-2,-3]],[67,[-1]]],[[94,[[53,[93]]]]],19,[[122,[-1]],51,52],[51,52]],[[[108,[-1,-2,-3]],[67,[-1]]],[[94,[[53,[93]]]]],19,[[121,[-1]],51,52],[51,52]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[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]]],[]],[[[107,[-1,-2]]],123,[59,51,52],[51,52]],[[[108,[-1,-2,-3]]],123,19,[[58,[-1]],51,52],[51,52]],[109,123],[[-1,-2],[[107,[-1,-2]]],[],[]],[[-2,-3],[[115,[[108,[-1,-2,-3]]]]],19,[[58,[-1]],[122,[-1]],[120,[-1]],61],[51,52]],[[113,-1],[[115,[[114,[-2,-1]]]]],[51,52],19],[[113,-1],[[115,[[108,[-2,[116,[-2]],-1]]]]],[51,52],19],[[117,-1],[[115,[[114,[-2,-1]]]]],[51,52],19],[[117,-1],[[115,[[108,[-2,[116,[-2]],-1]]]]],[51,52],19],[-1,[[53,[124]]],[]],[-1,[[53,[124]]],[]],[-1,[[53,[124]]],[]],[-1,[[94,[[53,[93]]]]],[]],[[[107,[-1,-2]]],[[94,[[53,[93]]]]],[61,51],51],[[[108,[-1,-2,-3]]],[[94,[[53,[93]]]]],19,[61,51,52],[51,52]],[[[114,[-1,-2]]],[[115,[2]]],19,[51,52]],[[[108,[-1,[116,[-1]],-2]]],[[115,[2]]],19,[51,52]],0,0,[[[108,[-1,-2,-3]]],[[0,[-1,-2]]],19,[],[]],[[[108,[-1,-2,-3]]],[[0,[-1,-2]]],19,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[108,[-1,111,-2]]],[[126,[125]]],19,[]],[-1,[[26,[[105,[-2,-3]],[127,[-2]]]]],[],[],106],[-1,[[26,[[105,[-2,-3]],[127,[-2]]]]],[],[],106],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[[-1,[128,[-2]]],[[94,[[53,[93]]]]],[],[]],[[-1,[128,[-2]]],[[94,[[53,[93]]]]],[],[]],[[-1,[128,[-2]]],[[94,[[53,[93]]]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,[[[129,[-1,-2]]],[[94,[[53,[93]]]]],19,[51,52]],[[110,-1],[[26,[[129,[-2,-1]],112]]],[51,52],19],0,0,[[[129,[-1,-2]]],[[126,[125]]],19,[]],0,0,0,0,[[-1,[77,[-2]]],[[94,[[53,[93]]]]],[],[]],[[-1,-2],[[94,[[53,[93]]]]],[],[[95,[24]],51]],[[-1,[96,[-2]]],[[94,[[53,[93]]]]],[],[]],[[-1,[77,[-2]]],[[94,[[53,[93]]]]],[],[]],[[-1,[76,[-2]]],[[94,[[53,[93]]]]],[],[]],[[-1,-2],[[94,[[53,[93]]]]],[],[[95,[24]],51]],[[-1,[77,[-2]]],[[94,[[53,[93]]]]],[],[]],[[-1,-2],[[94,[[53,[93]]]]],[],[[95,[24]],51]],0,0,[-1,4,[]],[-1,4,[]],[[[116,[-1]]],[[94,[[53,[93]]]]],19],[-1,-2,[],[]],[-1,-2,[],[]],[[[116,[-1]]],[[94,[[53,[93]]]]],19],[[[116,[-1]],[102,[-1]]],[[94,[[53,[93]]]]],19],[113,[[26,[[116,[-1]],130]]],19],[117,[[26,[[116,[-1]],130]]],19],[24,-1,[]],[24,-1,[]],[24,2],[[[116,[-1]],30],33,19],[-1,-1,[]],[[[116,[-1]],[77,[-1]]],[[94,[[53,[93]]]]],19],[[[116,[-1]],-2],[[94,[[53,[93]]]]],19,[[95,[24]],51]],[[[116,[-1]],[96,[-1]]],[[94,[[53,[93]]]]],19],[[[116,[-1]],[77,[-1]]],[[94,[[53,[93]]]]],19],[[[116,[-1]],[76,[-1]]],[[94,[[53,[93]]]]],19],[[[116,[-1]],-2],[[94,[[53,[93]]]]],19,[[95,[24]],51]],[[[116,[-1]],[77,[-1]]],[[94,[[53,[93]]]]],19],[[[116,[-1]],-2],[[94,[[53,[93]]]]],19,[[95,[24]],51]],[[[116,[-1]],[102,[-1]],[9,[24]]],[[94,[[53,[93]]]]],19],[[],24],[[[116,[-1]],[78,[-1]]],[[94,[[53,[93]]]]],19],[[[116,[-1]],[67,[-1]]],[[94,[[53,[93]]]]],19],[[[116,[-1]],[67,[-1]]],[[94,[[53,[93]]]]],19],[-1,-2,[],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[113,[[26,[[116,[-1]],130]]],19],[117,[[26,[[116,[-1]],130]]],19],[[[116,[-1]]],[[94,[[53,[93]]]]],19],[[[116,[-1]]],[[26,[2,130]]],19],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,65,[]],[-1,-2,[],[]],0,0,0,0,0,0,[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[131,[[9,[132]]]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[112,5],[112,5],[112,133],[111,[[94,[[53,[93]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[112,134],[131,22],[-1,[[94,[[53,[93]]]]],[]],[125,[[94,[[53,[93]]]]]],[111,[[94,[[53,[93]]]]]],[131,131],[110,110],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[131,131],80],[111,[[94,[[53,[93]]]]]],[[-1,-2],80,[],[]],[[110,-1],[[26,[[129,[-2,-1]],112]]],[51,52],19],[110,[[26,[111,112]]]],[[112,-1],112,[50,51,52]],[[111,[102,[-1]]],[[94,[[53,[93]]]]],19],[[110,25],110],[[],110],[[],[[46,[131]]]],[112],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[112],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[112,[[26,[-1,112]]],[50,32,51,52]],[112,[[9,[-1]]],[50,32,51,52]],[112,[[9,[-1]]],[50,32,51,52]],[24,2],[112,2],[24,2],[24,2],[24,2],[24,2],[111,2],[[131,131],28],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[125,-1,-2],[[126,[22]]],[41,135],136],[[125,-1,-2],[[126,[22]]],[41,135],136],[[125,-1,-2],[[126,[22]]],[41,135],[136,18]],[[125,-1,-2],[[126,[2]]],[41,135],136],[[125,-1,-2],[[126,[2]]],[41,135],[136,18]],[[112,30],[[26,[2,31]]]],[[112,30],[[26,[2,31]]]],[[131,30],[[26,[2,31]]]],[[131,30],[[26,[2,31]]]],[[110,30],33],[[111,30],33],[-1,112,[5,51,52]],[-1,-1,[]],[137,-1,[]],[-1,-1,[]],[-1,-1,[]],[138,110],[-1,-1,[]],[-1,-1,[]],[25,[[26,[110]]]],[[111,[77,[-1]]],[[94,[[53,[93]]]]],19],[[111,-1],[[94,[[53,[93]]]]],[[95,[24]],51]],[[111,[96,[-1]]],[[94,[[53,[93]]]]],19],[[111,[77,[-1]]],[[94,[[53,[93]]]]],19],[[111,[76,[-1]]],[[94,[[53,[93]]]]],19],[[111,-1],[[94,[[53,[93]]]]],[[95,[24]],51]],[[111,[77,[-1]]],[[94,[[53,[93]]]]],19],[[111,-1],[[94,[[53,[93]]]]],[[95,[24]],51]],[[111,[102,[-1]],[9,[24]]],[[94,[[53,[93]]]]],19],[[-1,-2],[[49,[-2,-3]]],[],[50,51,52],[]],[[-1,-2],[[49,[-2,-3]]],[],[50,51,52],[]],[[110,-1],110,[[15,[14]]]],0,0,[[],24],[[],24],[[],24],[[],24],[[],24],[[111,[78,[-1]]],[[94,[[53,[93]]]]],19],[[111,[67,[-1]]],[[94,[[53,[93]]]]],19],[[111,[67,[-1]]],[[94,[[53,[93]]]]],19],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[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]]],[]],[112,28],[[110,-1],110,136],[-1,112,[50,32,51,52]],[131,25],[-1,112,[5,51,52]],[110,110],[[131,131],[[9,[80]]]],[[110,25],110],[[110,139],110],0,[131,140],[[-1,-2,-3],[[94,[[53,[93]]]]],52,[41,135,52],[136,51]],[[-1,-2,-3],[[94,[[53,[93]]]]],52,[41,135,52],[136,51]],[[-1,-2],[[94,[[53,[93]]]]],52,[41,135,52]],[[-1,-2,-3],[[94,[[53,[93]]]]],52,[41,135,52],[136,51]],[[-1,-2],[[94,[[53,[93]]]]],52,[41,135,52]],[[-1,-2],[[94,[[53,[93]]]]],52,[41,135,52]],[110,110],[111,[[94,[[53,[93]]]]]],[112,5],[[110,-1],110,[[15,[14]]]],[131,[[9,[25]]]],[110,110],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,14,[]],[111,[[126,[125]]]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[[25,25],[[26,[131,141]]]],[[125,25,[142,[25]],-1,-2],[[126,[2]]],136,136],[[110,25],110],[131,143],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,[[-1,1],2,[]],[[-1,3],2,[]],[-1,4,[]],[-1,4,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[144,[-1,-2]]],[[144,[-1,-2]]],[],[]],[[-1,-2],2,[],[]],[[],[[144,[-1,-2]]],[],[]],[24,-1,[]],[24,-1,[]],[24,2],[[[144,[-1,-2]],30],33,[],[]],[-1,-1,[]],[[],24],[-1,-2,[],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],0,0,[[-1,-2],2,[],[]],[[-1,-2],[[0,[93,51]]],[],[]],[[[144,[-2,-3]],-2,-4,-5],2,[],[[145,[-1]]],146,[[147,[-1,-2]]],[136,51]],[-1,-2,[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,65,[]],[-1,-2,[],[]],0,0,0,0,[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[148,148],[149,149],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[],149],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,2],[24,2],[[-1,-2],9,[],[]],[[-1,-2],[[0,[93,51]]],[],[]],[[-1,-2],9,[],[]],[[148,150],[[9,[[84,[-1]]]]],19],[[148,151],[[9,[[67,[-1]]]]],19],[[-1,-2],9,[],[]],[[149,-2],9,[],[51,[145,[-1]]]],[[148,30],33],[[149,30],33],[-1,-1,[]],[-1,-1,[]],[[],24],[[],24],[-1,-2,[],[]],[-1,-2,[],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[152,148],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,65,[]],[-1,65,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[150,150],[151,151],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,2],[24,2],[[150,150],28],[[151,151],28],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[150,30],33],[[151,30],33],[-1,-1,[]],[-1,-1,[]],[24,151],[[-1,-2],22,[40,41],42],[[-1,-2],22,[40,41],42],[[150,-1],2,48],[[151,-1],2,48],[[],24],[[],24],[-1,-2,[],[]],[-1,-2,[],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,65,[]],[-1,65,[]],[-1,-2,[],[]],[-1,-2,[],[]],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,3],2,[]],[[-1,1],2,[]],[[153,24],2],[[154,155],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,[]],[156,[[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,[],[]],[156,[[9,[5]]]],[123,123],[153,153],[157,157],[154,154],[158,158],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[123,14,[9,[14]]],[[53,[159]]]],[[123,14,[9,[14]]],[[53,[160]]]],[[123,14,[9,[14]]],[[53,[161]]]],[[123,14],[[53,[162]]]],[[],123],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[156,25],[24,2],[24,2],[24,2],[24,2],[24,2],[24,2],[123,[[26,[14]]]],[[156,30],33],[[156,30],33],[[123,30],33],[[153,30],33],[[157,30],33],[[154,30],33],[[158,30],33],[163,156],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[153,24],[157,24],[158,14],[[123,25],[[26,[153,156]]]],[[123,25],[[26,[157,156]]]],[[123,25],[[26,[154,156]]]],[[123,25],[[26,[158,156]]]],[[123,-1],[[26,[123,156]]],136],[[-1,-2],[[49,[-2,-3]]],[],[50,51,52],[]],[-1,[],[]],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[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]]],[]],[154,155],[154,24],[[157,24],2],[[158,14],2],[156,[[9,[5]]]],[[123,14],[[53,[124]]]],[154,155],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[[157,164],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,[[-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,[]],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,5,[]],[6,6],[6,6],[35,[[9,[8]]]],[-1,[[94,[[53,[93]]]]],[]],[-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,[],[]],[165,35],[[[166,[-1,-2]]],35,[[15,[14]]],[[15,[16]]]],[35,[[9,[5]]]],[167,167],[168,168],[[[169,[-1]]],[[169,[-1]]],18],[165,165],[[[166,[-1,-2]]],[[166,[-1,-2]]],18,18],[35,35],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,[102,[-2]]],[[94,[[53,[93]]]]],[],[]],[[],170],[170,[[26,[[86,[-1,35]],87]]],[51,52,88]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[35,25],[-1,[[26,[35]]],27],[24,2],[24,2],[24,2],[24,2],[24,2],[24,2],[24,2],0,[165,[[26,[-1,35]]],[]],[[[166,[-1,-2]]],[[26,[-3,35]]],[[15,[14]]],[[15,[16]]],[]],[[167,30],33],[[168,30],33],[[[169,[-1]],30],33,32],[[165,30],33],[[[166,[-1,-2]],30],33,32,32],[[35,30],33],[[35,30],33],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[2,[14,16]]],35],[-1,-1,[]],[92,35],[37,[[26,[170,38]]]],[37,[[26,[170,38]]]],[[-1,[102,[-2]],[9,[24]]],[[94,[[53,[93]]]]],[],[]],[[],[[9,[47]]]],[[-1,-2],[[49,[-2,-3]]],[],[50,51,52],[]],[-1,[],[]],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[-1,[67,[-2]]],[[94,[[53,[93]]]]],[],[]],[-1,35,50],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[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]]],[]],[167,35],[168,35],[[[169,[-1]]],35,[[15,[14]]]],[165,35],[[[166,[-1,-2]]],35,[[15,[14]]],[[15,[16]]]],0,0,[[35,-1],26,64],[35,[[9,[5]]]],[35,16],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[[170,37],[[26,[2,38]]]],[[170,37],[[26,[2,38]]]],[-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,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,5,[]],[6,6],[6,6],[36,[[9,[8]]]],[-1,[[94,[[53,[93]]]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[36,[[9,[5]]]],[171,171],[36,36],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[171,171],80],[[-1,-2],80,[],[]],[-1,[[126,[123]]],[]],[-1,[[126,[123]]],[]],[[],171],[[],172],[172,[[26,[[86,[-1,36]],87]]],[51,52,88]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[36,25],[-1,[[26,[171]]],27],[-1,[[26,[36]]],27],[24,2],[24,2],[24,2],[[171,171],28],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],0,[[171,30],33],[[36,30],33],[[36,30],33],[-1,-1,[]],[-1,-1,[]],[14,36],[92,36],[-1,-1,[]],[37,[[26,[172,38]]]],[37,[[26,[172,38]]]],[[-1,-2],22,[40,41],42],[[],[[9,[47]]]],[[171,-1],2,48],[[-1,-2],[[49,[-2,-3]]],[],[50,51,52],[]],[-1,[],[]],[[],24],[[],24],[[],24],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[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]]],[]],0,[-1,[[94,[[53,[93]]]]],52],[-1,[[94,[[53,[93]]]]],52],[-1,123,[]],[[171,171],[[9,[80]]]],[-1,[[53,[124]]],[]],[[171,-1],26,64],[[36,-1],26,64],[36,[[9,[5]]]],[36,16],[-1,[[94,[[53,[93]]]]],52],[-1,[[94,[[53,[93]]]]],52],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],0,[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[[172,37],[[26,[2,38]]]],[[172,37],[[26,[2,38]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0],"c":[],"p":[[3,"Private",1974],[15,"tuple"],[3,"Private",1974],[8,"Any",1975],[8,"Error",1976],[3,"Command",1977],[4,"Error",0],[3,"Backtrace",1978],[4,"Option",1979],[4,"QueryError",0],[3,"NotFoundSnafu",0],[3,"MissingSnafu",0],[3,"Snafu",0],[3,"String",1980],[8,"Into",1981],[4,"StatusCode",1982],[3,"Leaf",0],[8,"Clone",1983],[8,"NodeType",1984],[3,"Commitment",1985],[8,"RngCore",1986],[15,"u64"],[3,"Options",0],[15,"usize"],[15,"str"],[4,"Result",1987],[8,"Deserializer",1988],[15,"bool"],[4,"BlockError",1989],[3,"Formatter",1990],[3,"Error",1990],[8,"Debug",1990],[6,"Result",1990],[4,"Error",284],[4,"Error",1634],[4,"Error",1853],[3,"ArgMatches",1991],[6,"Error",1992],[3,"StoredView",1993],[8,"Hash",1994],[8,"Sized",1995],[8,"BuildHasher",1994],[3,"QuorumData",1996],[3,"SuccessThreshold",1997],[3,"SimpleCertificate",1997],[3,"Vec",1998],[3,"Id",1999],[8,"Hasher",1994],[3,"IndentedSection",2000],[8,"Display",1990],[8,"Send",1995],[8,"Sync",1995],[3,"Box",2001],[3,"Arc",2002],[3,"Rc",2003],[3,"SystemContextHandle",2004],[8,"AvailabilityDataSource",284],[8,"NodeDataSource",1634],[8,"StatusDataSource",1853],[8,"UpdateDataSource",888],[8,"VersionedDataSource",888],[8,"NodeImplementation",1984],[8,"Serialize",2005],[8,"Serializer",2005],[3,"TypeId",1975],[3,"InconsistentLeafError",284],[3,"LeafQueryData",284],[6,"BlockHash",284],[3,"PayloadQueryData",284],[3,"TransactionQueryData",284],[3,"FetchLeafSnafu",284],[3,"FetchBlockSnafu",284],[3,"FetchTransactionSnafu",284],[3,"InvalidTransactionIndexSnafu",284],[3,"CustomSnafu",284],[4,"LeafId",284],[4,"BlockId",284],[3,"BlockQueryData",284],[3,"RequestSnafu",284],[4,"Ordering",2006],[4,"Fetch",284],[8,"ErrorCompat",2007],[8,"IntoError",2007],[6,"Payload",0],[3,"Options",284],[3,"Api",2008],[4,"ApiError",2008],[8,"ReadState",2009],[8,"Iterator",2010],[8,"PartialEq",2006],[6,"LeafHash",284],[4,"RequestError",2011],[8,"Future",2012],[3,"Pin",2013],[8,"RangeBounds",2014],[6,"TransactionHash",284],[6,"VidCommitment",1989],[6,"Header",0],[8,"FnOnce",2015],[6,"Metadata",0],[6,"QuorumCertificate",1997],[6,"SignatureKey",0],[6,"TransactionIndex",284],[6,"Transaction",0],[3,"BitSlice",2016],[8,"BitOrder",2017],[3,"ExtensibleDataSource",888],[3,"FetchingDataSource",888],[3,"MetricsDataSource",888],[3,"Config",1102],[3,"SqlStorage",1102],[3,"Error",1102],[3,"Path",2018],[6,"FileSystemDataSource",888],[6,"Result",2019],[3,"FileSystemStorage",1062],[3,"AtomicStoreLoader",2020],[15,"char"],[8,"FromIterator",2021],[8,"AvailabilityStorage",1049],[8,"UpdateAvailabilityData",284],[8,"UpdateNodeData",1634],[3,"PrometheusMetrics",1455],[8,"Metrics",2022],[3,"Transaction",1102],[6,"QueryResult",0],[4,"BitSpanError",2023],[3,"Event",2024],[6,"SqlDataSource",1038],[4,"PersistenceError",2025],[3,"Migration",1102],[3,"OffsetDateTime",2026],[3,"Backtrace",2027],[3,"Chain",2019],[8,"ToStatement",2028],[8,"IntoIterator",2021],[15,"never"],[3,"Config",2029],[15,"u16"],[4,"Type",2030],[3,"Error",2031],[15,"array"],[15,"u32"],[3,"Fetcher",1297],[8,"Request",1390],[8,"Callback",1297],[8,"Provider",1331],[3,"QueryServiceProvider",1331],[3,"NoFetching",1331],[3,"PayloadRequest",1390],[3,"LeafRequest",1390],[3,"Url",2032],[3,"Counter",1455],[3,"Histogram",1455],[15,"f64"],[4,"MetricsError",1455],[3,"Gauge",1455],[3,"Label",1455],[8,"Counter",2022],[8,"Gauge",2022],[8,"Histogram",2022],[8,"Label",2022],[4,"Error",2033],[15,"i64"],[3,"InvalidSignatureKeySnafu",1634],[3,"CustomSnafu",1634],[3,"RequestSnafu",1634],[3,"QuerySnafu",1634],[3,"QueryProposalsSnafu",1634],[3,"Options",1634],[3,"MempoolQueryData",1853],[3,"Options",1853],[8,"Resolvable",0],[13,"Custom",278],[13,"Availability",278],[13,"Node",278],[13,"Status",278],[13,"Error",283],[8,"QueryablePayload",284],[13,"InvalidTransactionIndex",880],[13,"Custom",880],[13,"FetchLeaf",880],[13,"FetchBlock",880],[13,"FetchTransaction",880],[13,"Request",880],[8,"Query",1102],[8,"LocalCallback",1297],[8,"LocalProvider",1331],[13,"NoSuchMetric",1630],[13,"NoSuchSubgroup",1630],[13,"Prometheus",1630],[13,"Custom",1847],[13,"QueryProposals",1847],[13,"Request",1847],[13,"Query",1847],[8,"UpdateStatusData",1853],[13,"Internal",1972],[13,"Request",1972]],"b":[[134,"impl-Display-for-Leaf%3CTYPES%3E"],[135,"impl-Debug-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"],[146,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[147,"impl-From%3CError%3E-for-Error"],[148,"impl-From%3CError%3E-for-Error"],[570,"impl-Display-for-LeafId%3CTypes%3E"],[571,"impl-Debug-for-LeafId%3CTypes%3E"],[572,"impl-Debug-for-BlockId%3CTypes%3E"],[573,"impl-Display-for-BlockId%3CTypes%3E"],[575,"impl-Display-for-InconsistentLeafError%3CTypes%3E"],[576,"impl-Debug-for-InconsistentLeafError%3CTypes%3E"],[586,"impl-Debug-for-Error"],[587,"impl-Display-for-Error"],[589,"impl-From%3Cusize%3E-for-LeafId%3CTypes%3E"],[591,"impl-From%3CCommitment%3CLeaf%3CTypes%3E%3E%3E-for-LeafId%3CTypes%3E"],[592,"impl-From%3CCommitment%3C%3CTypes+as+NodeType%3E::BlockHeader%3E%3E-for-BlockId%3CTypes%3E"],[594,"impl-From%3Cusize%3E-for-BlockId%3CTypes%3E"],[608,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[609,"impl-From%3CRequestError%3E-for-Error"],[912,"impl-NodeDataSource%3CTypes%3E-for-ExtensibleDataSource%3CD,+U%3E"],[913,"impl-StatusDataSource-for-ExtensibleDataSource%3CD,+U%3E"],[914,"impl-NodeDataSource%3CTypes%3E-for-FetchingDataSource%3CTypes,+S,+P%3E"],[915,"impl-StatusDataSource-for-FetchingDataSource%3CTypes,+S,+P%3E"],[980,"impl-UpdateNodeData%3CTypes%3E-for-ExtensibleDataSource%3CD,+U%3E"],[981,"impl-UpdateAvailabilityData%3CTypes%3E-for-ExtensibleDataSource%3CD,+U%3E"],[982,"impl-UpdateNodeData%3CTypes%3E-for-FetchingDataSource%3CTypes,+S,+P%3E"],[983,"impl-UpdateAvailabilityData%3CTypes%3E-for-FetchingDataSource%3CTypes,+S,+P%3E"],[1088,"impl-UpdateAvailabilityData%3CTypes%3E-for-FileSystemStorage%3CTypes%3E"],[1089,"impl-UpdateNodeData%3CTypes%3E-for-FileSystemStorage%3CTypes%3E"],[1123,"impl-AsRef%3Cdyn+Error%3E-for-Error"],[1124,"impl-AsRef%3Cdyn+Error+%2B+Send+%2B+Sync%3E-for-Error"],[1188,"impl-Debug-for-Error"],[1189,"impl-Display-for-Error"],[1190,"impl-Debug-for-Migration"],[1191,"impl-Display-for-Migration"],[1223,"impl-UpdateNodeData%3CTypes%3E-for-SqlStorage"],[1224,"impl-UpdateAvailabilityData%3CTypes%3E-for-SqlStorage"],[1361,"impl-Provider%3CTypes,+PayloadRequest%3E-for-QueryServiceProvider"],[1362,"impl-Provider%3CTypes,+LeafRequest%3E-for-QueryServiceProvider"],[1538,"impl-Debug-for-MetricsError"],[1539,"impl-Display-for-MetricsError"],[1745,"impl-Debug-for-Error"],[1746,"impl-Display-for-Error"],[1753,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[1755,"impl-From%3CRequestError%3E-for-Error"],[1913,"impl-Debug-for-Error"],[1914,"impl-Display-for-Error"],[1917,"impl-From%3CString%3E-for-Error"],[1918,"impl-From%3CRequestError%3E-for-Error"]]}\ +"hotshot_query_service":{"doc":"The HotShot Query Service is a minimal, generic query …","t":"NNNENGDGNDNNDNDGEGIGDNGLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLAMLLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLOLLLLLLLOLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMAAMMMMMFLLLLLALLMLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLMLLLLLLLMMMMMMIGEDQNDEQENDNDNDNNQDNDQGEDQNNDNDQNINNDGGGGQDILLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKKKLLKKKKLLLLLLLLLLLLLLLLLMLLMLLLLLLLLLLLLLLLLKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLMKLLMLLLLLLLLLLLLLLLLLLMLMMMLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMQDDGDCIILLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLAALLLLLLLLLLLLLLLLLKLLLLLLCDDCGCLLOCLICCAKKKKKKKKADLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDIDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLOOLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLCLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLIDICCLLLLLLLLLLLLLLLLLLLAAKKLLLLLLLDDIDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDIQLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDDENNNDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMNDEQNDCIDNNDDNDILLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLFLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMENDDNIILLLLMLLLLLLLLLLKLLLLLLLLLLLLLLLLLFLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLKLKLLLLLLLLLMLLLLLLLLLLLLLLMM","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_rejected","get_state","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","rejected","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","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","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","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_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_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_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_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","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","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","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_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","header","header","header","header","header","header","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","insert_block","insert_leaf","internal","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_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_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","partial_cmp","partial_cmp","payload","payload_hash","payload_hash","proof","proof","proposer","qc","qc_leaf","resolve","resource","resource","resource","serialize","serialize","serialize","serialize","serialize","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_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_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","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","with_context","height","index","message","resource","resource","resource","source","status","Error","ExtensibleDataSource","FetchingDataSource","FileSystemDataSource","MetricsDataSource","SqlDataSource","UpdateDataSource","VersionedDataSource","__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","as_bits","as_mut","as_mut_bits","as_ref","block_height","block_height","block_height","block_height","block_height","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","commit","commit","commit","connect","count_proposals","count_proposals","create","create","create_with_store","create_with_store","default","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","encode_hex","encode_hex_upper","fmt","fmt","fmt","from","from","from","get_block","get_block","get_block_range","get_block_range","get_block_with_transaction","get_block_with_transaction","get_leaf","get_leaf","get_leaf_range","get_leaf_range","get_payload","get_payload","get_payload_range","get_payload_range","get_proposals","get_proposals","init","init","init","inner","inner_mut","insert_block","insert_block","insert_leaf","insert_leaf","insert_leaf","insert_leaf","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","metrics","metrics","metrics","new","new","open","open","open_with_store","open_with_store","populate_metrics","populate_metrics","populate_metrics","revert","revert","revert","skip_version","skip_version","sql","storage","storage","storage_mut","to_owned","to_owned","to_owned","transaction","try_as_bits","try_as_mut_bits","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update","update","update","vzip","vzip","vzip","with_retry_delay","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","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","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","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","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","api_path","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","augment_args","augment_args_for_update","backtrace","block_height","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","build","cause","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","count_proposals","default","define_api","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","description","deserialize","drop","drop","drop","drop","drop","drop","drop","extensions","fail","fail","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from_arg_matches","from_arg_matches_mut","get_proposals","group_id","header","in_current_span","init","init","init","init","init","init","init","insert_leaf","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","into_error","into_error","message","proposer","serialize","source","status","status","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_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","update_from_arg_matches","update_from_arg_matches_mut","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"],"q":[[0,"hotshot_query_service"],[278,"hotshot_query_service::Error"],[283,"hotshot_query_service::QueryError"],[284,"hotshot_query_service::availability"],[880,"hotshot_query_service::availability::Error"],[888,"hotshot_query_service::data_source"],[1039,"hotshot_query_service::data_source::sql"],[1050,"hotshot_query_service::data_source::storage"],[1063,"hotshot_query_service::data_source::storage::fs"],[1103,"hotshot_query_service::data_source::storage::sql"],[1298,"hotshot_query_service::fetching"],[1333,"hotshot_query_service::fetching::provider"],[1418,"hotshot_query_service::fetching::request"],[1483,"hotshot_query_service::metrics"],[1658,"hotshot_query_service::metrics::MetricsError"],[1662,"hotshot_query_service::node"],[1875,"hotshot_query_service::node::Error"],[1881,"hotshot_query_service::status"],[2000,"hotshot_query_service::status::Error"],[2002,"dyn_clone::sealed"],[2003,"dyn_clone::sealed"],[2004,"core::error"],[2005,"clap_builder::builder::command"],[2006,"snafu::backtrace_shim"],[2007,"core::option"],[2008,"alloc::string"],[2009,"core::convert"],[2010,"tide_disco::status"],[2011,"core::clone"],[2012,"hotshot_types::traits::node_implementation"],[2013,"commit"],[2014,"rand_core"],[2015,"core::result"],[2016,"serde::de"],[2017,"hotshot_types::data"],[2018,"core::fmt"],[2019,"core::fmt"],[2020,"clap_builder"],[2021,"hotshot_types::traits::storage"],[2022,"core::hash"],[2023,"core::marker"],[2024,"core::hash"],[2025,"hotshot_types::simple_certificate"],[2026,"hotshot_types::simple_certificate"],[2027,"clap_builder::util::id"],[2028,"core::hash"],[2029,"core::fmt"],[2030,"alloc::sync"],[2031,"alloc::rc"],[2032,"hotshot::types::handle"],[2033,"hotshot_types::traits::node_implementation"],[2034,"serde::ser"],[2035,"snafu"],[2036,"snafu"],[2037,"tide_disco::api"],[2038,"core::iter::traits::iterator"],[2039,"core::cmp"],[2040,"core::future::future"],[2041,"core::pin"],[2042,"core::ops::range"],[2043,"hotshot_types::data"],[2044,"hotshot_types::simple_certificate"],[2045,"bitvec::order"],[2046,"std::path"],[2047,"anyhow"],[2048,"atomic_store::atomic_store"],[2049,"core::iter::traits::collect"],[2050,"hotshot_types::traits::metrics"],[2051,"bitvec::ptr::span"],[2052,"hotshot_types::event"],[2053,"core::time"],[2054,"atomic_store::error"],[2055,"time::offset_date_time"],[2056,"std::backtrace"],[2057,"anyhow"],[2058,"core::iter::traits::collect"],[2059,"refinery_core::runner"],[2060,"refinery_core::error"],[2061,"url"],[2062,"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.","Transactions rejected or invalidated by the application of …","The blockchain state after appending 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","Transactions that were marked for rejection while …","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 …","","","","","","","","","","","","","","","","","","","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).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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 …","","","","","","","","","","Wrapper to add extensibility to an existing data source.","The most basic kind of 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 …","","","Connect to a remote database.","","","Create a new FileSystemDataSource with storage at path.","Create a new FileSystemDataSource with storage at path.","Create a new FileSystemDataSource using a persistent …","Create a new FileSystemDataSource using a persistent …","","","","","","","","","","","","","","","","Returns the argument unchanged.","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).","Calls U::from(self).","","","","","","","","","","","","","","Create a data source with local storage and a remote data …","Open an existing FileSystemDataSource from storage at path.","Open an existing FileSystemDataSource from storage at path.","Open an existing FileSystemDataSource using a persistent …","Open an existing FileSystemDataSource using a persistent …","","","","Erase all oustanding modifications to the data.","","","Advance the version of the persistent store without …","Advance the version of the persistent store without …","","Persistent storage for data sources.","Obtain direct, read-only access to the underlying local …","Obtain direct, mutable access the underlying local storage.","","","","Access the transaction which is accumulating all …","","","","","","","","","","","","Update query state based on a new consensus event.","","","","","","","","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.","","","","","","","","","","","","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","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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.","","","","","","","","","","","","","","","","","","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,126,0,10,0,0,0,10,0,7,10,0,126,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,23,17,7,11,12,13,10,23,7,10,23,23,0,23,7,10,17,17,17,7,11,12,13,10,23,17,7,11,12,13,10,23,11,12,13,7,7,10,17,7,11,12,13,10,17,7,11,12,13,10,17,175,17,17,0,23,17,7,11,12,13,10,23,17,7,11,12,13,10,23,7,10,17,7,10,17,7,11,12,13,10,23,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,23,23,23,17,17,17,17,17,17,17,17,17,17,17,17,17,23,17,17,7,10,7,10,0,17,7,11,12,13,10,23,0,7,17,7,11,12,13,10,23,17,7,11,12,13,10,23,17,7,11,12,13,10,23,17,7,11,12,13,10,23,11,12,13,17,13,0,0,23,17,23,17,17,0,17,7,10,7,10,0,7,10,23,17,7,11,12,13,10,17,7,10,17,7,11,12,13,10,23,17,7,11,12,13,10,23,175,17,17,7,11,12,13,10,23,23,23,17,17,7,11,12,13,10,23,176,177,178,179,176,180,0,0,0,0,57,35,0,0,121,0,35,0,35,0,35,0,76,77,181,0,35,0,181,0,0,0,57,76,77,0,77,0,57,81,0,81,35,0,0,0,0,0,181,0,0,76,76,77,77,67,67,66,66,78,78,69,69,70,70,79,79,71,71,72,72,73,73,74,74,75,75,35,35,85,81,76,77,67,66,78,69,70,85,79,71,72,73,74,75,35,81,76,77,67,66,78,69,70,85,79,71,72,73,74,75,35,66,35,85,85,66,35,67,69,70,81,76,77,67,66,78,69,70,85,79,71,72,73,74,75,35,81,76,77,67,66,78,69,70,85,79,71,72,73,74,75,35,71,72,73,74,75,181,181,66,35,76,77,67,66,78,69,70,79,71,72,73,74,75,35,76,77,67,66,78,69,70,79,71,72,73,74,75,35,76,77,76,77,81,69,85,0,81,76,77,67,66,78,69,70,85,79,71,72,73,74,75,35,81,76,77,67,66,78,69,70,85,79,71,72,73,74,75,35,66,35,67,78,69,70,35,81,76,77,67,66,78,69,70,85,79,71,72,73,74,75,35,181,181,78,76,77,67,78,69,70,76,76,76,76,77,77,77,77,67,67,67,67,78,78,78,78,69,69,69,69,70,70,70,70,85,71,72,73,74,75,76,76,77,77,67,66,66,78,69,70,79,71,72,73,74,75,35,35,81,76,76,76,77,77,77,67,66,78,69,69,70,85,79,71,72,73,74,75,35,35,35,85,85,67,78,57,57,57,76,77,57,57,57,57,85,76,77,67,78,69,70,76,77,67,66,78,35,67,78,69,70,74,66,35,74,81,76,77,67,66,78,69,70,85,79,71,72,73,74,75,35,121,121,35,81,76,77,67,66,78,69,70,85,79,71,72,73,74,75,35,81,76,77,67,66,78,69,70,85,79,71,72,73,74,75,35,76,77,67,66,78,69,70,85,79,71,72,73,74,75,35,81,76,77,67,66,78,69,70,85,79,71,72,73,74,75,35,79,71,72,73,74,75,81,181,181,78,181,67,66,181,78,81,75,78,67,78,181,181,181,181,181,181,76,77,78,67,78,181,181,67,67,66,81,71,72,73,67,78,69,70,35,78,69,66,35,35,75,57,57,57,57,57,57,76,77,67,66,78,69,70,79,71,72,73,74,75,35,76,77,66,35,181,181,78,70,181,181,78,181,181,181,81,76,77,67,66,78,69,70,85,79,71,72,73,74,75,35,81,76,77,67,66,78,69,70,85,79,71,72,73,74,75,35,81,81,76,77,67,66,78,69,70,85,79,71,72,73,74,75,35,85,85,81,76,77,67,66,78,69,70,85,79,71,72,73,74,75,35,81,182,182,183,184,185,186,187,183,61,0,0,0,0,0,0,0,107,107,108,108,109,109,107,108,109,107,108,109,107,107,107,107,107,107,108,108,109,107,108,109,107,108,109,107,108,109,107,108,109,61,107,108,108,107,108,114,108,114,108,109,107,108,109,107,108,109,107,108,109,107,107,107,108,109,107,108,109,107,108,107,108,107,108,107,108,107,108,107,108,107,108,107,108,107,108,109,107,107,107,108,107,107,108,108,107,108,109,107,108,109,107,108,109,107,108,109,107,108,109,107,108,114,108,114,108,107,108,109,61,107,108,114,108,0,0,108,108,107,108,109,108,107,107,107,108,109,107,108,109,107,108,109,60,107,108,107,108,109,108,0,0,0,0,0,0,130,130,0,0,130,0,0,0,0,120,120,120,120,120,120,120,120,0,0,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,0,0,0,0,0,0,132,132,110,110,132,112,132,125,110,111,112,132,125,110,111,112,112,112,111,112,132,125,110,111,112,132,125,110,111,112,132,188,125,111,132,110,132,110,132,111,132,110,111,112,111,110,110,0,112,112,132,125,110,111,112,112,132,125,110,111,112,112,112,112,112,132,125,110,111,111,132,132,132,132,132,125,125,125,125,125,112,112,132,132,110,111,112,112,112,132,125,110,110,111,110,111,111,111,111,111,111,111,111,111,112,132,110,0,0,112,132,125,110,111,111,111,111,112,132,125,110,111,112,132,125,110,111,112,132,125,110,111,112,132,125,110,111,112,110,112,132,112,110,132,110,110,0,132,188,188,188,188,188,188,110,111,112,110,132,110,132,110,112,132,111,112,132,125,110,111,112,132,125,110,111,112,132,125,110,111,132,125,110,132,112,132,125,110,111,0,0,0,0,0,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,0,0,189,147,145,145,145,145,145,145,145,0,0,0,0,149,149,150,150,151,151,149,150,151,149,150,151,149,150,151,149,150,151,149,150,151,149,150,151,149,151,149,150,151,149,150,151,149,150,151,148,149,149,150,150,151,149,150,151,149,150,151,149,150,151,149,150,151,149,150,151,149,150,151,149,150,151,150,149,150,151,149,150,151,149,150,151,149,150,151,149,150,151,149,149,149,0,0,0,146,153,153,152,152,153,152,153,152,153,152,153,152,153,152,153,152,153,152,153,152,153,152,153,152,153,153,153,153,152,152,152,152,153,152,153,152,152,153,152,153,152,153,152,153,152,153,152,153,152,153,152,153,152,153,152,153,152,153,152,153,152,0,0,0,0,0,158,158,158,0,123,123,155,155,159,159,156,156,160,160,155,156,158,123,155,159,156,160,158,123,155,159,156,160,158,158,158,123,155,159,156,160,158,123,155,159,156,160,158,123,155,159,156,160,123,155,159,156,160,123,123,123,123,123,158,123,155,159,156,160,158,123,155,159,156,160,158,158,123,155,159,156,160,123,158,158,123,155,159,156,160,158,158,123,155,159,156,160,155,159,160,123,123,123,123,123,158,158,158,123,155,159,156,160,158,123,155,159,156,160,158,123,155,159,156,160,158,123,155,159,156,160,158,123,155,159,156,160,156,156,159,160,158,123,156,123,155,159,156,160,158,158,123,155,159,156,160,158,123,155,159,156,160,158,123,155,159,156,160,159,158,123,155,159,156,160,190,190,191,192,34,0,0,122,34,0,0,0,0,34,34,0,0,34,0,0,169,169,170,170,171,171,167,167,168,168,34,34,172,172,169,170,171,167,168,34,172,169,170,171,167,168,34,34,172,172,34,58,172,169,170,171,167,168,34,172,169,170,171,167,168,34,167,168,34,169,170,171,167,168,34,169,170,171,167,168,34,58,172,0,172,169,170,171,167,168,34,172,169,170,171,167,168,34,34,34,172,169,170,171,167,168,34,172,167,168,169,170,171,167,168,34,34,172,169,170,171,167,168,34,34,34,172,172,58,172,34,34,172,169,170,171,167,168,34,122,34,172,169,170,171,167,168,34,172,169,170,171,167,168,34,172,169,170,171,167,168,34,172,169,170,171,167,168,34,169,170,171,167,168,168,171,34,34,34,168,169,170,171,167,168,34,34,172,169,170,171,167,168,34,172,169,170,171,167,168,34,172,169,170,171,167,168,34,172,172,172,169,170,171,167,168,34,193,194,195,196,194,193,0,36,0,0,36,0,0,173,173,36,36,174,173,174,36,173,174,36,36,174,174,36,59,173,174,36,173,174,36,36,173,36,173,36,173,173,59,59,173,174,0,173,174,36,173,174,36,36,173,36,173,174,36,173,173,173,173,173,174,173,36,36,173,174,36,36,36,174,174,173,174,173,36,36,173,174,36,173,174,36,173,174,36,173,174,36,173,174,36,173,59,59,59,173,197,173,36,36,36,59,59,173,36,36,173,173,174,36,173,174,36,173,174,36,174,174,173,174,36,198,199],"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,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],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,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],[-1,[[20,[-2]]],[],[]],[-1,[[20,[-2]]],[],[]],[[[17,[-1]],21,22],[],19],0,[[],23],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[7,25],[10,25],[-1,[[26,[[17,[-2]]]]],27,19],[-1,[[26,[7]]],27],[-1,[[26,[10]]],27],[24,2],[24,2],[24,2],[24,2],[24,2],[24,2],[24,2],[[[17,[-1]],[17,[-1]]],28,19],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[11,[[26,[-1,10]]],[]],[12,[[26,[-1,10]]],[]],[[[13,[-1]]],[[26,[-2,10]]],[[15,[14]]],[]],0,[[[17,[-1]],24],[[26,[2,29]]],19],[[[17,[-1]]],2,19],[[[17,[-1]],30],[[26,[2,31]]],19],[[[17,[-1]],30],[[26,[2,31]]],[32,19]],[[7,30],33],[[7,30],33],[[11,30],33],[[12,30],33],[[[13,[-1]],30],33,32],[[10,30],33],[[10,30],33],[-1,-1,[]],[34,7],[[[2,[14,16]]],7],[35,7],[36,7],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[37,[[26,[23,38]]]],[37,[[26,[23,38]]]],[[[39,[-1]]],[[17,[-1]]],19],[[],[[17,[-1]]],19],[[[17,[-1]]],[],19],[[[17,[-1]]],9,19],[[-1,-2],22,[40,41],42],[[[17,[-1]]],22,19],[[[17,[-1]]],[[45,[-1,[43,[-1]],44]]],19],[[[17,[-1]]],[[20,[[17,[-1]]]]],19],[[[17,[-1]]],[],19],[[[17,[-1]]],[],19],[[[17,[-1]]],46,19],[[[17,[-1]]],2,19],[[[17,[-1]]],[],19],[[],[[9,[47]]]],[[[17,[-1]],-2],2,19,48],[[-1,-2],[[49,[-2,-3]]],[],[50,51,52],[]],[[-1,-2],[[49,[-2,-3]]],[],[50,51,52],[]],[[-1,-2],[[49,[-2,-3]]],[],[50,51,52],[]],[-1,[],[]],[-1,[],[]],0,[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],0,[-1,7,50],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[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]]],[]],[11,10],[12,10],[[[13,[-1]]],10,[[15,[14]]]],0,0,0,0,0,0,0,0,0,[[23,-2,[56,[-1,-3]]],[[26,[2,7]]],19,[[57,[-1]],[58,[-1]],59,[60,[-1]],61,51,52],[[62,[-1]]]],[[[17,[-1]],-2],26,[19,63],64],[[7,-1],26,64],[[10,-1],26,64],[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,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2,-1]]],[],[]],[-1,[[26,[-2,-2]]],[],[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[[23,37],[[26,[2,38]]]],[[23,37],[[26,[2,38]]]],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,[[-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,[]],[[-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,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,5,[]],[-1,5,[]],[6,6],[6,6],[[[66,[-1]]],[[9,[8]]],19],[35,[[9,[8]]]],[[[67,[-1]]],[[68,[-1]]],19],[[[69,[-1]]],[[68,[-1]]],19],[[[70,[-1]]],[[68,[-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,[],[]],[[[71,[-1]]],35,[[15,[14]]]],[[[72,[-1]]],35,[[15,[14]]]],[[[73,[-1]]],35,[[15,[14]]]],[[[74,[-1,-2]]],35,[[15,[22]]],[[15,[22]]]],[[[75,[-1,-2]]],35,[[15,[14]]],[[15,[16]]]],[[-1,20],9,[]],[[-1,20],9,[]],[[[66,[-1]]],[[9,[5]]],19],[35,[[9,[5]]]],[[[76,[-1]]],[[76,[-1]]],19],[[[77,[-1]]],[[77,[-1]]],19],[[[67,[-1]]],[[67,[-1]]],[18,19]],[[[66,[-1]]],[[66,[-1]]],[18,19]],[[[78,[-1]]],[[78,[-1]]],[18,19]],[[[69,[-1]]],[[69,[-1]]],[18,19]],[[[70,[-1]]],[[70,[-1]]],[18,19]],[79,79],[[[71,[-1]]],[[71,[-1]]],18],[[[72,[-1]]],[[72,[-1]]],18],[[[73,[-1]]],[[73,[-1]]],18],[[[74,[-1,-2]]],[[74,[-1,-2]]],18,18],[[[75,[-1,-2]]],[[75,[-1,-2]]],18,18],[35,35],[[-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,[],[]],[[[76,[-1]],[76,[-1]]],80,19],[[[77,[-1]],[77,[-1]]],80,19],[[-1,-2],80,[],[]],[[-1,-2],80,[],[]],[[[81,[-1]],-3],[[26,[-1,-2]]],[],[5,82],[[83,[-2]]]],[[[69,[-1]]],[[84,[-1]]],19],[[],85],[85,[[26,[[86,[-1,35]],87]]],[51,52,88]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[[[66,[-1]]],25,19],[35,25],[-1,[[26,[[67,[-2]]]]],27,19],[-1,[[26,[[78,[-2]]]]],27,19],[-1,[[26,[[69,[-2]]]]],27,19],[-1,[[26,[[70,[-2]]]]],27,19],[-1,[[26,[35]]],27],[24,2],[24,2],[24,2],[24,2],[24,2],[24,2],[24,2],[24,2],[24,2],[24,2],[24,2],[24,2],[24,2],[24,2],[24,2],[24,2],[-1,[[53,[89]]],[]],[-1,[[53,[89]]],[]],[[[78,[-1]]],[[0,[89]]],19],[[[76,[-1]],[76,[-1]]],28,19],[[[77,[-1]],[77,[-1]]],28,19],[[[67,[-1]],[67,[-1]]],28,[90,19]],[[[78,[-1]],[78,[-1]]],28,[90,19]],[[[69,[-1]],[69,[-1]]],28,[90,19]],[[[70,[-1]],[70,[-1]]],28,[90,19]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],0,[[[71,[-1]]],[[26,[-2,35]]],[[15,[14]]],[]],[[[72,[-1]]],[[26,[-2,35]]],[[15,[14]]],[]],[[[73,[-1]]],[[26,[-2,35]]],[[15,[14]]],[]],[[[74,[-1,-2]]],[[26,[-3,35]]],[[15,[22]]],[[15,[22]]],[]],[[[75,[-1,-2]]],[[26,[-3,35]]],[[15,[14]]],[[15,[16]]],[]],[[[76,[-1]],30],33,19],[[[76,[-1]],30],33,19],[[[77,[-1]],30],33,19],[[[77,[-1]],30],33,19],[[[67,[-1]],30],33,[32,19]],[[[66,[-1]],30],33,19],[[[66,[-1]],30],33,[32,19]],[[[78,[-1]],30],33,[32,19]],[[[69,[-1]],30],33,[32,19]],[[[70,[-1]],30],33,[32,19]],[[79,30],33],[[[71,[-1]],30],33,32],[[[72,[-1]],30],33,32],[[[73,[-1]],30],33,32],[[[74,[-1,-2]],30],33,32,32],[[[75,[-1,-2]],30],33,32,32],[[35,30],33],[[35,30],33],[-1,-1,[]],[24,[[76,[-1]]],19],[-1,-1,[]],[[[91,[-1]]],[[76,[-1]]],19],[24,[[77,[-1]]],19],[-1,-1,[]],[[[68,[-1]]],[[77,[-1]]],19],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[78,[-1]]],[[69,[-1]]],19],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[2,[14,16]]],35],[-1,-1,[]],[92,35],[37,[[26,[85,38]]]],[37,[[26,[85,38]]]],[[],[[67,[-1]]],19],[[],[[78,[-1]]],19],[[-1,-3],[[94,[[53,[93]]]]],[],[],[[15,[[77,[-2]]]],51,52]],[[-1,-2],[[94,[[53,[93]]]]],[],[[95,[24]],51]],[[-1,[96,[-2]]],[[94,[[53,[93]]]]],[],[]],[[-1,-2],22,[40,41],42],[[-1,-2],22,[40,41],42],[[-1,-3],[[94,[[53,[93]]]]],[],[],[[15,[[76,[-2]]]],51,52]],[[-1,-2],[[94,[[53,[93]]]]],[],[[95,[24]],51]],[[-1,-3],[[94,[[53,[93]]]]],[],[],[[15,[[77,[-2]]]],51,52]],[[-1,-2],[[94,[[53,[93]]]]],[],[[95,[24]],51]],[[],[[9,[47]]]],[[[76,[-1]],-2],2,19,48],[[[77,[-1]],-2],2,19,48],[[[67,[-1]]],[[91,[-1]]],19],[[[78,[-1]]],[[68,[-1]]],19],[[[69,[-1]]],97,19],[[[70,[-1]]],[[96,[-1]]],19],[[-1,-2],[[49,[-2,-3]]],[],[50,51,52],[]],[[-1,-2],[[49,[-2,-3]]],[],[50,51,52],[]],[[[67,[-1]]],[[98,[-1]]],19],[[-1,-2],[[49,[-2,-3]]],[],[50,51,52],[]],[[[78,[-1]]],[[98,[-1]]],19],[[-1,-2],[[49,[-2,-3]]],[],[50,51,52],[]],[[[67,[-1]]],22,19],[[[78,[-1]]],22,19],[[[69,[-1]]],22,19],[[[70,[-1]]],22,19],0,[-1,[],[]],[-1,[],[]],0,[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[-1,[78,[-2]]],[[94,[[53,[93]]]]],[],[]],[[-1,[67,[-2]]],[[94,[[53,[93]]]]],[],[]],[-1,35,50],[-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,[],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[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]]],[]],[79,35],[[[71,[-1]]],35,[[15,[14]]]],[[[72,[-1]]],35,[[15,[14]]]],[[[73,[-1]]],35,[[15,[14]]]],[[[74,[-1,-2]]],35,[[15,[22]]],[[15,[22]]]],[[[75,[-1,-2]]],35,[[15,[14]]],[[15,[16]]]],[[[81,[-1]]],[],51],[-1,28,[]],[-1,28,[]],[[[78,[-1]]],28,19],[-1,[],[]],[[[67,[-1]]],[[17,[-1]]],19],0,[-1,24,[]],[[[78,[-1]]],24,19],[[[81,[-1]],-2],[[81,[-3]]],[],[51,99],[]],0,[[[78,[-1]]],[[100,[-1]]],19],[[[17,[-1]],[101,[-1]]],[[26,[[67,[-1]],[66,[-1]]]]],19],[[[98,[-1]],[84,[-1]]],[[78,[-1]]],19],[[-1,24],9,[]],[[-1,24],9,[]],[[-1,24],9,[]],[[-1,24],9,[]],[[-1,24],[[9,[2]]],[]],[[-1,24],[[9,[2]]],[]],[[[76,[-1]],[76,[-1]]],[[9,[80]]],19],[[[77,[-1]],[77,[-1]]],[[9,[80]]],19],[[[78,[-1]]],[[84,[-1]]],19],[[[67,[-1]]],97,19],[[[78,[-1]]],97,19],[-1,9,[]],[-1,9,[]],[[[67,[-1]]],[[102,[-1]]],19],[[[67,[-1]]],[[101,[-1]]],19],0,[[[81,[-1]]],-1,51],0,0,0,[[[67,[-1]],-2],26,19,64],[[[78,[-1]],-2],26,19,64],[[[69,[-1]],-2],26,19,64],[[[70,[-1]],-2],26,19,64],[[35,-1],26,64],[[[78,[-1]]],22,19],[[[69,[-1]]],22,19],[[[66,[-1]]],[[9,[5]]],19],[35,[[9,[5]]]],[35,16],0,[[-1,24],[[94,[[53,[93]]]]],52],[[-1,24],[[94,[[53,[93]]]]],52],[[-1,24],[[94,[[53,[93]]]]],52],[[-1,24],[[94,[[53,[93]]]]],52],[[-1,24],[[94,[[53,[93]]]]],52],[[-1,24],[[94,[[53,[93]]]]],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,14,[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,9,[]],[-1,9,[]],[[[78,[-1]],[103,[-1]]],[[9,[[70,[-1]]]]],19],[[[70,[-1]]],[[104,[-1]]],19],[[-1,20],9,[]],[[-1,20],9,[]],[[[78,[-1]],[20,[[104,[-1]]]]],[[9,[[103,[-1]]]]],19],[[-1,20],[[9,[2]]],[]],[[-1,20],[[9,[2]]],[]],[-1,[[9,[2]]],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[[[81,[-1]]],[[26,[-1,[81,[-1]]]]],[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[[85,37],[[26,[2,38]]]],[[85,37],[[26,[2,38]]]],[-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,[],[]],[[[81,[-1]],-2],[[26,[-1,-3]]],[],99,[5,82]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[-1,3],2,[]],[[-1,1],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,[[105,[-2,-3]]],[],[],106],[[[107,[-1,-2]]],-2,[],[]],[-1,[[105,[-2,-3]]],[],[],106],[[[107,[-1,-2]]],-2,[],[]],[[[107,[-2,-3]]],[[94,[[53,[93]]]]],19,[[58,[-1]],51,52],[51,52]],[[[107,[-1,-2]]],[[94,[[53,[93]]]]],[59,51,52],[51,52]],[[[108,[-1,-2,-3]]],[[94,[[53,[93]]]]],19,[[58,[-1]],51,52],[51,52]],[[[108,[-1,-2,-3]]],[[94,[[53,[93]]]]],19,[[58,[-1]],51,52],[51,52]],[109,[[94,[[53,[93]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[107,[-1,-2]]],[[107,[-1,-2]]],18,18],[[[108,[-1,-2,-3]]],[[108,[-1,-2,-3]]],19,[],[]],[109,109],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[-1,[[94,[[53,[93]]]]],[]],[[[107,[-1,-2]]],[[94,[[53,[93]]]]],[61,51],51],[[[108,[-1,-2,-3]]],[[94,[[53,[93]]]]],19,[61,51,52],[51,52]],[[110,-1],[[26,[[108,[-2,111,-1]],112]]],[51,52],19],[[[107,[-2,-3]],[102,[-1]]],[[94,[[53,[93]]]]],19,[[58,[-1]],51,52],[51,52]],[[[108,[-1,-2,-3]],[102,[-1]]],[[94,[[53,[93]]]]],19,[[58,[-1]],51,52],[51,52]],[[113,-1],[[115,[[114,[-2,-1]]]]],[51,52],19],[[113,-1],[[115,[[108,[-2,[116,[-2]],-1]]]]],[51,52],19],[[117,-1],[[115,[[114,[-2,-1]]]]],[51,52],19],[[117,-1],[[115,[[108,[-2,[116,[-2]],-1]]]]],[51,52],19],[[],109],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,2],[24,2],[24,2],[-1,-2,[],[[119,[118]]]],[-1,-2,[],[[119,[118]]]],[[[107,[-1,-2]],30],33,32,32],[[[108,[-1,-2,-3]],30],33,19,32,32],[[109,30],33],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[107,[-2,-3]],-4],[[94,[[53,[93]]]]],19,[[57,[-1]],51,52],[51,52],[[15,[[77,[-1]]]],51,52]],[[[108,[-1,-2,-3]],-4],[[94,[[53,[93]]]]],19,[[120,[-1]]],[[0,[-1]]],[[15,[[77,[-1]]]],51,52]],[[[107,[-2,-3]],-4],[[94,[[53,[93]]]]],19,[[57,[-1]],51,52],[51,52],[[95,[24]],51]],[[[108,[-1,-2,-3]],-4],[[94,[[53,[93]]]]],19,[[120,[-1]]],[[0,[-1]]],[[95,[24]],51]],[[[107,[-2,-3]],[96,[-1]]],[[94,[[53,[93]]]]],19,[[57,[-1]],51,52],[51,52]],[[[108,[-1,-2,-3]],[96,[-1]]],[[94,[[53,[93]]]]],19,[[120,[-1]]],[[0,[-1]]]],[[[107,[-2,-3]],-4],[[94,[[53,[93]]]]],19,[[57,[-1]],51,52],[51,52],[[15,[[76,[-1]]]],51,52]],[[[108,[-1,-2,-3]],-4],[[94,[[53,[93]]]]],19,[[120,[-1]]],[[0,[-1]]],[[15,[[76,[-1]]]],51,52]],[[[107,[-2,-3]],-4],[[94,[[53,[93]]]]],19,[[57,[-1]],51,52],[51,52],[[95,[24]],51]],[[[108,[-1,-2,-3]],-4],[[94,[[53,[93]]]]],19,[[120,[-1]]],[[0,[-1]]],[[95,[24]],51]],[[[107,[-2,-3]],-4],[[94,[[53,[93]]]]],19,[[57,[-1]],51,52],[51,52],[[15,[[77,[-1]]]],51,52]],[[[108,[-1,-2,-3]],-4],[[94,[[53,[93]]]]],19,[[120,[-1]]],[[0,[-1]]],[[15,[[77,[-1]]]],51,52]],[[[107,[-2,-3]],-4],[[94,[[53,[93]]]]],19,[[57,[-1]],51,52],[51,52],[[95,[24]],51]],[[[108,[-1,-2,-3]],-4],[[94,[[53,[93]]]]],19,[[120,[-1]]],[[0,[-1]]],[[95,[24]],51]],[[[107,[-2,-3]],[102,[-1]],[9,[24]]],[[94,[[53,[93]]]]],19,[[58,[-1]],51,52],[51,52]],[[[108,[-1,-2,-3]],[102,[-1]],[9,[24]]],[[94,[[53,[93]]]]],19,[[58,[-1]],51,52],[51,52]],[[],24],[[],24],[[],24],[[[107,[-1,-2]]],-1,[],[]],[[[107,[-1,-2]]],-1,[],[]],[[[107,[-2,-3]],[78,[-1]]],[[94,[[53,[93]]]]],19,[[121,[-1]],51,52],[51,52]],[[[108,[-1,-2,-3]],[78,[-1]]],[[94,[[53,[93]]]]],19,[[121,[-1]],51,52],[51,52]],[[[107,[-2,-3]],[67,[-1]]],[[94,[[53,[93]]]]],19,[[121,[-1]],51,52],[51,52]],[[[107,[-2,-3]],[67,[-1]]],[[94,[[53,[93]]]]],19,[[122,[-1]],51,52],[51,52]],[[[108,[-1,-2,-3]],[67,[-1]]],[[94,[[53,[93]]]]],19,[[121,[-1]],51,52],[51,52]],[[[108,[-1,-2,-3]],[67,[-1]]],[[94,[[53,[93]]]]],19,[[122,[-1]],51,52],[51,52]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[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]]],[]],[[[107,[-1,-2]]],123,[59,51,52],[51,52]],[[[108,[-1,-2,-3]]],123,19,[[58,[-1]],51,52],[51,52]],[109,123],[[-1,-2],[[107,[-1,-2]]],[],[]],[[-2,-3],[[115,[[108,[-1,-2,-3]]]]],19,[[58,[-1]],[122,[-1]],[120,[-1]],61],[51,52]],[[113,-1],[[115,[[114,[-2,-1]]]]],[51,52],19],[[113,-1],[[115,[[108,[-2,[116,[-2]],-1]]]]],[51,52],19],[[117,-1],[[115,[[114,[-2,-1]]]]],[51,52],19],[[117,-1],[[115,[[108,[-2,[116,[-2]],-1]]]]],[51,52],19],[-1,[[53,[124]]],[]],[-1,[[53,[124]]],[]],[-1,[[53,[124]]],[]],[-1,[[94,[[53,[93]]]]],[]],[[[107,[-1,-2]]],[[94,[[53,[93]]]]],[61,51],51],[[[108,[-1,-2,-3]]],[[94,[[53,[93]]]]],19,[61,51,52],[51,52]],[[[114,[-1,-2]]],[[115,[2]]],19,[51,52]],[[[108,[-1,[116,[-1]],-2]]],[[115,[2]]],19,[51,52]],0,0,[[[108,[-1,-2,-3]]],[[0,[-1,-2]]],19,[],[]],[[[108,[-1,-2,-3]]],[[0,[-1,-2]]],19,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[108,[-1,111,-2]]],[[126,[125]]],19,[]],[-1,[[26,[[105,[-2,-3]],[127,[-2]]]]],[],[],106],[-1,[[26,[[105,[-2,-3]],[127,[-2]]]]],[],[],106],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[[-1,[128,[-2]]],[[94,[[53,[93]]]]],[],[]],[[-1,[128,[-2]]],[[94,[[53,[93]]]]],[],[]],[[-1,[128,[-2]]],[[94,[[53,[93]]]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-2,-3,[9,[129]]],[[115,[[108,[-1,-2,-3]]]]],19,[[58,[-1]],[122,[-1]],[120,[-1]],61],[51,52]],0,0,0,0,0,0,[[[130,[-1,-2]]],[[94,[[53,[93]]]]],19,[51,52]],[[110,-1],[[26,[[130,[-2,-1]],112]]],[51,52],19],0,0,[[[130,[-1,-2]]],[[126,[125]]],19,[]],0,0,0,0,[[-1,[77,[-2]]],[[94,[[53,[93]]]]],[],[]],[[-1,-2],[[94,[[53,[93]]]]],[],[[95,[24]],51]],[[-1,[96,[-2]]],[[94,[[53,[93]]]]],[],[]],[[-1,[77,[-2]]],[[94,[[53,[93]]]]],[],[]],[[-1,[76,[-2]]],[[94,[[53,[93]]]]],[],[]],[[-1,-2],[[94,[[53,[93]]]]],[],[[95,[24]],51]],[[-1,[77,[-2]]],[[94,[[53,[93]]]]],[],[]],[[-1,-2],[[94,[[53,[93]]]]],[],[[95,[24]],51]],0,0,[-1,4,[]],[-1,4,[]],[[[116,[-1]]],[[94,[[53,[93]]]]],19],[-1,-2,[],[]],[-1,-2,[],[]],[[[116,[-1]]],[[94,[[53,[93]]]]],19],[[[116,[-1]],[102,[-1]]],[[94,[[53,[93]]]]],19],[113,[[26,[[116,[-1]],131]]],19],[117,[[26,[[116,[-1]],131]]],19],[24,-1,[]],[24,-1,[]],[24,2],[[[116,[-1]],30],33,19],[-1,-1,[]],[[[116,[-1]],[77,[-1]]],[[94,[[53,[93]]]]],19],[[[116,[-1]],-2],[[94,[[53,[93]]]]],19,[[95,[24]],51]],[[[116,[-1]],[96,[-1]]],[[94,[[53,[93]]]]],19],[[[116,[-1]],[77,[-1]]],[[94,[[53,[93]]]]],19],[[[116,[-1]],[76,[-1]]],[[94,[[53,[93]]]]],19],[[[116,[-1]],-2],[[94,[[53,[93]]]]],19,[[95,[24]],51]],[[[116,[-1]],[77,[-1]]],[[94,[[53,[93]]]]],19],[[[116,[-1]],-2],[[94,[[53,[93]]]]],19,[[95,[24]],51]],[[[116,[-1]],[102,[-1]],[9,[24]]],[[94,[[53,[93]]]]],19],[[],24],[[[116,[-1]],[78,[-1]]],[[94,[[53,[93]]]]],19],[[[116,[-1]],[67,[-1]]],[[94,[[53,[93]]]]],19],[[[116,[-1]],[67,[-1]]],[[94,[[53,[93]]]]],19],[-1,-2,[],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[113,[[26,[[116,[-1]],131]]],19],[117,[[26,[[116,[-1]],131]]],19],[[[116,[-1]]],[[94,[[53,[93]]]]],19],[[[116,[-1]]],[[26,[2,131]]],19],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,65,[]],[-1,-2,[],[]],0,0,0,0,0,0,[[-1,3],2,[]],[[-1,1],2,[]],[[-1,3],2,[]],[[-1,1],2,[]],[132,[[9,[133]]]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[112,5],[112,5],[112,134],[111,[[94,[[53,[93]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[112,135],[132,22],[-1,[[94,[[53,[93]]]]],[]],[125,[[94,[[53,[93]]]]]],[111,[[94,[[53,[93]]]]]],[132,132],[110,110],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[132,132],80],[111,[[94,[[53,[93]]]]]],[[-1,-2],80,[],[]],[[110,-1],[[26,[[130,[-2,-1]],112]]],[51,52],19],[110,[[26,[111,112]]]],[[112,-1],112,[50,51,52]],[[111,[102,[-1]]],[[94,[[53,[93]]]]],19],[[110,25],110],[[],110],[[],[[46,[132]]]],[112],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[112],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[112,[[26,[-1,112]]],[50,32,51,52]],[112,[[9,[-1]]],[50,32,51,52]],[112,[[9,[-1]]],[50,32,51,52]],[24,2],[112,2],[24,2],[24,2],[24,2],[111,2],[24,2],[[132,132],28],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[125,-1,-2],[[126,[22]]],[41,136],137],[[125,-1,-2],[[126,[22]]],[41,136],137],[[125,-1,-2],[[126,[22]]],[41,136],[137,18]],[[125,-1,-2],[[126,[2]]],[41,136],137],[[125,-1,-2],[[126,[2]]],[41,136],[137,18]],[[112,30],[[26,[2,31]]]],[[112,30],[[26,[2,31]]]],[[132,30],[[26,[2,31]]]],[[132,30],[[26,[2,31]]]],[[110,30],33],[[111,30],33],[-1,-1,[]],[138,-1,[]],[-1,112,[5,51,52]],[-1,-1,[]],[-1,-1,[]],[139,110],[-1,-1,[]],[-1,-1,[]],[25,[[26,[110]]]],[[111,[77,[-1]]],[[94,[[53,[93]]]]],19],[[111,-1],[[94,[[53,[93]]]]],[[95,[24]],51]],[[111,[96,[-1]]],[[94,[[53,[93]]]]],19],[[111,[77,[-1]]],[[94,[[53,[93]]]]],19],[[111,[76,[-1]]],[[94,[[53,[93]]]]],19],[[111,-1],[[94,[[53,[93]]]]],[[95,[24]],51]],[[111,[77,[-1]]],[[94,[[53,[93]]]]],19],[[111,-1],[[94,[[53,[93]]]]],[[95,[24]],51]],[[111,[102,[-1]],[9,[24]]],[[94,[[53,[93]]]]],19],[[-1,-2],[[49,[-2,-3]]],[],[50,51,52],[]],[[-1,-2],[[49,[-2,-3]]],[],[50,51,52],[]],[[110,-1],110,[[15,[14]]]],0,0,[[],24],[[],24],[[],24],[[],24],[[],24],[[111,[78,[-1]]],[[94,[[53,[93]]]]],19],[[111,[67,[-1]]],[[94,[[53,[93]]]]],19],[[111,[67,[-1]]],[[94,[[53,[93]]]]],19],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[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]]],[]],[112,28],[[110,-1],110,137],[-1,112,[50,32,51,52]],[132,25],[-1,112,[5,51,52]],[110,110],[[132,132],[[9,[80]]]],[[110,25],110],[[110,140],110],0,[132,141],[[-1,-2,-3],[[94,[[53,[93]]]]],52,[41,136,52],[137,51]],[[-1,-2,-3],[[94,[[53,[93]]]]],52,[41,136,52],[137,51]],[[-1,-2],[[94,[[53,[93]]]]],52,[41,136,52]],[[-1,-2,-3],[[94,[[53,[93]]]]],52,[41,136,52],[137,51]],[[-1,-2],[[94,[[53,[93]]]]],52,[41,136,52]],[[-1,-2],[[94,[[53,[93]]]]],52,[41,136,52]],[110,110],[111,[[94,[[53,[93]]]]]],[112,5],[[110,-1],110,[[15,[14]]]],[132,[[9,[25]]]],[110,110],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,14,[]],[111,[[126,[125]]]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[[25,25],[[26,[132,142]]]],[[125,25,[143,[25]],-1,-2],[[126,[2]]],137,137],[[110,25],110],[132,144],[-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,[],[]],[[[145,[-1,-2]]],[[145,[-1,-2]]],[],[]],[[-1,-2],2,[],[]],[[],[[145,[-1,-2]]],[],[]],[24,-1,[]],[24,-1,[]],[24,2],[[[145,[-1,-2]],30],33,[],[]],[-1,-1,[]],[[],24],[-1,-2,[],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],0,0,[[-1,-2],2,[],[]],[[-1,-2],[[0,[93,51]]],[],[]],[[[145,[-2,-3]],-2,-4,-5],2,[],[[146,[-1]]],147,[[148,[-1,-2]]],[137,51]],[-1,-2,[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,65,[]],[-1,-2,[],[]],[[[145,[-1,-2]],129],[[145,[-1,-2]]],[],[]],0,0,0,0,[[-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,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[149,[-1]]],[[149,[-1]]],19],[150,150],[151,151],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[],[[149,[-1]]],19],[[],151],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,2],[24,2],[24,2],[[-1,-2],[[94,[[53,[93]]]]],[],[]],[[[149,[-1]],152],[[94,[[53,[93]]]]],19],[[[149,[-1]],153],[[94,[[53,[93]]]]],19],[[150,152],[[94,[[53,[93]]]]]],[[150,153],[[94,[[53,[93]]]]]],[[151,-2],[[94,[[53,[93]]]]],[],[51,[146,[-1]]]],[[[149,[-1]],30],33,19],[[150,30],33],[[151,30],33],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],24],[[],24],[[],24],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[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]]],[]],[154,150],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[149,[-1]],-2],[[149,[-1]]],19,[[148,[-1,153]],32]],[[[149,[-1]],-2],[[149,[-1]]],19,[[148,[-1,152]],32]],[[[149,[-1]],-2],[[149,[-1]]],19,[[148,[-1,153]],[148,[-1,152]],32]],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,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[153,153],[152,152],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,2],[24,2],[[153,153],28],[[152,152],28],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[153,30],33],[[152,30],33],[-1,-1,[]],[24,152],[-1,-1,[]],[[-1,-2],22,[40,41],42],[[-1,-2],22,[40,41],42],[[153,-1],2,48],[[152,-1],2,48],[[],24],[[],24],[-1,-2,[],[]],[-1,-2,[],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[54,[-1]]],[[54,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[[[55,[-1]]],[[55,[4]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,65,[]],[-1,65,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,[[-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,1],2,[]],[[155,24],2],[[156,157],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,[]],[158,[[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,[],[]],[158,[[9,[5]]]],[123,123],[155,155],[159,159],[156,156],[160,160],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[123,14,[9,[14]]],[[53,[161]]]],[[123,14,[9,[14]]],[[53,[162]]]],[[123,14,[9,[14]]],[[53,[163]]]],[[123,14],[[53,[164]]]],[[],123],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[158,25],[24,2],[24,2],[24,2],[24,2],[24,2],[24,2],[123,[[26,[14]]]],[[158,30],33],[[158,30],33],[[123,30],33],[[155,30],33],[[159,30],33],[[156,30],33],[[160,30],33],[-1,-1,[]],[165,158],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[155,24],[159,24],[160,14],[[123,25],[[26,[155,158]]]],[[123,25],[[26,[159,158]]]],[[123,25],[[26,[156,158]]]],[[123,25],[[26,[160,158]]]],[[123,-1],[[26,[123,158]]],137],[[-1,-2],[[49,[-2,-3]]],[],[50,51,52],[]],[-1,[],[]],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[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]]],[]],[156,157],[156,24],[[159,24],2],[[160,14],2],[158,[[9,[5]]]],[[123,14],[[53,[124]]]],[156,157],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[[159,166],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,[[-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,[]],[[-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,5,[]],[6,6],[6,6],[34,[[9,[8]]]],[-1,[[94,[[53,[93]]]]],[]],[-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,[],[]],[167,34],[[[168,[-1,-2]]],34,[[15,[14]]],[[15,[16]]]],[34,[[9,[5]]]],[169,169],[170,170],[[[171,[-1]]],[[171,[-1]]],18],[167,167],[[[168,[-1,-2]]],[[168,[-1,-2]]],18,18],[34,34],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,[102,[-2]]],[[94,[[53,[93]]]]],[],[]],[[],172],[172,[[26,[[86,[-1,34]],87]]],[51,52,88]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[34,25],[-1,[[26,[34]]],27],[24,2],[24,2],[24,2],[24,2],[24,2],[24,2],[24,2],0,[167,[[26,[-1,34]]],[]],[[[168,[-1,-2]]],[[26,[-3,34]]],[[15,[14]]],[[15,[16]]],[]],[[169,30],33],[[170,30],33],[[[171,[-1]],30],33,32],[[167,30],33],[[[168,[-1,-2]],30],33,32,32],[[34,30],33],[[34,30],33],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[92,34],[[[2,[14,16]]],34],[37,[[26,[172,38]]]],[37,[[26,[172,38]]]],[[-1,[102,[-2]],[9,[24]]],[[94,[[53,[93]]]]],[],[]],[[],[[9,[47]]]],[[-1,-2],[[49,[-2,-3]]],[],[50,51,52],[]],[-1,[],[]],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[-1,[67,[-2]]],[[94,[[53,[93]]]]],[],[]],[-1,34,50],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[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]]],[]],[169,34],[170,34],[[[171,[-1]]],34,[[15,[14]]]],[167,34],[[[168,[-1,-2]]],34,[[15,[14]]],[[15,[16]]]],0,0,[[34,-1],26,64],[34,[[9,[5]]]],[34,16],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[[172,37],[[26,[2,38]]]],[[172,37],[[26,[2,38]]]],[-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,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,5,[]],[6,6],[6,6],[36,[[9,[8]]]],[-1,[[94,[[53,[93]]]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[36,[[9,[5]]]],[173,173],[36,36],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[173,173],80],[[-1,-2],80,[],[]],[-1,[[126,[123]]],[]],[-1,[[126,[123]]],[]],[[],173],[[],174],[174,[[26,[[86,[-1,36]],87]]],[51,52,88]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[24,-1,[]],[36,25],[-1,[[26,[173]]],27],[-1,[[26,[36]]],27],[24,2],[24,2],[24,2],[[173,173],28],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],[[-1,-2],28,[],[]],0,[[173,30],33],[[36,30],33],[[36,30],33],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[92,36],[14,36],[37,[[26,[174,38]]]],[37,[[26,[174,38]]]],[[-1,-2],22,[40,41],42],[[],[[9,[47]]]],[[173,-1],2,48],[[-1,-2],[[49,[-2,-3]]],[],[50,51,52],[]],[-1,[],[]],[[],24],[[],24],[[],24],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[4]]],[]],[[[53,[-1]]],[[53,[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]]],[]],0,[-1,[[94,[[53,[93]]]]],52],[-1,[[94,[[53,[93]]]]],52],[-1,123,[]],[[173,173],[[9,[80]]]],[-1,[[53,[124]]],[]],[[173,-1],26,64],[[36,-1],26,64],[36,[[9,[5]]]],[36,16],[-1,[[94,[[53,[93]]]]],52],[-1,[[94,[[53,[93]]]]],52],[-1,-2,[],[]],[-1,-2,[],[]],[-1,14,[]],0,[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,[[26,[-2]]],[],[]],[-1,65,[]],[-1,65,[]],[-1,65,[]],[[174,37],[[26,[2,38]]]],[[174,37],[[26,[2,38]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0],"c":[],"p":[[3,"Private",2002],[15,"tuple"],[3,"Private",2002],[8,"Any",2003],[8,"Error",2004],[3,"Command",2005],[4,"Error",0],[3,"Backtrace",2006],[4,"Option",2007],[4,"QueryError",0],[3,"NotFoundSnafu",0],[3,"MissingSnafu",0],[3,"Snafu",0],[3,"String",2008],[8,"Into",2009],[4,"StatusCode",2010],[3,"Leaf",0],[8,"Clone",2011],[8,"NodeType",2012],[3,"Commitment",2013],[8,"RngCore",2014],[15,"u64"],[3,"Options",0],[15,"usize"],[15,"str"],[4,"Result",2015],[8,"Deserializer",2016],[15,"bool"],[4,"BlockError",2017],[3,"Formatter",2018],[3,"Error",2018],[8,"Debug",2018],[6,"Result",2018],[4,"Error",1662],[4,"Error",284],[4,"Error",1881],[3,"ArgMatches",2019],[6,"Error",2020],[3,"StoredView",2021],[8,"Hash",2022],[8,"Sized",2023],[8,"BuildHasher",2022],[3,"QuorumData",2024],[3,"SuccessThreshold",2025],[3,"SimpleCertificate",2025],[3,"Vec",2026],[3,"Id",2027],[8,"Hasher",2022],[3,"IndentedSection",2028],[8,"Display",2018],[8,"Send",2023],[8,"Sync",2023],[3,"Box",2029],[3,"Arc",2030],[3,"Rc",2031],[3,"SystemContextHandle",2032],[8,"AvailabilityDataSource",284],[8,"NodeDataSource",1662],[8,"StatusDataSource",1881],[8,"UpdateDataSource",888],[8,"VersionedDataSource",888],[8,"NodeImplementation",2012],[8,"Serialize",2033],[8,"Serializer",2033],[3,"TypeId",2003],[3,"InconsistentLeafError",284],[3,"LeafQueryData",284],[6,"BlockHash",284],[3,"PayloadQueryData",284],[3,"TransactionQueryData",284],[3,"FetchLeafSnafu",284],[3,"FetchBlockSnafu",284],[3,"FetchTransactionSnafu",284],[3,"InvalidTransactionIndexSnafu",284],[3,"CustomSnafu",284],[4,"LeafId",284],[4,"BlockId",284],[3,"BlockQueryData",284],[3,"RequestSnafu",284],[4,"Ordering",2034],[4,"Fetch",284],[8,"ErrorCompat",2035],[8,"IntoError",2035],[6,"Payload",0],[3,"Options",284],[3,"Api",2036],[4,"ApiError",2036],[8,"ReadState",2037],[8,"Iterator",2038],[8,"PartialEq",2034],[6,"LeafHash",284],[4,"RequestError",2039],[8,"Future",2040],[3,"Pin",2041],[8,"RangeBounds",2042],[6,"TransactionHash",284],[6,"VidCommitment",2017],[6,"Header",0],[8,"FnOnce",2043],[6,"Metadata",0],[6,"QuorumCertificate",2025],[6,"SignatureKey",0],[6,"TransactionIndex",284],[6,"Transaction",0],[3,"BitSlice",2044],[8,"BitOrder",2045],[3,"ExtensibleDataSource",888],[3,"FetchingDataSource",888],[3,"MetricsDataSource",888],[3,"Config",1103],[3,"SqlStorage",1103],[3,"Error",1103],[3,"Path",2046],[6,"FileSystemDataSource",888],[6,"Result",2047],[3,"FileSystemStorage",1063],[3,"AtomicStoreLoader",2048],[15,"char"],[8,"FromIterator",2049],[8,"AvailabilityStorage",1050],[8,"UpdateAvailabilityData",284],[8,"UpdateNodeData",1662],[3,"PrometheusMetrics",1483],[8,"Metrics",2050],[3,"Transaction",1103],[6,"QueryResult",0],[4,"BitSpanError",2051],[3,"Event",2052],[3,"Duration",2053],[6,"SqlDataSource",1039],[4,"PersistenceError",2054],[3,"Migration",1103],[3,"OffsetDateTime",2055],[3,"Backtrace",2056],[3,"Chain",2047],[8,"ToStatement",2057],[8,"IntoIterator",2049],[15,"never"],[3,"Config",2058],[15,"u16"],[4,"Type",2059],[3,"Error",2060],[15,"array"],[15,"u32"],[3,"Fetcher",1298],[8,"Request",1418],[8,"Callback",1298],[8,"Provider",1333],[3,"AnyProvider",1333],[3,"QueryServiceProvider",1333],[3,"NoFetching",1333],[3,"LeafRequest",1418],[3,"PayloadRequest",1418],[3,"Url",2061],[3,"Counter",1483],[3,"Histogram",1483],[15,"f64"],[4,"MetricsError",1483],[3,"Gauge",1483],[3,"Label",1483],[8,"Counter",2050],[8,"Gauge",2050],[8,"Histogram",2050],[8,"Label",2050],[4,"Error",2062],[15,"i64"],[3,"InvalidSignatureKeySnafu",1662],[3,"CustomSnafu",1662],[3,"RequestSnafu",1662],[3,"QuerySnafu",1662],[3,"QueryProposalsSnafu",1662],[3,"Options",1662],[3,"MempoolQueryData",1881],[3,"Options",1881],[8,"Resolvable",0],[13,"Custom",278],[13,"Availability",278],[13,"Node",278],[13,"Status",278],[13,"Error",283],[8,"QueryablePayload",284],[13,"InvalidTransactionIndex",880],[13,"Custom",880],[13,"FetchLeaf",880],[13,"FetchBlock",880],[13,"FetchTransaction",880],[13,"Request",880],[8,"Query",1103],[8,"LocalCallback",1298],[13,"NoSuchMetric",1658],[13,"NoSuchSubgroup",1658],[13,"Prometheus",1658],[13,"Custom",1875],[13,"QueryProposals",1875],[13,"Request",1875],[13,"Query",1875],[8,"UpdateStatusData",1881],[13,"Internal",2000],[13,"Request",2000]],"b":[[134,"impl-Display-for-Leaf%3CTYPES%3E"],[135,"impl-Debug-for-Leaf%3CTYPES%3E"],[136,"impl-Display-for-Error"],[137,"impl-Debug-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"],[570,"impl-Debug-for-LeafId%3CTypes%3E"],[571,"impl-Display-for-LeafId%3CTypes%3E"],[572,"impl-Display-for-BlockId%3CTypes%3E"],[573,"impl-Debug-for-BlockId%3CTypes%3E"],[575,"impl-Display-for-InconsistentLeafError%3CTypes%3E"],[576,"impl-Debug-for-InconsistentLeafError%3CTypes%3E"],[586,"impl-Display-for-Error"],[587,"impl-Debug-for-Error"],[589,"impl-From%3Cusize%3E-for-LeafId%3CTypes%3E"],[591,"impl-From%3CCommitment%3CLeaf%3CTypes%3E%3E%3E-for-LeafId%3CTypes%3E"],[592,"impl-From%3Cusize%3E-for-BlockId%3CTypes%3E"],[594,"impl-From%3CCommitment%3C%3CTypes+as+NodeType%3E::BlockHeader%3E%3E-for-BlockId%3CTypes%3E"],[608,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[610,"impl-From%3CRequestError%3E-for-Error"],[912,"impl-NodeDataSource%3CTypes%3E-for-ExtensibleDataSource%3CD,+U%3E"],[913,"impl-StatusDataSource-for-ExtensibleDataSource%3CD,+U%3E"],[914,"impl-StatusDataSource-for-FetchingDataSource%3CTypes,+S,+P%3E"],[915,"impl-NodeDataSource%3CTypes%3E-for-FetchingDataSource%3CTypes,+S,+P%3E"],[980,"impl-UpdateAvailabilityData%3CTypes%3E-for-ExtensibleDataSource%3CD,+U%3E"],[981,"impl-UpdateNodeData%3CTypes%3E-for-ExtensibleDataSource%3CD,+U%3E"],[982,"impl-UpdateAvailabilityData%3CTypes%3E-for-FetchingDataSource%3CTypes,+S,+P%3E"],[983,"impl-UpdateNodeData%3CTypes%3E-for-FetchingDataSource%3CTypes,+S,+P%3E"],[1089,"impl-UpdateNodeData%3CTypes%3E-for-FileSystemStorage%3CTypes%3E"],[1090,"impl-UpdateAvailabilityData%3CTypes%3E-for-FileSystemStorage%3CTypes%3E"],[1124,"impl-AsRef%3Cdyn+Error+%2B+Send+%2B+Sync%3E-for-Error"],[1125,"impl-AsRef%3Cdyn+Error%3E-for-Error"],[1189,"impl-Display-for-Error"],[1190,"impl-Debug-for-Error"],[1191,"impl-Debug-for-Migration"],[1192,"impl-Display-for-Migration"],[1224,"impl-UpdateNodeData%3CTypes%3E-for-SqlStorage"],[1225,"impl-UpdateAvailabilityData%3CTypes%3E-for-SqlStorage"],[1373,"impl-Provider%3CTypes,+LeafRequest%3E-for-AnyProvider%3CTypes%3E"],[1374,"impl-Provider%3CTypes,+PayloadRequest%3E-for-AnyProvider%3CTypes%3E"],[1375,"impl-Provider%3CTypes,+LeafRequest%3E-for-QueryServiceProvider"],[1376,"impl-Provider%3CTypes,+PayloadRequest%3E-for-QueryServiceProvider"],[1566,"impl-Debug-for-MetricsError"],[1567,"impl-Display-for-MetricsError"],[1773,"impl-Display-for-Error"],[1774,"impl-Debug-for-Error"],[1782,"impl-From%3CRequestError%3E-for-Error"],[1783,"impl-From%3C(String,+StatusCode)%3E-for-Error"],[1941,"impl-Display-for-Error"],[1942,"impl-Debug-for-Error"],[1946,"impl-From%3CRequestError%3E-for-Error"],[1947,"impl-From%3CString%3E-for-Error"]]}\ }'); if (typeof window !== 'undefined' && window.initSearch) {window.initSearch(searchIndex)}; if (typeof exports !== 'undefined') {exports.searchIndex = searchIndex}; diff --git a/src-files.js b/src-files.js index 01d542beb..675ec0e7a 100644 --- a/src-files.js +++ b/src-files.js @@ -1,4 +1,4 @@ var srcIndex = 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",[],["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"]]\ +"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"]]\ }'); createSrcSidebar(); diff --git a/src/hotshot_query_service/data_source/fetching.rs.html b/src/hotshot_query_service/data_source/fetching.rs.html index 1ffb88937..3e8dce5fb 100644 --- a/src/hotshot_query_service/data_source/fetching.rs.html +++ b/src/hotshot_query_service/data_source/fetching.rs.html @@ -1401,6 +1401,22 @@ 1401 1402 1403 +1404 +1405 +1406 +1407 +1408 +1409 +1410 +1411 +1412 +1413 +1414 +1415 +1416 +1417 +1418 +1419
// Copyright (c) 2022 Espresso Systems (espressosys.com)
 // This file is part of the HotShot Query Service library.
 //
@@ -1447,6 +1463,7 @@
     future::IntoFuture,
     iter::once,
     ops::{Bound, Deref, DerefMut, Range, RangeBounds},
+    time::Duration,
 };
 
 /// The number of items to process at a time when loading a range or stream.
@@ -1500,8 +1517,16 @@
 {
     /// Create a data source with local storage and a remote data availability provider.
     pub async fn new(storage: S, provider: P) -> anyhow::Result<Self> {
+        Self::with_retry_delay(storage, provider, None).await
+    }
+
+    pub async fn with_retry_delay(
+        storage: S,
+        provider: P,
+        delay: Option<Duration>,
+    ) -> anyhow::Result<Self> {
         let mut ds = Self {
-            fetcher: Arc::new(Fetcher::new(storage, provider).await),
+            fetcher: Arc::new(Fetcher::new(storage, provider, delay).await),
             metrics: Default::default(),
         };
 
@@ -1810,7 +1835,7 @@
     Types: NodeType,
     S: NodeDataSource<Types>,
 {
-    async fn new(storage: S, provider: P) -> Self {
+    async fn new(storage: S, provider: P, retry_delay: Option<Duration>) -> Self {
         // Get the height from storage if possible. If not, it's fine: we'll update this as soon as
         // we see a new block or leaf anyways.
         let height = storage.block_height().await.unwrap_or_else(|err| {
@@ -1818,6 +1843,13 @@
             0
         }) as u64;
 
+        let mut payload_fetcher = fetching::Fetcher::default();
+        let mut leaf_fetcher = fetching::Fetcher::default();
+        if let Some(delay) = retry_delay {
+            payload_fetcher = payload_fetcher.with_retry_delay(delay);
+            leaf_fetcher = leaf_fetcher.with_retry_delay(delay);
+        }
+
         Self {
             storage: RwLock::new(NotifyStorage {
                 storage,
@@ -1826,8 +1858,8 @@
                 leaf_notifier: Notifier::new(),
             }),
             provider: Arc::new(provider),
-            payload_fetcher: Default::default(),
-            leaf_fetcher: Default::default(),
+            payload_fetcher: Arc::new(payload_fetcher),
+            leaf_fetcher: Arc::new(leaf_fetcher),
         }
     }
 }
diff --git a/src/hotshot_query_service/fetching.rs.html b/src/hotshot_query_service/fetching.rs.html
index 55b9cb890..4829fef1a 100644
--- a/src/hotshot_query_service/fetching.rs.html
+++ b/src/hotshot_query_service/fetching.rs.html
@@ -133,6 +133,74 @@
 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
 
// Copyright (c) 2022 Espresso Systems (espressosys.com)
 // This file is part of the HotShot Query Service library.
 //
@@ -158,10 +226,14 @@
 
 use async_std::{
     sync::{Arc, Mutex},
-    task::spawn,
+    task::{sleep, spawn},
 };
 use derivative::Derivative;
-use std::collections::{hash_map::Entry, BTreeSet, HashMap};
+use std::{
+    cmp::min,
+    collections::{hash_map::Entry, BTreeSet, HashMap},
+    time::Duration,
+};
 
 pub mod provider;
 pub mod request;
@@ -169,6 +241,26 @@
 pub use provider::Provider;
 pub use request::Request;
 
+// The fastest we will retry failed requests.
+const MIN_RETRY_DELAY: Duration = Duration::from_secs(2);
+// Factor by which to increase the retry delay each failed request.
+//
+// Our backoff strategy is to start with a relatively quick retry delay, but back off very quickly
+// until reaching a maximum delay. This lets us succeed quickly when there is a transient failure in
+// the provider, while limiting spam/failed requests when the provider is down for a long time.
+//
+// Backoff also lets us set a longer maximum delay without affecting optimistic performance, further
+// reducing spam.
+const BACKOFF_FACTOR: u32 = 4;
+
+// The longest we will wait to retry failed requests.
+//
+// Since many of the issues we might encounter when fetching from a peer are of the kind that won't
+// recover immediately, and since we may have many parallel requests for resources and don't want to
+// spam our peers, and since backoff allows us to first try a few times with a faster delay, we can
+// safely wait a long while before retrying failed requests.
+const DEFAULT_RETRY_DELAY: Duration = Duration::from_secs(5 * 60);
+
 /// A callback to process the result of a request.
 ///
 /// Sometimes, we may fetch the same object for multiple purposes, so a request may have more than
@@ -188,10 +280,27 @@
 
 /// Management of concurrent requests to fetch resources.
 #[derive(Derivative)]
-#[derivative(Clone(bound = ""), Debug(bound = ""), Default(bound = ""))]
+#[derivative(Clone(bound = ""), Debug(bound = ""))]
 pub struct Fetcher<T, C> {
     #[derivative(Debug = "ignore")]
     in_progress: Arc<Mutex<HashMap<T, BTreeSet<C>>>>,
+    retry_delay: Duration,
+}
+
+impl<T, C> Default for Fetcher<T, C> {
+    fn default() -> Self {
+        Self {
+            in_progress: Default::default(),
+            retry_delay: DEFAULT_RETRY_DELAY,
+        }
+    }
+}
+
+impl<T, C> Fetcher<T, C> {
+    pub fn with_retry_delay(mut self, retry_delay: Duration) -> Self {
+        self.retry_delay = retry_delay;
+        self
+    }
 }
 
 impl<T, C> Fetcher<T, C> {
@@ -209,6 +318,10 @@
     ///
     /// Note that while callbacks are allowed to be async, they are executed sequentially while an
     /// exclusive lock is held, and thus they should not take too long to run or block indefinitely.
+    ///
+    /// The spawned task will continue trying to fetch the object until it succeeds, so it is the
+    /// caller's responsibility only to use this method for resources which are known to exist and
+    /// be fetchable by `provider`.
     pub fn spawn_fetch<Types>(
         &self,
         req: T,
@@ -219,6 +332,7 @@
         C: Callback<T::Response> + 'static,
     {
         let in_progress = self.in_progress.clone();
+        let max_retry_delay = self.retry_delay;
 
         spawn(async move {
             tracing::info!("spawned active fetch for {req:?}");
@@ -244,7 +358,31 @@
             }
 
             // Now we are responsible for fetching the object, reach out to the provider.
-            let res = provider.fetch(req).await;
+            let mut delay = min(MIN_RETRY_DELAY, max_retry_delay);
+            let res = loop {
+                if let Some(res) = provider.fetch(req).await {
+                    break res;
+                }
+
+                // We only fetch objects which are known to exist, so we should eventually succeed
+                // in fetching if we retry enough. For example, we may be fetching a block from a
+                // peer who hasn't received the block yet.
+                //
+                // To understand why it is ok to retry indefinitely, think about manual
+                // intervention: if we don't retry, or retry with a limit, we may require manual
+                // intervention whenever a query service fails to fetch a resource that should exist
+                // and stops retrying, since it now may never receive that resource. With indefinite
+                // fetching, we require manual intervention only when active fetches are
+                // accumulating because a peer which _should_ have the resource isn't providing it.
+                // In this case, we would require manual intervention on the peer anyways.
+                tracing::warn!("failed to fetch {req:?}, will retry in {delay:?}");
+                sleep(delay).await;
+
+                // Try a few times with a short delay, on the off chance that the problem resolves
+                // quickly. Back off until we eventually reach the maximum delay, which should be
+                // pretty long.
+                delay = min(delay * BACKOFF_FACTOR, max_retry_delay);
+            };
 
             // Done fetching, remove our lock on the object and execute all callbacks.
             //
@@ -260,10 +398,8 @@
             // `in_progress`, and so it is safe to acquire any lock _after_ acquiring `in_progress`.
             let mut in_progress = in_progress.lock().await;
             let callbacks = in_progress.remove(&req).unwrap_or_default();
-            if let Some(res) = res {
-                for callback in callbacks {
-                    callback.run(res.clone()).await;
-                }
+            for callback in callbacks {
+                callback.run(res.clone()).await;
             }
         });
     }
diff --git a/src/hotshot_query_service/fetching/provider.rs.html b/src/hotshot_query_service/fetching/provider.rs.html
index a1939ca0c..aaef8464d 100644
--- a/src/hotshot_query_service/fetching/provider.rs.html
+++ b/src/hotshot_query_service/fetching/provider.rs.html
@@ -73,6 +73,14 @@
 73
 74
 75
+76
+77
+78
+79
+80
+81
+82
+83
 
// Copyright (c) 2022 Espresso Systems (espressosys.com)
 // This file is part of the HotShot Query Service library.
 //
@@ -112,17 +120,23 @@
 
 use super::Request;
 use async_std::sync::Arc;
+use async_trait::async_trait;
 
+mod any;
 mod query_service;
 mod testing;
 
+pub use any::AnyProvider;
 pub use query_service::QueryServiceProvider;
 #[cfg(any(test, feature = "testing"))]
 pub use testing::TestProvider;
 
 /// A provider which is able to satisfy requests for data of type `T`.
-#[trait_variant::make(Provider: Send)]
-pub trait LocalProvider<Types, T: Request<Types>> {
+///
+/// This trait use boxed future return types (`#[async_trait]`) instead of `impl Future` return
+/// types, so that it can be object safe.
+#[async_trait]
+pub trait Provider<Types, T: Request<Types>>: Send + Sync {
     /// Fetch a resource.
     async fn fetch(&self, req: T) -> Option<T::Response>;
 }
@@ -133,15 +147,17 @@
 #[derive(Clone, Copy, Debug, Default)]
 pub struct NoFetching;
 
-impl<Types, T: Send + Request<Types>> Provider<Types, T> for NoFetching {
+#[async_trait]
+impl<Types, T: Send + Request<Types> + 'static> Provider<Types, T> for NoFetching {
     async fn fetch(&self, _req: T) -> Option<T::Response> {
         None
     }
 }
 
-impl<Types, T, P> Provider<Types, T> for Arc<P>
+#[async_trait]
+impl<Types, T, P> Provider<Types, T> for Arc<P>
 where
-    T: Request<Types>,
+    T: Request<Types> + 'static,
     P: Provider<Types, T> + Sync,
 {
     async fn fetch(&self, req: T) -> Option<T::Response> {
diff --git a/src/hotshot_query_service/fetching/provider/any.rs.html b/src/hotshot_query_service/fetching/provider/any.rs.html
new file mode 100644
index 000000000..dabc56014
--- /dev/null
+++ b/src/hotshot_query_service/fetching/provider/any.rs.html
@@ -0,0 +1,509 @@
+any.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
+
// 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::{Provider, Request};
+use crate::{
+    availability::LeafQueryData,
+    fetching::request::{LeafRequest, PayloadRequest},
+    Payload,
+};
+use async_std::sync::Arc;
+use async_trait::async_trait;
+use derivative::Derivative;
+use hotshot_types::traits::node_implementation::NodeType;
+use std::fmt::Debug;
+
+/// Blanket trait combining [`Debug`] and [`Provider`].
+///
+/// This is necessary to create a fetcher trait object (`dyn Provider`, see [`PayloadProvider`] and
+/// [`LeafProvider`]) which also implements [`Debug`], since trait objects can only have one
+/// non-auto trait bound.
+trait DebugProvider<Types, T>: Provider<Types, T> + Debug
+where
+    Types: NodeType,
+    T: Request<Types>,
+{
+}
+
+impl<Types, T, P> DebugProvider<Types, T> for P
+where
+    Types: NodeType,
+    T: Request<Types>,
+    P: Provider<Types, T> + Debug,
+{
+}
+
+type PayloadProvider<Types> = Arc<dyn DebugProvider<Types, PayloadRequest>>;
+type LeafProvider<Types> = Arc<dyn DebugProvider<Types, LeafRequest>>;
+
+/// Adaptor combining multiple data availability providers.
+///
+/// This provider adaptor implements the [`Provider`](super::Provider) protocol by fetching
+/// requested objects from several different underlying providers. If any of the underlying sources
+/// have the object, the request will eventually succeed.
+///
+/// This can be used to combine multiple instances of the same kind of provider, like using
+/// [`QueryServiceProvider`](super::QueryServiceProvider) to request objects from a number of
+/// different query services. It can also be used to search different kinds of data providers for
+/// the same object, like searching for a block both in another instance of the query service and in
+/// the HotShot DA committee. Finally, [`AnyProvider`] can be used to combine a provider which only
+/// provides blocks and one which only provides leaves into a provider which provides both, and thus
+/// can be used as a provider for the availability API module.
+///
+/// # Examples
+///
+/// Fetching from multiple query services, for resiliency.
+///
+/// ```
+/// # use hotshot_types::traits::node_implementation::NodeType;
+/// # async fn doc<Types>() -> anyhow::Result<()>
+/// # where
+/// #   Types: NodeType,
+/// # {
+/// use hotshot_query_service::fetching::provider::{AnyProvider, QueryServiceProvider};
+///
+/// let qs1 = QueryServiceProvider::new("https://backup.query-service.1".parse()?);
+/// let qs2 = QueryServiceProvider::new("https://backup.query-service.2".parse()?);
+/// let provider = AnyProvider::<Types>::default()
+///     .with_provider(qs1)
+///     .with_provider(qs2);
+/// # Ok(())
+/// # }
+/// ```
+#[derive(Derivative)]
+#[derivative(Clone(bound = ""), Debug(bound = ""), Default(bound = ""))]
+pub struct AnyProvider<Types>
+where
+    Types: NodeType,
+{
+    payload_providers: Vec<PayloadProvider<Types>>,
+    leaf_providers: Vec<LeafProvider<Types>>,
+}
+
+#[async_trait]
+impl<Types> Provider<Types, PayloadRequest> for AnyProvider<Types>
+where
+    Types: NodeType,
+{
+    async fn fetch(&self, req: PayloadRequest) -> Option<Payload<Types>> {
+        any_fetch(&self.payload_providers, req).await
+    }
+}
+
+#[async_trait]
+impl<Types> Provider<Types, LeafRequest> for AnyProvider<Types>
+where
+    Types: NodeType,
+{
+    async fn fetch(&self, req: LeafRequest) -> Option<LeafQueryData<Types>> {
+        any_fetch(&self.leaf_providers, req).await
+    }
+}
+
+impl<Types> AnyProvider<Types>
+where
+    Types: NodeType,
+{
+    /// Add a sub-provider which fetches both blocks and leaves.
+    pub fn with_provider<P>(mut self, provider: P) -> Self
+    where
+        P: Provider<Types, PayloadRequest> + Provider<Types, LeafRequest> + Debug + 'static,
+    {
+        let provider = Arc::new(provider);
+        self.payload_providers.push(provider.clone());
+        self.leaf_providers.push(provider);
+        self
+    }
+
+    /// Add a sub-provider which fetches blocks.
+    pub fn with_block_provider<P>(mut self, provider: P) -> Self
+    where
+        P: Provider<Types, PayloadRequest> + Debug + 'static,
+    {
+        self.payload_providers.push(Arc::new(provider));
+        self
+    }
+
+    /// Add a sub-provider which fetches leaves.
+    pub fn with_leaf_provider<P>(mut self, provider: P) -> Self
+    where
+        P: Provider<Types, LeafRequest> + Debug + 'static,
+    {
+        self.leaf_providers.push(Arc::new(provider));
+        self
+    }
+}
+
+async fn any_fetch<Types, P, T>(providers: &[Arc<P>], req: T) -> Option<T::Response>
+where
+    Types: NodeType,
+    P: Provider<Types, T> + Debug + ?Sized,
+    T: Request<Types>,
+{
+    // There's a policy question of how to decide when to try each fetcher: all in parallel, in
+    // serial, or a combination. For now, we do the simplest thing of trying each in order, in
+    // serial. This has the best performance in the common case when we succeed on the first
+    // fetcher: low latency, and no undue burden on the other providers. However, a more complicated
+    // strategy where we slowly ramp up the parallelism as more and more requests fail may provide
+    // better worst-case latency.
+    for (i, p) in providers.iter().enumerate() {
+        match p.fetch(req).await {
+            Some(obj) => return Some(obj),
+            None => {
+                tracing::warn!(
+                    "failed to fetch {req:?} from provider {i}/{}: {p:?}",
+                    providers.len()
+                );
+                continue;
+            }
+        }
+    }
+
+    None
+}
+
+// These tests run the `postgres` Docker image, which doesn't work on Windows.
+#[cfg(all(test, not(target_os = "windows")))]
+mod test {
+    use super::*;
+    use crate::{
+        availability::{define_api, AvailabilityDataSource, UpdateAvailabilityData},
+        data_source::{storage::sql::testing::TmpDb, VersionedDataSource},
+        fetching::provider::{NoFetching, QueryServiceProvider},
+        testing::{
+            consensus::{MockDataSource, MockNetwork},
+            mocks::MockTypes,
+            setup_test,
+        },
+        Error,
+    };
+    use async_std::task::spawn;
+    use futures::stream::StreamExt;
+    use portpicker::pick_unused_port;
+    use tide_disco::App;
+
+    type Provider = AnyProvider<MockTypes>;
+
+    #[async_std::test]
+    async fn test_fetch_first_provider_fails() {
+        setup_test();
+
+        // Create the consensus network.
+        let mut network = MockNetwork::<MockDataSource>::init().await;
+
+        // Start a web server that the non-consensus node can use to fetch blocks.
+        let port = pick_unused_port().unwrap();
+        let mut app = App::<_, Error>::with_state(network.data_source());
+        app.register_module("availability", define_api(&Default::default()).unwrap())
+            .unwrap();
+        spawn(app.serve(format!("0.0.0.0:{port}")));
+
+        // Start a data source which is not receiving events from consensus, only from a peer.
+        let db = TmpDb::init().await;
+        let provider =
+            Provider::default()
+                .with_provider(NoFetching)
+                .with_provider(QueryServiceProvider::new(
+                    format!("http://localhost:{port}").parse().unwrap(),
+                ));
+        let mut data_source = db.config().connect(provider.clone()).await.unwrap();
+
+        // Start consensus.
+        network.start().await;
+
+        // Wait until the block height reaches 4. This gives us the genesis block, one additional
+        // block at the end, and then one block each for fetching a leaf and a payload.
+        let leaves = { network.data_source().read().await.subscribe_leaves(1).await };
+        let leaves = leaves.take(3).collect::<Vec<_>>().await;
+        let test_leaf = &leaves[0];
+        let test_payload = &leaves[1];
+
+        // Give the node a leaf after the range of interest so it learns about the correct block
+        // height.
+        data_source
+            .insert_leaf(leaves.last().cloned().unwrap())
+            .await
+            .unwrap();
+        data_source.commit().await.unwrap();
+
+        tracing::info!("requesting leaf from multiple providers");
+        let leaf = data_source
+            .get_leaf(test_leaf.height() as usize)
+            .await
+            .await;
+        assert_eq!(leaf, *test_leaf);
+
+        tracing::info!("requesting payload from multiple providers");
+        let payload = data_source
+            .get_payload(test_payload.height() as usize)
+            .await
+            .await;
+        assert_eq!(payload.height(), test_payload.height());
+        assert_eq!(payload.block_hash(), test_payload.block_hash());
+        assert_eq!(payload.hash(), test_payload.payload_hash());
+    }
+}
+
\ No newline at end of file diff --git a/src/hotshot_query_service/fetching/provider/query_service.rs.html b/src/hotshot_query_service/fetching/provider/query_service.rs.html index 37c0577b7..eed3ceb46 100644 --- a/src/hotshot_query_service/fetching/provider/query_service.rs.html +++ b/src/hotshot_query_service/fetching/provider/query_service.rs.html @@ -526,6 +526,78 @@ 526 527 528 +529 +530 +531 +532 +533 +534 +535 +536 +537 +538 +539 +540 +541 +542 +543 +544 +545 +546 +547 +548 +549 +550 +551 +552 +553 +554 +555 +556 +557 +558 +559 +560 +561 +562 +563 +564 +565 +566 +567 +568 +569 +570 +571 +572 +573 +574 +575 +576 +577 +578 +579 +580 +581 +582 +583 +584 +585 +586 +587 +588 +589 +590 +591 +592 +593 +594 +595 +596 +597 +598 +599 +600
// Copyright (c) 2022 Espresso Systems (espressosys.com)
 // This file is part of the HotShot Query Service library.
 //
@@ -544,6 +616,7 @@
     fetching::request::{LeafRequest, PayloadRequest},
     Error, Payload,
 };
+use async_trait::async_trait;
 use hotshot_types::traits::node_implementation::NodeType;
 use surf_disco::{Client, Url};
 
@@ -557,14 +630,15 @@
 }
 
 impl QueryServiceProvider {
-    pub async fn new(url: Url) -> Self {
-        let client = Client::new(url);
-        client.connect(None).await;
-        Self { client }
+    pub fn new(url: Url) -> Self {
+        Self {
+            client: Client::new(url),
+        }
     }
 }
 
-impl<Types> Provider<Types, PayloadRequest> for QueryServiceProvider
+#[async_trait]
+impl<Types> Provider<Types, PayloadRequest> for QueryServiceProvider
 where
     Types: NodeType,
 {
@@ -588,7 +662,8 @@
     }
 }
 
-impl<Types> Provider<Types, LeafRequest> for QueryServiceProvider
+#[async_trait]
+impl<Types> Provider<Types, LeafRequest> for QueryServiceProvider
 where
     Types: NodeType,
 {
@@ -621,7 +696,10 @@
     use super::*;
     use crate::{
         availability::{define_api, AvailabilityDataSource, UpdateAvailabilityData},
-        data_source::{storage::sql::testing::TmpDb, VersionedDataSource},
+        data_source::{
+            storage::sql::{testing::TmpDb, SqlStorage},
+            FetchingDataSource, VersionedDataSource,
+        },
         fetching::provider::{NoFetching, TestProvider},
         testing::{
             consensus::{MockDataSource, MockNetwork},
@@ -656,9 +734,9 @@
 
         // Start a data source which is not receiving events from consensus, only from a peer.
         let db = TmpDb::init().await;
-        let provider = Provider::new(
-            QueryServiceProvider::new(format!("http://localhost:{port}").parse().unwrap()).await,
-        );
+        let provider = Provider::new(QueryServiceProvider::new(
+            format!("http://localhost:{port}").parse().unwrap(),
+        ));
         let mut data_source = db.config().connect(provider.clone()).await.unwrap();
 
         // Start consensus.
@@ -845,9 +923,9 @@
 
         // Start a data source which is not receiving events from consensus, only from a peer.
         let db = TmpDb::init().await;
-        let provider = Provider::new(
-            QueryServiceProvider::new(format!("http://localhost:{port}").parse().unwrap()).await,
-        );
+        let provider = Provider::new(QueryServiceProvider::new(
+            format!("http://localhost:{port}").parse().unwrap(),
+        ));
         let mut data_source = db.config().connect(provider.clone()).await.unwrap();
 
         // Start consensus.
@@ -897,9 +975,9 @@
 
         // Start a data source which is not receiving events from consensus, only from a peer.
         let db = TmpDb::init().await;
-        let provider = Provider::new(
-            QueryServiceProvider::new(format!("http://localhost:{port}").parse().unwrap()).await,
-        );
+        let provider = Provider::new(QueryServiceProvider::new(
+            format!("http://localhost:{port}").parse().unwrap(),
+        ));
         let mut data_source = db.config().connect(provider.clone()).await.unwrap();
 
         // Start consensus.
@@ -953,9 +1031,9 @@
 
         // Start a data source which is not receiving events from consensus, only from a peer.
         let db = TmpDb::init().await;
-        let provider = Provider::new(
-            QueryServiceProvider::new(format!("http://localhost:{port}").parse().unwrap()).await,
-        );
+        let provider = Provider::new(QueryServiceProvider::new(
+            format!("http://localhost:{port}").parse().unwrap(),
+        ));
         let mut data_source = db.config().connect(provider.clone()).await.unwrap();
 
         // Start consensus.
@@ -1053,5 +1131,71 @@
                 .await
         );
     }
+
+    #[async_std::test]
+    async fn test_retry() {
+        setup_test();
+
+        // Create the consensus network.
+        let mut network = MockNetwork::<MockDataSource>::init().await;
+
+        // Start a web server that the non-consensus node can use to fetch blocks.
+        let port = pick_unused_port().unwrap();
+        let mut app = App::<_, Error>::with_state(network.data_source());
+        app.register_module("availability", define_api(&Default::default()).unwrap())
+            .unwrap();
+        spawn(app.serve(format!("0.0.0.0:{port}")));
+
+        // Start a data source which is not receiving events from consensus.
+        let db = TmpDb::init().await;
+        let provider = Provider::new(QueryServiceProvider::new(
+            format!("http://localhost:{port}").parse().unwrap(),
+        ));
+        let mut data_source = FetchingDataSource::with_retry_delay(
+            SqlStorage::connect(db.config()).await.unwrap(),
+            provider.clone(),
+            Some(Duration::from_secs(1)),
+        )
+        .await
+        .unwrap();
+
+        // Start consensus.
+        network.start().await;
+
+        // Wait until the block height reaches 3. This gives us the genesis block, one additional
+        // block at the end, and one block to try fetching.
+        let leaves = { network.data_source().read().await.subscribe_leaves(1).await };
+        let leaves = leaves.take(2).collect::<Vec<_>>().await;
+        let test_leaf = &leaves[0];
+
+        // Give the node a leaf after the range of interest so it learns about the correct block
+        // height.
+        data_source
+            .insert_leaf(leaves.last().cloned().unwrap())
+            .await
+            .unwrap();
+        data_source.commit().await.unwrap();
+
+        // Cause requests to fail temporarily, so we can test retries.
+        provider.fail();
+
+        tracing::info!("requesting leaf from failing providers");
+        let fut = data_source.get_leaf(test_leaf.height() as usize).await;
+
+        // Wait a few retries and check that the request has not completed, since the provider is
+        // failing.
+        sleep(Duration::from_secs(5)).await;
+        fut.try_resolve().unwrap_err();
+
+        // As soon as the provider recovers, the request can complete.
+        provider.unfail();
+        assert_eq!(
+            data_source
+                .get_leaf(test_leaf.height() as usize)
+                .await
+                .await,
+            *test_leaf
+        );
+    }
 }
 
\ 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..95b4567cb 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 ab1c8887e..d96f1dbea 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 0a68a8413..da7dc25c8 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 Clone for Counter"],["impl<__T0: Clone, __T1: Clone> Clone for CustomSnafu<__T0, __T1>"],["impl<Types: Clone + NodeType> Clone for LeafQueryData<Types>"],["impl Clone for RequestSnafu"],["impl Clone for MempoolQueryData"],["impl<__T0: Clone> Clone for FetchTransactionSnafu<__T0>"],["impl Clone for MissingSnafu"],["impl Clone for Histogram"],["impl Clone for Error"],["impl<Types: NodeType> Clone for LeafId<Types>"],["impl<__T0: Clone> Clone for Snafu<__T0>"],["impl Clone for NotFoundSnafu"],["impl Clone for Config"],["impl<Types: Clone + NodeType> Clone for BlockQueryData<Types>"],["impl<Types: NodeType> Clone for BlockId<Types>"],["impl<Types, S, P> Clone for FetchingDataSource<Types, S, P>where\n Types: NodeType,"],["impl<Types: Clone + NodeType> Clone for PayloadQueryData<Types>"],["impl Clone for Label"],["impl Clone for QuerySnafu"],["impl Clone for QueryServiceProvider"],["impl<T, C> Clone for Fetcher<T, C>"],["impl Clone for Error"],["impl<__T0: Clone> Clone for QueryProposalsSnafu<__T0>"],["impl Clone for QueryError"],["impl Clone for Error"],["impl Clone for RequestSnafu"],["impl<__T0: Clone, __T1: Clone> Clone for CustomSnafu<__T0, __T1>"],["impl Clone for PrometheusMetrics"],["impl Clone for Error"],["impl Clone for InvalidSignatureKeySnafu"],["impl Clone for LeafRequest"],["impl<__T0: Clone> Clone for FetchLeafSnafu<__T0>"],["impl Clone for PayloadRequest"],["impl<Types: Clone + NodeType> Clone for InconsistentLeafError<Types>"],["impl<Types: Clone + NodeType> Clone for TransactionQueryData<Types>where\n Payload<Types>: QueryablePayload,"],["impl Clone for Gauge"],["impl<__T0: Clone> Clone for FetchBlockSnafu<__T0>"],["impl Clone for NoFetching"],["impl Clone for MetricsDataSource"],["impl<__T0: Clone, __T1: Clone> Clone for InvalidTransactionIndexSnafu<__T0, __T1>"],["impl<D: Clone, U: Clone> Clone for ExtensibleDataSource<D, U>"]] +"hotshot_query_service":[["impl Clone for Histogram"],["impl Clone for NotFoundSnafu"],["impl Clone for Error"],["impl Clone for MetricsDataSource"],["impl<__T0: Clone> Clone for FetchTransactionSnafu<__T0>"],["impl<__T0: Clone, __T1: Clone> Clone for CustomSnafu<__T0, __T1>"],["impl<T, C> Clone for Fetcher<T, C>"],["impl Clone for MissingSnafu"],["impl Clone for PayloadRequest"],["impl<__T0: Clone, __T1: Clone> Clone for InvalidTransactionIndexSnafu<__T0, __T1>"],["impl Clone for QueryError"],["impl<Types: Clone + NodeType> Clone for TransactionQueryData<Types>where\n Payload<Types>: QueryablePayload,"],["impl<__T0: Clone, __T1: Clone> Clone for CustomSnafu<__T0, __T1>"],["impl Clone for MempoolQueryData"],["impl Clone for RequestSnafu"],["impl Clone for QuerySnafu"],["impl Clone for PrometheusMetrics"],["impl<Types: NodeType> Clone for LeafId<Types>"],["impl<Types: Clone + NodeType> Clone for BlockQueryData<Types>"],["impl Clone for QueryServiceProvider"],["impl<D: Clone, U: Clone> Clone for ExtensibleDataSource<D, U>"],["impl<Types> Clone for AnyProvider<Types>where\n Types: NodeType,"],["impl Clone for Error"],["impl<Types, S, P> Clone for FetchingDataSource<Types, S, P>where\n Types: NodeType,"],["impl Clone for Error"],["impl Clone for RequestSnafu"],["impl<__T0: Clone> Clone for Snafu<__T0>"],["impl Clone for NoFetching"],["impl<Types: Clone + NodeType> Clone for InconsistentLeafError<Types>"],["impl Clone for Gauge"],["impl<__T0: Clone> Clone for QueryProposalsSnafu<__T0>"],["impl<__T0: Clone> Clone for FetchBlockSnafu<__T0>"],["impl Clone for LeafRequest"],["impl Clone for Counter"],["impl Clone for Error"],["impl Clone for Label"],["impl<__T0: Clone> Clone for FetchLeafSnafu<__T0>"],["impl<Types: Clone + NodeType> Clone for PayloadQueryData<Types>"],["impl Clone for Config"],["impl<Types: Clone + NodeType> Clone for LeafQueryData<Types>"],["impl<Types: NodeType> Clone for BlockId<Types>"],["impl Clone for InvalidSignatureKeySnafu"]] };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 d763d125b..f58c66efd 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<Types: NodeType> Eq for BlockId<Types>"],["impl<Types: Eq + NodeType> Eq for PayloadQueryData<Types>"],["impl<Types: Eq + NodeType> Eq for LeafQueryData<Types>"],["impl Eq for PayloadRequest"],["impl Eq for LeafRequest"],["impl Eq for MempoolQueryData"],["impl<Types: Eq + NodeType> Eq for TransactionQueryData<Types>where\n Payload<Types>: QueryablePayload,"],["impl<Types: NodeType> Eq for LeafId<Types>"],["impl<Types: Eq + NodeType> Eq for BlockQueryData<Types>"]] +"hotshot_query_service":[["impl<Types: NodeType> Eq for BlockId<Types>"],["impl<Types: Eq + NodeType> Eq for TransactionQueryData<Types>where\n Payload<Types>: QueryablePayload,"],["impl<Types: Eq + NodeType> Eq for BlockQueryData<Types>"],["impl<Types: NodeType> Eq for LeafId<Types>"],["impl Eq for MempoolQueryData"],["impl Eq for PayloadRequest"],["impl<Types: Eq + NodeType> Eq for LeafQueryData<Types>"],["impl Eq for LeafRequest"],["impl<Types: Eq + NodeType> Eq for PayloadQueryData<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/cmp/trait.PartialEq.js b/trait.impl/core/cmp/trait.PartialEq.js index f79e9640f..6d5ba5497 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<Types: NodeType> PartialEq for LeafId<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for LeafQueryData<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for PayloadQueryData<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for BlockQueryData<Types>"],["impl PartialEq for LeafRequest"],["impl<Types: NodeType> PartialEq for BlockId<Types>"],["impl PartialEq for PayloadRequest"],["impl<Types: PartialEq + NodeType> PartialEq for TransactionQueryData<Types>where\n Payload<Types>: QueryablePayload,"]] +"hotshot_query_service":[["impl<Types: PartialEq + NodeType> PartialEq for LeafQueryData<Types>"],["impl PartialEq for PayloadRequest"],["impl<Types: PartialEq + NodeType> PartialEq for PayloadQueryData<Types>"],["impl<Types: PartialEq + NodeType> PartialEq for BlockQueryData<Types>"],["impl PartialEq for MempoolQueryData"],["impl<Types: PartialEq + NodeType> PartialEq for TransactionQueryData<Types>where\n Payload<Types>: QueryablePayload,"],["impl PartialEq for LeafRequest"],["impl<Types: NodeType> PartialEq for LeafId<Types>"],["impl<Types: NodeType> PartialEq for BlockId<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/cmp/trait.PartialOrd.js b/trait.impl/core/cmp/trait.PartialOrd.js index e91bb0b0b..6c7008f57 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<Types: NodeType> PartialOrd for BlockId<Types>"],["impl PartialOrd for MempoolQueryData"]] +"hotshot_query_service":[["impl PartialOrd for MempoolQueryData"],["impl<Types: NodeType> PartialOrd for BlockId<Types>"],["impl<Types: NodeType> PartialOrd for LeafId<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/convert/trait.From.js b/trait.impl/core/convert/trait.From.js index e78f4568d..7852bccdf 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<LeafRequest> for usize"],["impl From<RequestError> for Error"],["impl<Types: NodeType> From<BlockQueryData<Types>> for PayloadQueryData<Types>"],["impl From<(String, StatusCode)> for Error"],["impl From<String> for Error"],["impl From<Error> for Error"],["impl From<(String, StatusCode)> 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<Error> for MetricsError"],["impl From<RequestError> for Error"],["impl From<Error> for Error"],["impl From<usize> for LeafRequest"],["impl From<RequestError> for Error"],["impl<Types: NodeType> From<usize> for LeafId<Types>"],["impl From<Error> for Error"],["impl From<Config> for Config"],["impl<Types: NodeType> From<usize> for BlockId<Types>"]] +"hotshot_query_service":[["impl From<(String, StatusCode)> for Error"],["impl From<(String, StatusCode)> for Error"],["impl<Types: NodeType> From<usize> for LeafId<Types>"],["impl<Types: NodeType> From<usize> for BlockId<Types>"],["impl From<Error> for MetricsError"],["impl From<RequestError> for Error"],["impl From<RequestError> for Error"],["impl<Types: NodeType> From<Commitment<<Types as NodeType>::BlockHeader>> for BlockId<Types>"],["impl From<(String, StatusCode)> for Error"],["impl From<Error> for Error"],["impl From<usize> for LeafRequest"],["impl From<Error> for Error"],["impl From<String> for Error"],["impl From<Config> for Config"],["impl<Types: NodeType> From<BlockQueryData<Types>> for PayloadQueryData<Types>"],["impl<Types: NodeType> From<Commitment<Leaf<Types>>> for LeafId<Types>"],["impl From<LeafRequest> for usize"],["impl From<Error> for Error"],["impl From<RequestError> 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 e2b833cf6..a44aee9c1 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 Default for Config"],["impl Default for MetricsDataSource"],["impl Default for MempoolQueryData"],["impl Default for Options"],["impl Default for Options"],["impl Default for NoFetching"],["impl<T, C> Default for Fetcher<T, C>"],["impl Default for PrometheusMetrics"],["impl Default for Options"]] +"hotshot_query_service":[["impl Default for Options"],["impl Default for NoFetching"],["impl Default for Config"],["impl Default for Options"],["impl Default for Options"],["impl Default for MetricsDataSource"],["impl Default for PrometheusMetrics"],["impl Default for Options"],["impl<T, C> Default for Fetcher<T, C>"],["impl Default for MempoolQueryData"],["impl<Types> Default for AnyProvider<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/error/trait.Error.js b/trait.impl/core/error/trait.Error.js index 8795654fe..3b892c14d 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<Types: NodeType> Error for InconsistentLeafError<Types>where\n Self: Debug + Display,"],["impl Error for QueryErrorwhere\n Self: Debug + Display,"],["impl Error for MetricsErrorwhere\n Self: Debug + Display,"],["impl Error for Errorwhere\n Self: Debug + Display,"],["impl Error for Errorwhere\n Self: Debug + Display,"],["impl Error for Errorwhere\n Self: Debug + Display,"],["impl Error for Errorwhere\n Self: Debug + Display,"]] +"hotshot_query_service":[["impl<Types: NodeType> Error for InconsistentLeafError<Types>where\n Self: Debug + Display,"],["impl Error for Errorwhere\n Self: Debug + Display,"],["impl Error for MetricsErrorwhere\n Self: Debug + Display,"],["impl Error for QueryErrorwhere\n Self: Debug + Display,"],["impl Error for Errorwhere\n Self: Debug + Display,"],["impl Error for Errorwhere\n Self: Debug + Display,"],["impl Error for Errorwhere\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 5874c9d32..b78cc6f7f 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 Debug for InvalidSignatureKeySnafu"],["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 MetricsError"],["impl<Types: Debug + NodeType> Debug for LeafQueryData<Types>"],["impl<__T0: Debug> Debug for QueryProposalsSnafu<__T0>"],["impl Debug for QuerySnafu"],["impl Debug for Error"],["impl Debug for Gauge"],["impl<Types: Debug + NodeType> Debug for BlockQueryData<Types>"],["impl Debug for QueryError"],["impl<T, C> Debug for Fetcher<T, C>"],["impl Debug for SqlStorage"],["impl<__T0: Debug> Debug for Snafu<__T0>"],["impl<Types: Debug + NodeType> Debug for PayloadQueryData<Types>"],["impl<__T0: Debug, __T1: Debug> Debug for CustomSnafu<__T0, __T1>"],["impl<__T0: Debug> Debug for FetchTransactionSnafu<__T0>"],["impl<Types: Debug + NodeType> Debug for TransactionQueryData<Types>where\n Payload<Types>: QueryablePayload,"],["impl Debug for Error"],["impl<D: Debug, U: Debug> Debug for ExtensibleDataSource<D, U>"],["impl Debug for MempoolQueryData"],["impl Debug for RequestSnafu"],["impl<Types: NodeType> Debug for BlockId<Types>"],["impl Debug for MetricsDataSource"],["impl Debug for Label"],["impl<__T0: Debug> Debug for FetchBlockSnafu<__T0>"],["impl Debug for Histogram"],["impl Debug for Counter"],["impl Debug for QueryServiceProvider"],["impl<Types: Debug + NodeType> Debug for InconsistentLeafError<Types>"],["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 Debug for PrometheusMetrics"],["impl<__T0: Debug, __T1: Debug> Debug for InvalidTransactionIndexSnafu<__T0, __T1>"],["impl Debug for NotFoundSnafu"],["impl Debug for MissingSnafu"],["impl Debug for Error"],["impl Debug for Error"],["impl<__T0: Debug> Debug for FetchLeafSnafu<__T0>"],["impl Debug for NoFetching"],["impl Debug for Config"],["impl Debug for PayloadRequest"],["impl<__T0: Debug, __T1: Debug> Debug for CustomSnafu<__T0, __T1>"],["impl Debug for RequestSnafu"],["impl Debug for LeafRequest"]] +"hotshot_query_service":[["impl Debug for PayloadRequest"],["impl<Types: Debug + NodeType> Debug for LeafQueryData<Types>"],["impl Debug for MempoolQueryData"],["impl Debug for Counter"],["impl Debug for LeafRequest"],["impl Debug for Error"],["impl Debug for NoFetching"],["impl<__T0: Debug> Debug for FetchBlockSnafu<__T0>"],["impl Debug for Error"],["impl Debug for NotFoundSnafu"],["impl Debug for Histogram"],["impl<D: Debug, U: Debug> Debug for ExtensibleDataSource<D, U>"],["impl<__T0: Debug, __T1: Debug> Debug for CustomSnafu<__T0, __T1>"],["impl Debug for MetricsDataSource"],["impl Debug for RequestSnafu"],["impl Debug for Error"],["impl<Types: Debug + NodeType> Debug for TransactionQueryData<Types>where\n Payload<Types>: QueryablePayload,"],["impl<Types: Debug + NodeType> Debug for InconsistentLeafError<Types>"],["impl Debug for Config"],["impl Debug for Error"],["impl Debug for InvalidSignatureKeySnafu"],["impl<Types: NodeType> Debug for BlockId<Types>"],["impl<Types, S, P> Debug for FetchingDataSource<Types, S, P>where\n Types: NodeType,\n S: Debug,\n P: Debug,"],["impl<__T0: Debug> Debug for Snafu<__T0>"],["impl<__T0: Debug> Debug for FetchTransactionSnafu<__T0>"],["impl Debug for QueryError"],["impl Debug for Label"],["impl Debug for PrometheusMetrics"],["impl Debug for QuerySnafu"],["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 PayloadQueryData<Types>"],["impl Debug for RequestSnafu"],["impl<__T0: Debug> Debug for FetchLeafSnafu<__T0>"],["impl Debug for SqlStorage"],["impl<Types: Debug + NodeType> Debug for BlockQueryData<Types>"],["impl Debug for MetricsError"],["impl Debug for QueryServiceProvider"],["impl Debug for MissingSnafu"],["impl<T, C> Debug for Fetcher<T, C>"],["impl<__T0: Debug, __T1: Debug> Debug for InvalidTransactionIndexSnafu<__T0, __T1>"],["impl Debug for Gauge"],["impl<__T0: Debug, __T1: Debug> Debug for CustomSnafu<__T0, __T1>"],["impl<Types: NodeType> Debug for LeafId<Types>"],["impl<Types> Debug for AnyProvider<Types>where\n Types: NodeType,"],["impl<__T0: Debug> Debug for QueryProposalsSnafu<__T0>"]] };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 5c0a3d5e3..69a2d66de 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 Display for QueryError"],["impl<Types: NodeType> Display for LeafId<Types>"],["impl<Types: NodeType> Display for BlockId<Types>"],["impl Display for Error"],["impl Display for Error"],["impl Display for Error"],["impl Display for MetricsError"],["impl Display for Error"],["impl<Types: NodeType> Display for InconsistentLeafError<Types>"]] +"hotshot_query_service":[["impl Display for Error"],["impl Display for Error"],["impl<Types: NodeType> Display for InconsistentLeafError<Types>"],["impl Display for Error"],["impl Display for Error"],["impl Display for MetricsError"],["impl<Types: NodeType> Display for LeafId<Types>"],["impl Display for QueryError"],["impl<Types: NodeType> Display for BlockId<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/hash/trait.Hash.js b/trait.impl/core/hash/trait.Hash.js index b363bec3d..9764839ac 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 MempoolQueryData"],["impl Hash for PayloadRequest"],["impl Hash for LeafRequest"],["impl<Types: NodeType> Hash for LeafId<Types>"]] +"hotshot_query_service":[["impl<Types: NodeType> Hash for LeafId<Types>"],["impl Hash for MempoolQueryData"],["impl Hash for PayloadRequest"],["impl<Types: NodeType> Hash for BlockId<Types>"],["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 c2c4ab390..96834d035 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 Snafu<__T0>"],["impl<Types: NodeType> Copy for BlockId<Types>"],["impl Copy for QuerySnafu"],["impl Copy for LeafRequest"],["impl<__T0: Copy> Copy for FetchBlockSnafu<__T0>"],["impl<__T0: Copy, __T1: Copy> Copy for InvalidTransactionIndexSnafu<__T0, __T1>"],["impl<__T0: Copy> Copy for QueryProposalsSnafu<__T0>"],["impl<__T0: Copy, __T1: Copy> Copy for CustomSnafu<__T0, __T1>"],["impl<__T0: Copy, __T1: Copy> Copy for CustomSnafu<__T0, __T1>"],["impl<__T0: Copy> Copy for FetchLeafSnafu<__T0>"],["impl Copy for MissingSnafu"],["impl Copy for NotFoundSnafu"],["impl Copy for RequestSnafu"],["impl Copy for PayloadRequest"],["impl Copy for RequestSnafu"],["impl<Types: NodeType> Copy for LeafId<Types>"],["impl<__T0: Copy> Copy for FetchTransactionSnafu<__T0>"],["impl<D: Copy, U: Copy> Copy for ExtensibleDataSource<D, U>"],["impl Copy for InvalidSignatureKeySnafu"],["impl Copy for NoFetching"]] +"hotshot_query_service":[["impl Copy for RequestSnafu"],["impl Copy for QuerySnafu"],["impl Copy for MissingSnafu"],["impl<__T0: Copy> Copy for FetchBlockSnafu<__T0>"],["impl<__T0: Copy> Copy for Snafu<__T0>"],["impl<__T0: Copy, __T1: Copy> Copy for InvalidTransactionIndexSnafu<__T0, __T1>"],["impl<__T0: Copy, __T1: Copy> Copy for CustomSnafu<__T0, __T1>"],["impl<__T0: Copy, __T1: Copy> Copy for CustomSnafu<__T0, __T1>"],["impl<__T0: Copy> Copy for FetchLeafSnafu<__T0>"],["impl<__T0: Copy> Copy for FetchTransactionSnafu<__T0>"],["impl Copy for NotFoundSnafu"],["impl Copy for LeafRequest"],["impl<__T0: Copy> Copy for QueryProposalsSnafu<__T0>"],["impl<D: Copy, U: Copy> Copy for ExtensibleDataSource<D, U>"],["impl Copy for NoFetching"],["impl Copy for PayloadRequest"],["impl<Types: NodeType> Copy for LeafId<Types>"],["impl<Types: NodeType> Copy for BlockId<Types>"],["impl Copy for RequestSnafu"],["impl Copy for InvalidSignatureKeySnafu"]] };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 ec9dd6320..7a989ab23 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,",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 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 FetchingDataSource<Types, S, P>",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["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 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 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 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,",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 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 FetchingDataSource<Types, S, P>",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["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 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 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 3187f730f..c43d47457 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 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 FetchingDataSource<Types, S, P>where\n P: Send + Sync,\n S: Send + Sync,",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["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 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 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 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 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 FetchingDataSource<Types, S, P>where\n P: Send + Sync,\n S: Send + Sync,",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["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 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 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 2a9ea4099..96d5465df 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 LeafQueryData<Types>"],["impl<Types: NodeType> StructuralEq for BlockQueryData<Types>"],["impl<Types: NodeType> StructuralEq for PayloadQueryData<Types>"],["impl StructuralEq for LeafRequest"],["impl<Types: NodeType> StructuralEq for TransactionQueryData<Types>where\n Payload<Types>: QueryablePayload,"],["impl StructuralEq for MempoolQueryData"]] +"hotshot_query_service":[["impl StructuralEq for PayloadRequest"],["impl StructuralEq for MempoolQueryData"],["impl<Types: NodeType> StructuralEq for TransactionQueryData<Types>where\n Payload<Types>: QueryablePayload,"],["impl<Types: NodeType> StructuralEq for LeafQueryData<Types>"],["impl<Types: NodeType> StructuralEq for BlockQueryData<Types>"],["impl StructuralEq for LeafRequest"],["impl<Types: NodeType> StructuralEq for PayloadQueryData<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 9ae458ffa..b378389d4 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 LeafRequest"],["impl<Types: NodeType> StructuralPartialEq for PayloadQueryData<Types>"],["impl<Types: NodeType> StructuralPartialEq for BlockQueryData<Types>"],["impl StructuralPartialEq for PayloadRequest"],["impl<Types: NodeType> StructuralPartialEq for LeafQueryData<Types>"],["impl<Types: NodeType> StructuralPartialEq for TransactionQueryData<Types>where\n Payload<Types>: QueryablePayload,"]] +"hotshot_query_service":[["impl<Types: NodeType> StructuralPartialEq for PayloadQueryData<Types>"],["impl<Types: NodeType> StructuralPartialEq for BlockQueryData<Types>"],["impl StructuralPartialEq for LeafRequest"],["impl<Types: NodeType> StructuralPartialEq for TransactionQueryData<Types>where\n Payload<Types>: QueryablePayload,"],["impl StructuralPartialEq for MempoolQueryData"],["impl StructuralPartialEq for PayloadRequest"],["impl<Types: NodeType> StructuralPartialEq 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.Sync.js b/trait.impl/core/marker/trait.Sync.js index 8ef3adae0..30a180c48 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 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 FetchingDataSource<Types, S, P>where\n P: Send + Sync,\n S: Send + Sync,",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["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 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 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 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 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 FetchingDataSource<Types, S, P>where\n P: Send + Sync,\n S: Send + Sync,",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["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 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 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 486925747..a6d54bf09 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,\n <Types as NodeType>::Transaction: 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,",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 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 FetchingDataSource<Types, S, P>",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["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>::Transaction: 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 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 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 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,\n <Types as NodeType>::Transaction: 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,",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 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 FetchingDataSource<Types, S, P>",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["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>::Transaction: 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 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 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/panic/unwind_safe/trait.RefUnwindSafe.js b/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js index 36b30f7a8..a14a18e38 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,\n <Types as NodeType>::Transaction: 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,",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 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 FetchingDataSource<Types, S, P>",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["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>::Transaction: 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 !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 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 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,\n <Types as NodeType>::Transaction: 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,",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 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 FetchingDataSource<Types, S, P>",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["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>::Transaction: 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 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 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 883a67b5b..5476de531 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,\n <Types as NodeType>::Transaction: 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,",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 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 FetchingDataSource<Types, S, P>",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["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>::Transaction: 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 !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 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 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,\n <Types as NodeType>::Transaction: 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,",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 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 FetchingDataSource<Types, S, P>",1,["hotshot_query_service::data_source::fetching::FetchingDataSource"]],["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>::Transaction: 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 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 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/fetching/provider/trait.LocalProvider.js b/trait.impl/hotshot_query_service/fetching/provider/trait.LocalProvider.js deleted file mode 100644 index 146940164..000000000 --- a/trait.impl/hotshot_query_service/fetching/provider/trait.LocalProvider.js +++ /dev/null @@ -1,3 +0,0 @@ -(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/serde/de/trait.Deserialize.js b/trait.impl/serde/de/trait.Deserialize.js index ab6f27224..a0da4eaa2 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 TransactionQueryData<Types>where\n Payload<Types>: QueryablePayload,"],["impl<'de, Types: NodeType> Deserialize<'de> for PayloadQueryData<Types>"],["impl<'de> Deserialize<'de> for MempoolQueryData"],["impl<'de, Types: NodeType> Deserialize<'de> for BlockQueryData<Types>"],["impl<'de> Deserialize<'de> for Error"],["impl<'de> Deserialize<'de> for Error"],["impl<'de> Deserialize<'de> for Error"],["impl<'de, Types: NodeType> Deserialize<'de> for LeafQueryData<Types>"],["impl<'de> Deserialize<'de> for QueryError"],["impl<'de> Deserialize<'de> for Error"]] +"hotshot_query_service":[["impl<'de, Types: NodeType> Deserialize<'de> for TransactionQueryData<Types>where\n Payload<Types>: QueryablePayload,"],["impl<'de, Types: NodeType> Deserialize<'de> for PayloadQueryData<Types>"],["impl<'de> Deserialize<'de> for Error"],["impl<'de> Deserialize<'de> for Error"],["impl<'de, Types: NodeType> Deserialize<'de> for LeafQueryData<Types>"],["impl<'de> Deserialize<'de> for QueryError"],["impl<'de> Deserialize<'de> for MempoolQueryData"],["impl<'de> Deserialize<'de> for Error"],["impl<'de, Types: NodeType> Deserialize<'de> for BlockQueryData<Types>"],["impl<'de> Deserialize<'de> 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/serde/ser/trait.Serialize.js b/trait.impl/serde/ser/trait.Serialize.js index 1cfd2aede..8fb693d57 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<Types: NodeType> Serialize for TransactionQueryData<Types>where\n Payload<Types>: QueryablePayload,"],["impl Serialize for Error"],["impl<Types: NodeType> Serialize for BlockQueryData<Types>"],["impl<Types: NodeType> Serialize for LeafQueryData<Types>"],["impl Serialize for Error"],["impl Serialize for Error"],["impl Serialize for MempoolQueryData"],["impl<Types: NodeType> Serialize for PayloadQueryData<Types>"],["impl Serialize for Error"],["impl Serialize for QueryError"]] +"hotshot_query_service":[["impl Serialize for MempoolQueryData"],["impl Serialize for Error"],["impl<Types: NodeType> Serialize for LeafQueryData<Types>"],["impl Serialize for Error"],["impl Serialize for QueryError"],["impl Serialize for Error"],["impl<Types: NodeType> Serialize for BlockQueryData<Types>"],["impl<Types: NodeType> Serialize for PayloadQueryData<Types>"],["impl Serialize for Error"],["impl<Types: NodeType> Serialize 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/snafu/trait.ErrorCompat.js b/trait.impl/snafu/trait.ErrorCompat.js index 484ed3618..c8ad4b768 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 MetricsError"],["impl ErrorCompat for Error"],["impl ErrorCompat for Error"],["impl ErrorCompat for QueryError"],["impl<Types: NodeType> ErrorCompat for InconsistentLeafError<Types>"],["impl ErrorCompat for Error"],["impl ErrorCompat for Error"]] +"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 QueryError"],["impl ErrorCompat for Error"],["impl ErrorCompat for MetricsError"]] };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 1de7bf69e..99f2d556a 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 IntoError<Error> for InvalidSignatureKeySnafuwhere\n Error: Error + ErrorCompat,"],["impl<__T0> IntoError<Error> for FetchLeafSnafu<__T0>where\n Error: Error + ErrorCompat,\n __T0: Into<String>,"],["impl IntoError<QueryError> for NotFoundSnafuwhere\n QueryError: Error + ErrorCompat,"],["impl<__T0> IntoError<Error> for FetchTransactionSnafu<__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>,"],["impl<__T0, __T1> IntoError<Error> for InvalidTransactionIndexSnafu<__T0, __T1>where\n Error: Error + ErrorCompat,\n __T0: Into<u64>,\n __T1: Into<u64>,"],["impl<__T0> IntoError<Error> for QueryProposalsSnafu<__T0>where\n Error: Error + ErrorCompat,\n __T0: Into<String>,"],["impl IntoError<Error> for QuerySnafuwhere\n Error: 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, __T1> IntoError<Error> for CustomSnafu<__T0, __T1>where\n Error: Error + ErrorCompat,\n __T0: Into<String>,\n __T1: Into<StatusCode>,"],["impl IntoError<Error> for RequestSnafuwhere\n Error: Error + ErrorCompat,"],["impl IntoError<Error> for RequestSnafuwhere\n Error: Error + ErrorCompat,"],["impl IntoError<QueryError> for MissingSnafuwhere\n QueryError: Error + ErrorCompat,"],["impl<__T0> IntoError<QueryError> for Snafu<__T0>where\n QueryError: Error + ErrorCompat,\n __T0: Into<String>,"]] +"hotshot_query_service":[["impl<__T0> IntoError<Error> for FetchBlockSnafu<__T0>where\n Error: Error + ErrorCompat,\n __T0: Into<String>,"],["impl IntoError<Error> for QuerySnafuwhere\n Error: 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 IntoError<Error> for RequestSnafuwhere\n Error: Error + ErrorCompat,"],["impl IntoError<QueryError> for NotFoundSnafuwhere\n QueryError: 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<__T0> IntoError<QueryError> for Snafu<__T0>where\n QueryError: Error + ErrorCompat,\n __T0: Into<String>,"],["impl IntoError<QueryError> for MissingSnafuwhere\n QueryError: Error + ErrorCompat,"],["impl IntoError<Error> for RequestSnafuwhere\n Error: Error + ErrorCompat,"],["impl IntoError<Error> for InvalidSignatureKeySnafuwhere\n Error: 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 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>,"]] };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_query_service/data_source/struct.FetchingDataSource.js b/type.impl/hotshot_query_service/data_source/struct.FetchingDataSource.js index 461d60e99..a38b758c8 100644 --- a/type.impl/hotshot_query_service/data_source/struct.FetchingDataSource.js +++ b/type.impl/hotshot_query_service/data_source/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,\n P: Send + Sync,

source

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

Create a data source with local storage and a remote data availability 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> 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> 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> 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,

","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> 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> 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> 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"]] +"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,\n P: Send + Sync,

source

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

Create a data source with local storage and a remote data availability provider.

\n
source

pub async fn with_retry_delay(\n storage: S,\n provider: P,\n delay: Option<Duration>\n) -> Result<Self>

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

","NodeDataSource","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> 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> 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> 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> 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"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file