pub struct DocumentQuery {
pub select: SelectProjection,
pub data_contract: Arc<DataContract>,
pub document_type_name: String,
pub where_clauses: Vec<WhereClause>,
pub time_range_clauses: Vec<TimeRangeClause>,
pub group_by: Vec<String>,
pub having: Vec<HavingClause>,
pub order_by_clauses: Vec<OrderClause>,
pub limit: u32,
pub offset: Option<u32>,
pub start: Option<Start>,
}Expand description
Request that is used to query documents from the Dash Platform.
This is an abstraction layer built on top of [GetDocumentsRequest] to address issues with missing details required to correctly verify proofs returned by the Dash Platform.
Conversions are implemented between this type, [GetDocumentsRequest] and [DriveDocumentQuery] using TryFrom trait.
Fields§
§select: SelectProjectionSQL-shaped SELECT projection — (function, field) pair.
Documents returns matched rows; Count / Sum / Avg
return either a single aggregate (empty group_by) or
per-group entries (non-empty group_by). Defaults to
SelectProjection::documents() so callers that don’t opt
into the SQL-shaped surface get plain document-fetch
semantics.
#[serde(default)] here (and on group_by / having
below) is wire-format-compat for mock vectors captured
before the SQL-shaped surface was added: default
SelectProjection is documents(), Vec defaults to
empty — together those mean an old fixture without these
fields deserializes to the documents-fetch shape it was
originally captured under. New fixtures should serialize
the fields explicitly.
data_contract: Arc<DataContract>Data contract
document_type_name: StringDocument type for the data contract
where_clauses: Vec<WhereClause>where clauses for the query
time_range_clauses: Vec<TimeRangeClause>Time-range (IN_TIME_RANGE) selections on a timestamp field covered
by a timeRange index. These are emitted as IN_TIME_RANGE clauses
on the v1 wire and resolved server-side from the current block time;
the verifier re-derives the same bucket from the quorum-signed
response metadata time. v1-only (the v0 wire has no IN_TIME_RANGE
operator). See Self::with_time_range and
Self::with_time_range_grid.
group_by: Vec<String>SQL GROUP BY field names, in left-to-right order. Empty =
no explicit grouping (aggregate count for select=Count).
Only meaningful when select=Count; non-empty with
select=Documents is rejected by the server as unsupported.
having: Vec<HavingClause>SQL HAVING clauses — boolean aggregate filters that apply
to the grouped rows produced by select = Count | Sum | Avg
with a non-empty group_by. Unlike where_clauses, the left
side is an aggregate (COUNT(*), SUM(field), AVG(field))
rather than a raw row field. See [HavingClause] /
[drive::query::HavingAggregate] /
[drive::query::HavingOperator] for the catalogs. Multiple
entries combine with implicit AND.
Served from protocol version 14, for exactly one clause
bounding the selected aggregate with a contiguous-range
operator (=, >, >=, <, <=, BETWEEN*) — the
having-range surface, fetched as
DocumentHavingEntries
and served as a value-bounded range read of the covering ranked
index’s axis secondary (the index must declare the matching
rankedCountable / rankedSummable / rankedAverageable
keyword). Everything else — multiple clauses (implicit AND), a
clause on an aggregate the select does not project, != / IN
— is still rejected with QuerySyntaxError::Unsupported, as is
any non-empty value at protocol version 13 and earlier.
having does not express ranking. “The n highest-scoring
groups” is Self::order_by_selected_aggregate +
Self::with_limit — SQL’s own ORDER BY <agg> DESC LIMIT n
— which is also served from protocol version 14. The two
compose only in the one shape the having grammar allows: an
ORDER BY naming the selected aggregate sets the having
range’s walk direction.
order_by_clauses: Vec<OrderClause>order_by clauses for the query.
For select = Documents these order the matched rows. For the
ranked surface a single clause naming the selected
aggregate orders the groups — see
Self::order_by_selected_aggregate, which builds it.
limit: u32queryset limit. 0 is the sentinel for “unset / default” and
is translated to None on the V1 wire (optional uint32).
offset: Option<u32>SQL OFFSET — how many result rows to skip before the returned
page. None leaves the field unset on the wire.
Served on exactly one path: the ranked surface (protocol
version 14+), where it skips that many ranks, so
.order_by_selected_aggregate(Descending).with_limit(1) .with_offset(4) is the 5th-best group. Everywhere else the
server rejects a set offset with Unsupported("OFFSET pagination is not yet implemented").
#[serde(default)] for the same mock-vector compatibility
reason as select / group_by / having: a fixture captured
before offsets existed deserializes to None.
start: Option<Start>first object to start with
Implementations§
Source§impl DocumentQuery
impl DocumentQuery
Sourcepub fn new<C: Into<Arc<DataContract>>>(
contract: C,
document_type_name: &str,
) -> Result<Self, Error>
pub fn new<C: Into<Arc<DataContract>>>( contract: C, document_type_name: &str, ) -> Result<Self, Error>
Create new DocumentQuery for provided contract and document type name.
Sourcepub fn new_with_drive_query(d: &DriveDocumentQuery<'_>) -> Result<Self, Error>
pub fn new_with_drive_query(d: &DriveDocumentQuery<'_>) -> Result<Self, Error>
Create new document query based on a [DriveDocumentQuery].
Fails when the drive query carries time-range resolution provenance
(resolved_time_ranges): the resolved bucket equality cannot be
represented without it — see the TryFrom impl. Build the query
with Self::with_time_range / Self::with_time_range_grid
instead for time-range selections.
Sourcepub fn with_document_id(self, document_id: &Identifier) -> Self
pub fn with_document_id(self, document_id: &Identifier) -> Self
Point to a specific document ID.
Sourcepub fn with_where(self, clause: WhereClause) -> Self
pub fn with_where(self, clause: WhereClause) -> Self
Add new where clause to the query.
Existing where clauses will be preserved.
Sourcepub fn with_time_range(
self,
field: impl Into<String>,
selector: TimeRangeSelector,
) -> Self
pub fn with_time_range( self, field: impl Into<String>, selector: TimeRangeSelector, ) -> Self
Restrict the query to a single time-range bucket of field
(a timestamp covered by a timeRange index), selecting either the
[TimeRangeSelector::Newest] or [TimeRangeSelector::Oldest] currently
active range. Emitted as an IN_TIME_RANGE clause on the v1 wire and
resolved server-side from the current block time; the proof verifier
re-derives the identical bucket from the quorum-signed response
metadata time. Requires protocol version 14+ — the first version
whose contract grammar hosts timeRange indexes.
The bare selector is unambiguous only while exactly one grid buckets
field; when the contract declares several grids over it, use
Self::with_time_range_grid to name one.
Existing time-range selections are preserved.
Sourcepub fn with_time_range_grid(
self,
field: impl Into<String>,
selector: TimeRangeSelector,
grid: TimeRangeGridSpec,
) -> Self
pub fn with_time_range_grid( self, field: impl Into<String>, selector: TimeRangeSelector, grid: TimeRangeGridSpec, ) -> Self
Self::with_time_range naming a specific grid — required when the
contract buckets field with more than one timeRange grid. The
spec’s range / step / phase are the contract’s own declared
seconds, verbatim.
Existing time-range selections are preserved.
Sourcepub fn with_order_by(self, clause: OrderClause) -> Self
pub fn with_order_by(self, clause: OrderClause) -> Self
Add order by clause to the query.
Existing order by clauses will be preserved.
Sourcepub fn with_select(self, select: SelectProjection) -> Self
pub fn with_select(self, select: SelectProjection) -> Self
Set the SQL-shaped SELECT projection.
Construct the [SelectProjection] via its helpers:
[SelectProjection::documents] (the default — matched
rows), [SelectProjection::count_star] for COUNT(*),
[SelectProjection::count_field] for COUNT(field),
[SelectProjection::sum] for SUM(field),
[SelectProjection::avg] for AVG(field). Pair the
count/sum/avg projections with [DocumentCount::fetch]
(single aggregate, empty group_by) or
[DocumentSplitCounts::fetch] (per-group entries,
non-empty group_by).
Server capability today: Documents, COUNT(*),
SUM(<field>), and AVG(<field>) are evaluated
end-to-end. COUNT(<field>), MIN(<field>), and
MAX(<field>) are accepted by the SDK but rejected by the
server with Unsupported("SELECT … is not yet implemented") — the surface is shipped first and
execution lands later.
Sourcepub fn with_group_by<S: Into<String>>(self, field: S) -> Self
pub fn with_group_by<S: Into<String>>(self, field: S) -> Self
Set the GROUP BY field to a single field name.
Convenience wrapper around Self::with_group_by_fields.
Replaces any previously set group_by. Pair with
Self::with_select (e.g.
with_select(SelectProjection::count_star())) for the
per-group entries shape.
Sourcepub fn with_group_by_fields<I, S>(self, fields: I) -> Self
pub fn with_group_by_fields<I, S>(self, fields: I) -> Self
Set the full GROUP BY field list (replaces any previously
set group_by).
Multi-field group_by is only accepted by the server for
(in_field, range_field) matching a compound In + range
where clause against a rangeCountable: true index. Other
non-empty shapes return QuerySyntaxError::Unsupported.
Sourcepub fn with_having(self, having: Vec<HavingClause>) -> Self
pub fn with_having(self, having: Vec<HavingClause>) -> Self
Set the HAVING clauses (replaces any prior value).
From protocol version 14, a grouped aggregate query carrying
exactly one clause that bounds the selected aggregate with
a contiguous-range operator (=, >, >=, <, <=, the
BETWEEN variants) is served as a value-bounded range read of
the covering ranked index’s axis secondary — fetch the result
through DocumentHavingEntries::fetch, which verifies the
proof including its completeness. The server still rejects
multiple clauses, a clause on a different aggregate than the
select’s, and the non-contiguous operators (!=, IN);
protocol version 13 and earlier reject every non-empty
having.
This is not how you ask for a ranking — see
Self::order_by_selected_aggregate.
Sourcepub fn order_by_selected_aggregate(self, direction: RankingDirection) -> Self
pub fn order_by_selected_aggregate(self, direction: RankingDirection) -> Self
Order the GROUP BY groups by the aggregate this query
selects — the ranked surface, ORDER BY <the selected aggregate> [ASC|DESC] (protocol version 14+).
Replaces any previously set order_by, because a ranked query
takes exactly one ordering clause and a second one is rejected
rather than combined.
The ordered field name is derived from the current
Self::select by rs-drive’s own
[ranked_order_key] — SUM(f) / AVG(f) are named by f,
and COUNT(*) by the $count sentinel. Calling
Self::with_select after this method leaves a stale field
name behind and the server will refuse the request; set the
select first, which is also how the query reads.
Pair with Self::with_limit (the ranking’s n, 1 ..= 100)
and optionally Self::with_offset, then fetch with
DocumentRankedEntries.
§The 5th-best group
// SELECT avg(grade) GROUP BY restaurantId
// ORDER BY avg(grade) DESC LIMIT 1 OFFSET 4
let query = DocumentQuery::new(contract, "review")?
.with_select(SelectProjection::avg("grade"))
.with_group_by("restaurantId")
.order_by_selected_aggregate(RankingDirection::Descending)
.with_limit(1)
.with_offset(4);Sourcepub fn with_offset(self, offset: u32) -> Self
pub fn with_offset(self, offset: u32) -> Self
Set the SQL OFFSET — how many ranks to skip before the
returned page.
Only the ranked surface honours it (see
Self::order_by_selected_aggregate); on every other path the
server rejects a set offset with Unsupported. There is no
ceiling: grovedb counts the skipped region from the subtree
aggregates instead of walking it, on both prove settings, so
the cost of a deep offset does not scale with the offset. It is
not identical to a shallow one — offset = 0 keeps a sequential
fast path, a positive offset descends the tree in O(log n),
and an offset at or past the population is answered from the
root without descending at all — but nothing here grows with how
far you page, which is why there is no ceiling. Only a proved
response additionally attests the count.
An offset past the end of the ranking is a legitimate answer
rather than an error — the page comes back empty, and on a
proved fetch its starting_rank is the ranking’s attested total
population.
Sourcepub fn with_limit(self, limit: u32) -> Self
pub fn with_limit(self, limit: u32) -> Self
Set the query limit. 0 means “unset” — translated to
None on the V1 wire (the proto field is optional uint32).
On select=Count with non-empty group_by against the
prove path, the server validates rather than clamps:
limit > max_query_limit is rejected with
InvalidLimit rather than silently truncated, since
clamping would invisibly break proof verification.
Leaving the limit unset (0) falls back to
drive::config::DEFAULT_QUERY_LIMIT on the proof verifier
side, keeping proof bytes deterministic across operators.
Sourcepub fn try_into_request_for_version(
self,
platform_version: &PlatformVersion,
) -> Result<GetDocumentsRequest, Error>
pub fn try_into_request_for_version( self, platform_version: &PlatformVersion, ) -> Result<GetDocumentsRequest, Error>
Convert into the wire-format [GetDocumentsRequest] using a
specific [PlatformVersion] to pick V0 vs V1. The dispatch
boundary is the document_query feature-version on the
platform_version: 0 → V0, 1 → V1.
Trait Implementations§
Source§impl Clone for DocumentQuery
impl Clone for DocumentQuery
Source§fn clone(&self) -> DocumentQuery
fn clone(&self) -> DocumentQuery
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for DocumentQuery
impl Debug for DocumentQuery
Source§impl<'de> Deserialize<'de> for DocumentQuery
impl<'de> Deserialize<'de> for DocumentQuery
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl FromProof<DocumentQuery> for DocumentAverage
impl FromProof<DocumentQuery> for DocumentAverage
Source§type Request = DocumentQuery
type Request = DocumentQuery
Source§fn maybe_from_proof_with_metadata<'a, I: Into<Self::Request>, O: Into<Self::Response>>(
request: I,
response: O,
_network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Option<Self>, ResponseMetadata, Proof), Error>where
Self: 'a,
fn maybe_from_proof_with_metadata<'a, I: Into<Self::Request>, O: Into<Self::Response>>(
request: I,
response: O,
_network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Option<Self>, ResponseMetadata, Proof), Error>where
Self: 'a,
§fn maybe_from_proof<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<Option<Self>, Error>
fn maybe_from_proof<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<Option<Self>, Error>
§fn from_proof<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<Self, Error>
fn from_proof<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<Self, Error>
§fn from_proof_with_metadata<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Self, ResponseMetadata), Error>
fn from_proof_with_metadata<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<(Self, ResponseMetadata), Error>
§fn from_proof_with_metadata_and_proof<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Self, ResponseMetadata, Proof), Error>
fn from_proof_with_metadata_and_proof<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<(Self, ResponseMetadata, Proof), Error>
Source§impl FromProof<DocumentQuery> for DocumentCount
impl FromProof<DocumentQuery> for DocumentCount
Source§type Request = DocumentQuery
type Request = DocumentQuery
Source§fn maybe_from_proof_with_metadata<'a, I: Into<Self::Request>, O: Into<Self::Response>>(
request: I,
response: O,
_network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Option<Self>, ResponseMetadata, Proof), Error>where
Self: 'a,
fn maybe_from_proof_with_metadata<'a, I: Into<Self::Request>, O: Into<Self::Response>>(
request: I,
response: O,
_network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Option<Self>, ResponseMetadata, Proof), Error>where
Self: 'a,
§fn maybe_from_proof<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<Option<Self>, Error>
fn maybe_from_proof<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<Option<Self>, Error>
§fn from_proof<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<Self, Error>
fn from_proof<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<Self, Error>
§fn from_proof_with_metadata<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Self, ResponseMetadata), Error>
fn from_proof_with_metadata<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<(Self, ResponseMetadata), Error>
§fn from_proof_with_metadata_and_proof<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Self, ResponseMetadata, Proof), Error>
fn from_proof_with_metadata_and_proof<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<(Self, ResponseMetadata, Proof), Error>
Source§impl FromProof<DocumentQuery> for DocumentHavingEntries
impl FromProof<DocumentQuery> for DocumentHavingEntries
Source§type Request = DocumentQuery
type Request = DocumentQuery
Source§fn maybe_from_proof_with_metadata<'a, I: Into<Self::Request>, O: Into<Self::Response>>(
request: I,
response: O,
_network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Option<Self>, ResponseMetadata, Proof), Error>where
Self: 'a,
fn maybe_from_proof_with_metadata<'a, I: Into<Self::Request>, O: Into<Self::Response>>(
request: I,
response: O,
_network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Option<Self>, ResponseMetadata, Proof), Error>where
Self: 'a,
§fn maybe_from_proof<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<Option<Self>, Error>
fn maybe_from_proof<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<Option<Self>, Error>
§fn from_proof<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<Self, Error>
fn from_proof<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<Self, Error>
§fn from_proof_with_metadata<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Self, ResponseMetadata), Error>
fn from_proof_with_metadata<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<(Self, ResponseMetadata), Error>
§fn from_proof_with_metadata_and_proof<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Self, ResponseMetadata, Proof), Error>
fn from_proof_with_metadata_and_proof<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<(Self, ResponseMetadata, Proof), Error>
Source§impl FromProof<DocumentQuery> for Document
impl FromProof<DocumentQuery> for Document
Source§type Request = DocumentQuery
type Request = DocumentQuery
Source§fn maybe_from_proof_with_metadata<'a, I: Into<Self::Request>, O: Into<Self::Response>>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Option<Self>, ResponseMetadata, Proof), Error>where
Self: Sized + 'a,
fn maybe_from_proof_with_metadata<'a, I: Into<Self::Request>, O: Into<Self::Response>>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Option<Self>, ResponseMetadata, Proof), Error>where
Self: Sized + 'a,
§fn maybe_from_proof<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<Option<Self>, Error>
fn maybe_from_proof<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<Option<Self>, Error>
§fn from_proof<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<Self, Error>
fn from_proof<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<Self, Error>
§fn from_proof_with_metadata<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Self, ResponseMetadata), Error>
fn from_proof_with_metadata<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<(Self, ResponseMetadata), Error>
§fn from_proof_with_metadata_and_proof<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Self, ResponseMetadata, Proof), Error>
fn from_proof_with_metadata_and_proof<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<(Self, ResponseMetadata, Proof), Error>
Source§impl FromProof<DocumentQuery> for Documents
impl FromProof<DocumentQuery> for Documents
Source§type Request = DocumentQuery
type Request = DocumentQuery
Source§fn maybe_from_proof_with_metadata<'a, I: Into<Self::Request>, O: Into<Self::Response>>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Option<Self>, ResponseMetadata, Proof), Error>where
Self: Sized + 'a,
fn maybe_from_proof_with_metadata<'a, I: Into<Self::Request>, O: Into<Self::Response>>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Option<Self>, ResponseMetadata, Proof), Error>where
Self: Sized + 'a,
§fn maybe_from_proof<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<Option<Self>, Error>
fn maybe_from_proof<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<Option<Self>, Error>
§fn from_proof<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<Self, Error>
fn from_proof<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<Self, Error>
§fn from_proof_with_metadata<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Self, ResponseMetadata), Error>
fn from_proof_with_metadata<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<(Self, ResponseMetadata), Error>
§fn from_proof_with_metadata_and_proof<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Self, ResponseMetadata, Proof), Error>
fn from_proof_with_metadata_and_proof<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<(Self, ResponseMetadata, Proof), Error>
Source§impl FromProof<DocumentQuery> for DocumentRankedEntries
impl FromProof<DocumentQuery> for DocumentRankedEntries
Source§type Request = DocumentQuery
type Request = DocumentQuery
Source§fn maybe_from_proof_with_metadata<'a, I: Into<Self::Request>, O: Into<Self::Response>>(
request: I,
response: O,
_network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Option<Self>, ResponseMetadata, Proof), Error>where
Self: 'a,
fn maybe_from_proof_with_metadata<'a, I: Into<Self::Request>, O: Into<Self::Response>>(
request: I,
response: O,
_network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Option<Self>, ResponseMetadata, Proof), Error>where
Self: 'a,
§fn maybe_from_proof<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<Option<Self>, Error>
fn maybe_from_proof<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<Option<Self>, Error>
§fn from_proof<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<Self, Error>
fn from_proof<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<Self, Error>
§fn from_proof_with_metadata<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Self, ResponseMetadata), Error>
fn from_proof_with_metadata<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<(Self, ResponseMetadata), Error>
§fn from_proof_with_metadata_and_proof<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Self, ResponseMetadata, Proof), Error>
fn from_proof_with_metadata_and_proof<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<(Self, ResponseMetadata, Proof), Error>
Source§impl FromProof<DocumentQuery> for DocumentSplitAverages
impl FromProof<DocumentQuery> for DocumentSplitAverages
Source§type Request = DocumentQuery
type Request = DocumentQuery
Source§fn maybe_from_proof_with_metadata<'a, I: Into<Self::Request>, O: Into<Self::Response>>(
request: I,
response: O,
_network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Option<Self>, ResponseMetadata, Proof), Error>where
Self: 'a,
fn maybe_from_proof_with_metadata<'a, I: Into<Self::Request>, O: Into<Self::Response>>(
request: I,
response: O,
_network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Option<Self>, ResponseMetadata, Proof), Error>where
Self: 'a,
§fn maybe_from_proof<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<Option<Self>, Error>
fn maybe_from_proof<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<Option<Self>, Error>
§fn from_proof<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<Self, Error>
fn from_proof<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<Self, Error>
§fn from_proof_with_metadata<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Self, ResponseMetadata), Error>
fn from_proof_with_metadata<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<(Self, ResponseMetadata), Error>
§fn from_proof_with_metadata_and_proof<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Self, ResponseMetadata, Proof), Error>
fn from_proof_with_metadata_and_proof<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<(Self, ResponseMetadata, Proof), Error>
Source§impl FromProof<DocumentQuery> for DocumentSplitCounts
impl FromProof<DocumentQuery> for DocumentSplitCounts
Source§type Request = DocumentQuery
type Request = DocumentQuery
Source§fn maybe_from_proof_with_metadata<'a, I: Into<Self::Request>, O: Into<Self::Response>>(
request: I,
response: O,
_network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Option<Self>, ResponseMetadata, Proof), Error>where
Self: 'a,
fn maybe_from_proof_with_metadata<'a, I: Into<Self::Request>, O: Into<Self::Response>>(
request: I,
response: O,
_network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Option<Self>, ResponseMetadata, Proof), Error>where
Self: 'a,
§fn maybe_from_proof<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<Option<Self>, Error>
fn maybe_from_proof<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<Option<Self>, Error>
§fn from_proof<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<Self, Error>
fn from_proof<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<Self, Error>
§fn from_proof_with_metadata<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Self, ResponseMetadata), Error>
fn from_proof_with_metadata<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<(Self, ResponseMetadata), Error>
§fn from_proof_with_metadata_and_proof<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Self, ResponseMetadata, Proof), Error>
fn from_proof_with_metadata_and_proof<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<(Self, ResponseMetadata, Proof), Error>
Source§impl FromProof<DocumentQuery> for DocumentSplitSums
impl FromProof<DocumentQuery> for DocumentSplitSums
Source§type Request = DocumentQuery
type Request = DocumentQuery
Source§fn maybe_from_proof_with_metadata<'a, I: Into<Self::Request>, O: Into<Self::Response>>(
request: I,
response: O,
_network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Option<Self>, ResponseMetadata, Proof), Error>where
Self: 'a,
fn maybe_from_proof_with_metadata<'a, I: Into<Self::Request>, O: Into<Self::Response>>(
request: I,
response: O,
_network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Option<Self>, ResponseMetadata, Proof), Error>where
Self: 'a,
§fn maybe_from_proof<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<Option<Self>, Error>
fn maybe_from_proof<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<Option<Self>, Error>
§fn from_proof<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<Self, Error>
fn from_proof<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<Self, Error>
§fn from_proof_with_metadata<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Self, ResponseMetadata), Error>
fn from_proof_with_metadata<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<(Self, ResponseMetadata), Error>
§fn from_proof_with_metadata_and_proof<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Self, ResponseMetadata, Proof), Error>
fn from_proof_with_metadata_and_proof<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<(Self, ResponseMetadata, Proof), Error>
Source§impl FromProof<DocumentQuery> for DocumentSum
impl FromProof<DocumentQuery> for DocumentSum
Source§type Request = DocumentQuery
type Request = DocumentQuery
Source§fn maybe_from_proof_with_metadata<'a, I: Into<Self::Request>, O: Into<Self::Response>>(
request: I,
response: O,
_network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Option<Self>, ResponseMetadata, Proof), Error>where
Self: 'a,
fn maybe_from_proof_with_metadata<'a, I: Into<Self::Request>, O: Into<Self::Response>>(
request: I,
response: O,
_network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Option<Self>, ResponseMetadata, Proof), Error>where
Self: 'a,
§fn maybe_from_proof<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<Option<Self>, Error>
fn maybe_from_proof<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<Option<Self>, Error>
§fn from_proof<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<Self, Error>
fn from_proof<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<Self, Error>
§fn from_proof_with_metadata<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Self, ResponseMetadata), Error>
fn from_proof_with_metadata<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<(Self, ResponseMetadata), Error>
§fn from_proof_with_metadata_and_proof<'a, I, O>(
request: I,
response: O,
network: Network,
platform_version: &PlatformVersion,
provider: &'a dyn ContextProvider,
) -> Result<(Self, ResponseMetadata, Proof), Error>
fn from_proof_with_metadata_and_proof<'a, I, O>( request: I, response: O, network: Network, platform_version: &PlatformVersion, provider: &'a dyn ContextProvider, ) -> Result<(Self, ResponseMetadata, Proof), Error>
Source§impl Mockable for DocumentQuery
impl Mockable for DocumentQuery
Source§impl PartialEq for DocumentQuery
impl PartialEq for DocumentQuery
Source§fn eq(&self, other: &DocumentQuery) -> bool
fn eq(&self, other: &DocumentQuery) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for DocumentQuery
impl Serialize for DocumentQuery
impl StructuralPartialEq for DocumentQuery
Source§impl<'a> TryFrom<&'a DocumentQuery> for DriveDocumentQuery<'a>
impl<'a> TryFrom<&'a DocumentQuery> for DriveDocumentQuery<'a>
Source§impl<'a> TryFrom<&'a DriveDocumentQuery<'a>> for DocumentQuery
impl<'a> TryFrom<&'a DriveDocumentQuery<'a>> for DocumentQuery
Source§fn try_from(value: &'a DriveDocumentQuery<'a>) -> Result<Self, Self::Error>
fn try_from(value: &'a DriveDocumentQuery<'a>) -> Result<Self, Self::Error>
Fallible by necessity: a drive query carrying resolved_time_ranges
holds bucket-start equalities whose meaning lives in the provenance,
and DocumentQuery has no field to carry it — the original
IN_TIME_RANGE selector cannot be reconstructed from the resolved
query. Serializing such a query would silently demote the bucket
equality to a raw-timestamp predicate: a transformed-index-only
contract then rejects the request, while a contract with a competing
plain index returns a different — but validly proven — result.
Source§impl<'a> TryFrom<DriveDocumentQuery<'a>> for DocumentQuery
impl<'a> TryFrom<DriveDocumentQuery<'a>> for DocumentQuery
Source§impl TryFromPlatformVersioned<DocumentQuery> for GetDocumentsRequest
Version-aware encoder. The dispatch is driven by the
drive_abci.query.document_query feature-version on
[PlatformVersion]: 0 → V0 wire (used by v3.0 testnet), 1 →
V1 wire (introduced in v3.1).
impl TryFromPlatformVersioned<DocumentQuery> for GetDocumentsRequest
Version-aware encoder. The dispatch is driven by the
drive_abci.query.document_query feature-version on
[PlatformVersion]: 0 → V0 wire (used by v3.0 testnet), 1 →
V1 wire (introduced in v3.1).
V0 lacks selects / group_by / having / offset and the
optional-limit semantics — callers that set those features get
Error::Config with a clear “requires Platform v3.1+” message
rather than a silently-truncated request. Time-range clauses are
additionally gated on the v14 contract grammar — see the 1 => arm.
Source§fn try_from_platform_versioned(
value: DocumentQuery,
platform_version: &PlatformVersion,
) -> Result<Self, Self::Error>
fn try_from_platform_versioned( value: DocumentQuery, platform_version: &PlatformVersion, ) -> Result<Self, Self::Error>
Auto Trait Implementations§
impl Freeze for DocumentQuery
impl RefUnwindSafe for DocumentQuery
impl Send for DocumentQuery
impl Sync for DocumentQuery
impl Unpin for DocumentQuery
impl UnsafeUnpin for DocumentQuery
impl UnwindSafe for DocumentQuery
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> CostsExt for T
impl<T> CostsExt for T
§fn wrap_with_cost(self, cost: OperationCost) -> CostContext<Self>where
Self: Sized,
fn wrap_with_cost(self, cost: OperationCost) -> CostContext<Self>where
Self: Sized,
CostContext object with provided costs.§fn wrap_fn_cost(
self,
f: impl FnOnce(&Self) -> OperationCost,
) -> CostContext<Self>where
Self: Sized,
fn wrap_fn_cost(
self,
f: impl FnOnce(&Self) -> OperationCost,
) -> CostContext<Self>where
Self: Sized,
CostContext object with costs computed using the
value getting wrapped.impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T, U> IntoOnNetwork<U> for Twhere
U: FromOnNetwork<T>,
impl<T, U> IntoOnNetwork<U> for Twhere
U: FromOnNetwork<T>,
§fn into_on_network(self, network: Network) -> U
fn into_on_network(self, network: Network) -> U
Calls U::from_on_network(self).
§impl<T, U> IntoPlatformVersioned<U> for Twhere
U: FromPlatformVersioned<T>,
impl<T, U> IntoPlatformVersioned<U> for Twhere
U: FromPlatformVersioned<T>,
§fn into_platform_versioned(self, platform_version: &PlatformVersion) -> U
fn into_platform_versioned(self, platform_version: &PlatformVersion) -> U
§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
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,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.