pub(crate) struct InvertedIndexApplierBuilder<'a> {
    table_dir: String,
    path_type: PathType,
    object_store: ObjectStore,
    file_cache: Option<Arc<FileCache>>,
    metadata: &'a RegionMetadata,
    indexed_column_ids: HashSet<ColumnId>,
    output: BTreeMap<ColumnId, Vec<Predicate>>,
    puffin_manager_factory: PuffinManagerFactory,
    inverted_index_cache: Option<Arc<IndexCache<FileId, InvertedIndexMetas>>>,
    puffin_metadata_cache: Option<PuffinMetadataCacheRef>,
}Expand description
Constructs an InvertedIndexApplier which applies predicates to SST files during scan.
Fields§
§table_dir: StringDirectory of the table, required argument for constructing InvertedIndexApplier.
path_type: PathTypePath type for generating file paths.
object_store: ObjectStoreObject store, required argument for constructing InvertedIndexApplier.
file_cache: Option<Arc<FileCache>>File cache, required argument for constructing InvertedIndexApplier.
metadata: &'a RegionMetadataMetadata of the region, used to get metadata like column type.
indexed_column_ids: HashSet<ColumnId>Column ids of the columns that are indexed.
output: BTreeMap<ColumnId, Vec<Predicate>>Stores predicates during traversal on the Expr tree.
puffin_manager_factory: PuffinManagerFactoryThe puffin manager factory.
inverted_index_cache: Option<Arc<IndexCache<FileId, InvertedIndexMetas>>>Cache for inverted index.
puffin_metadata_cache: Option<PuffinMetadataCacheRef>Cache for puffin metadata.
Implementations§
Source§impl InvertedIndexApplierBuilder<'_>
 
impl InvertedIndexApplierBuilder<'_>
Sourcepub(crate) fn collect_between(&mut self, between: &Between) -> Result<()>
 
pub(crate) fn collect_between(&mut self, between: &Between) -> Result<()>
Collects a BETWEEN expression in the form of column BETWEEN lit AND lit.
Source§impl InvertedIndexApplierBuilder<'_>
 
impl InvertedIndexApplierBuilder<'_>
Sourcepub(crate) fn collect_comparison_expr(
    &mut self,
    left: &DfExpr,
    op: &Operator,
    right: &DfExpr,
) -> Result<()>
 
pub(crate) fn collect_comparison_expr( &mut self, left: &DfExpr, op: &Operator, right: &DfExpr, ) -> Result<()>
Collects a comparison expression in the form of
column < lit, column > lit, column <= lit, column >= lit,
lit < column, lit > column, lit <= column, lit >= column.
fn collect_column_lt_lit(&mut self, left: &DfExpr, right: &DfExpr) -> Result<()>
fn collect_column_gt_lit(&mut self, left: &DfExpr, right: &DfExpr) -> Result<()>
fn collect_column_le_lit(&mut self, left: &DfExpr, right: &DfExpr) -> Result<()>
fn collect_column_ge_lit(&mut self, left: &DfExpr, right: &DfExpr) -> Result<()>
fn collect_column_cmp_lit( &mut self, column: &DfExpr, literal: &DfExpr, range_builder: impl FnOnce(Bytes) -> Range, ) -> Result<()>
Source§impl InvertedIndexApplierBuilder<'_>
 
impl InvertedIndexApplierBuilder<'_>
Sourcepub(crate) fn collect_eq(&mut self, left: &DfExpr, right: &DfExpr) -> Result<()>
 
pub(crate) fn collect_eq(&mut self, left: &DfExpr, right: &DfExpr) -> Result<()>
Collects an eq expression in the form of column = lit.
Sourcepub(crate) fn collect_or_eq_list(
    &mut self,
    eq_expr: &DfExpr,
    or_list: &DfExpr,
) -> Result<()>
 
pub(crate) fn collect_or_eq_list( &mut self, eq_expr: &DfExpr, or_list: &DfExpr, ) -> Result<()>
Collects eq list in the form of column = lit OR column = lit OR ....
Sourcefn collect_eq_list_inner(
    column_name: &str,
    data_type: &ConcreteDataType,
    expr: &DfExpr,
    inlist: &mut BTreeSet<Bytes>,
) -> Result<bool>
 
fn collect_eq_list_inner( column_name: &str, data_type: &ConcreteDataType, expr: &DfExpr, inlist: &mut BTreeSet<Bytes>, ) -> Result<bool>
Recursively collects eq list.
Returns false if the expression doesn’t match the form then caller can safely ignore the expression.
Source§impl InvertedIndexApplierBuilder<'_>
 
impl InvertedIndexApplierBuilder<'_>
Sourcepub(crate) fn collect_inlist(&mut self, inlist: &InList) -> Result<()>
 
pub(crate) fn collect_inlist(&mut self, inlist: &InList) -> Result<()>
Collects an in list expression in the form of column IN (lit, lit, ...).
Source§impl InvertedIndexApplierBuilder<'_>
 
impl InvertedIndexApplierBuilder<'_>
Sourcepub(crate) fn collect_regex_match(
    &mut self,
    column: &DfExpr,
    pattern: &DfExpr,
) -> Result<()>
 
pub(crate) fn collect_regex_match( &mut self, column: &DfExpr, pattern: &DfExpr, ) -> Result<()>
Collects a regex match expression in the form of column ~ pattern.
Source§impl<'a> InvertedIndexApplierBuilder<'a>
 
impl<'a> InvertedIndexApplierBuilder<'a>
Sourcepub fn new(
    table_dir: String,
    path_type: PathType,
    object_store: ObjectStore,
    metadata: &'a RegionMetadata,
    indexed_column_ids: HashSet<ColumnId>,
    puffin_manager_factory: PuffinManagerFactory,
) -> Self
 
pub fn new( table_dir: String, path_type: PathType, object_store: ObjectStore, metadata: &'a RegionMetadata, indexed_column_ids: HashSet<ColumnId>, puffin_manager_factory: PuffinManagerFactory, ) -> Self
Creates a new InvertedIndexApplierBuilder.
Sourcepub fn with_file_cache(self, file_cache: Option<Arc<FileCache>>) -> Self
 
pub fn with_file_cache(self, file_cache: Option<Arc<FileCache>>) -> Self
Sets the file cache.
Sourcepub fn with_puffin_metadata_cache(
    self,
    puffin_metadata_cache: Option<PuffinMetadataCacheRef>,
) -> Self
 
pub fn with_puffin_metadata_cache( self, puffin_metadata_cache: Option<PuffinMetadataCacheRef>, ) -> Self
Sets the puffin metadata cache.
Sourcepub fn with_inverted_index_cache(
    self,
    inverted_index_cache: Option<Arc<IndexCache<FileId, InvertedIndexMetas>>>,
) -> Self
 
pub fn with_inverted_index_cache( self, inverted_index_cache: Option<Arc<IndexCache<FileId, InvertedIndexMetas>>>, ) -> Self
Sets the inverted index cache.
Sourcepub fn build(self, exprs: &[Expr]) -> Result<Option<InvertedIndexApplier>>
 
pub fn build(self, exprs: &[Expr]) -> Result<Option<InvertedIndexApplier>>
Consumes the builder to construct an InvertedIndexApplier, optionally returned based on
the expressions provided. If no predicates match, returns None.
Sourcefn traverse_and_collect(&mut self, expr: &Expr)
 
fn traverse_and_collect(&mut self, expr: &Expr)
Recursively traverses expressions to collect predicates.
Results are stored in self.output.
Sourcefn add_predicate(&mut self, column_id: ColumnId, predicate: Predicate)
 
fn add_predicate(&mut self, column_id: ColumnId, predicate: Predicate)
Helper function to add a predicate to the output.
Sourcefn column_id_and_type(
    &self,
    column_name: &str,
) -> Result<Option<(ColumnId, ConcreteDataType)>>
 
fn column_id_and_type( &self, column_name: &str, ) -> Result<Option<(ColumnId, ConcreteDataType)>>
Helper function to get the column id and the column type of a column.
Returns None if the column is not a tag column or if the column is ignored.
Sourcefn nonnull_lit(expr: &Expr) -> Option<&ScalarValue>
 
fn nonnull_lit(expr: &Expr) -> Option<&ScalarValue>
Helper function to get a non-null literal.
Sourcefn column_name(expr: &Expr) -> Option<&str>
 
fn column_name(expr: &Expr) -> Option<&str>
Helper function to get the column name of a column expression.
Sourcefn encode_lit(lit: &ScalarValue, data_type: ConcreteDataType) -> Result<Vec<u8>>
 
fn encode_lit(lit: &ScalarValue, data_type: ConcreteDataType) -> Result<Vec<u8>>
Helper function to encode a literal into bytes.
Auto Trait Implementations§
impl<'a> Freeze for InvertedIndexApplierBuilder<'a>
impl<'a> !RefUnwindSafe for InvertedIndexApplierBuilder<'a>
impl<'a> Send for InvertedIndexApplierBuilder<'a>
impl<'a> Sync for InvertedIndexApplierBuilder<'a>
impl<'a> Unpin for InvertedIndexApplierBuilder<'a>
impl<'a> !UnwindSafe for InvertedIndexApplierBuilder<'a>
Blanket Implementations§
§impl<T> AnySync for T
 
impl<T> AnySync for T
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<T> Conv for T
 
impl<T> Conv for T
§impl<T, V> Convert<T> for Vwhere
    V: Into<T>,
 
impl<T, V> Convert<T> for Vwhere
    V: Into<T>,
fn convert(value: Self) -> T
fn convert_box(value: Box<Self>) -> Box<T>
fn convert_vec(value: Vec<Self>) -> Vec<T>
fn convert_vec_box(value: Vec<Box<Self>>) -> Vec<Box<T>>
fn convert_matrix(value: Vec<Vec<Self>>) -> Vec<Vec<T>>
fn convert_option(value: Option<Self>) -> Option<T>
fn convert_option_box(value: Option<Box<Self>>) -> Option<Box<T>>
fn convert_option_vec(value: Option<Vec<Self>>) -> Option<Vec<T>>
§impl<T> Downcast for Twhere
    T: Any,
 
impl<T> Downcast for Twhere
    T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
 
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
 
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
 
fn as_any(&self) -> &(dyn Any + 'static)
&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)
 
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSend for T
 
impl<T> DowncastSend for T
§impl<T> DowncastSync for T
 
impl<T> DowncastSync for T
§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> FutureExt for T
 
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
 
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
 
fn with_current_context(self) -> WithContext<Self>
§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> 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> PolicyExt for Twhere
    T: ?Sized,
 
impl<T> PolicyExt for Twhere
    T: ?Sized,
§impl<T> ServiceExt for T
 
impl<T> ServiceExt for T
§fn propagate_header(self, header: HeaderName) -> PropagateHeader<Self>where
    Self: Sized,
 
fn propagate_header(self, header: HeaderName) -> PropagateHeader<Self>where
    Self: Sized,
§fn add_extension<T>(self, value: T) -> AddExtension<Self, T>where
    Self: Sized,
 
fn add_extension<T>(self, value: T) -> AddExtension<Self, T>where
    Self: Sized,
§fn map_request_body<F>(self, f: F) -> MapRequestBody<Self, F>where
    Self: Sized,
 
fn map_request_body<F>(self, f: F) -> MapRequestBody<Self, F>where
    Self: Sized,
§fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
    Self: Sized,
 
fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
    Self: Sized,
§fn compression(self) -> Compression<Self>where
    Self: Sized,
 
fn compression(self) -> Compression<Self>where
    Self: Sized,
§fn decompression(self) -> Decompression<Self>where
    Self: Sized,
 
fn decompression(self) -> Decompression<Self>where
    Self: Sized,
§fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
    Self: Sized,
 
fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
    Self: Sized,
§fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
    Self: Sized,
 
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
    Self: Sized,
§fn follow_redirects(self) -> FollowRedirect<Self>where
    Self: Sized,
 
fn follow_redirects(self) -> FollowRedirect<Self>where
    Self: Sized,
§fn sensitive_headers(
    self,
    headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveRequestHeaders<SetSensitiveResponseHeaders<Self>>where
    Self: Sized,
 
fn sensitive_headers(
    self,
    headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveRequestHeaders<SetSensitiveResponseHeaders<Self>>where
    Self: Sized,
§fn sensitive_request_headers(
    self,
    headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveRequestHeaders<Self>where
    Self: Sized,
 
fn sensitive_request_headers(
    self,
    headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveRequestHeaders<Self>where
    Self: Sized,
§fn sensitive_response_headers(
    self,
    headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveResponseHeaders<Self>where
    Self: Sized,
 
fn sensitive_response_headers(
    self,
    headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveResponseHeaders<Self>where
    Self: Sized,
§fn override_request_header<M>(
    self,
    header_name: HeaderName,
    make: M,
) -> SetRequestHeader<Self, M>where
    Self: Sized,
 
fn override_request_header<M>(
    self,
    header_name: HeaderName,
    make: M,
) -> SetRequestHeader<Self, M>where
    Self: Sized,
§fn append_request_header<M>(
    self,
    header_name: HeaderName,
    make: M,
) -> SetRequestHeader<Self, M>where
    Self: Sized,
 
fn append_request_header<M>(
    self,
    header_name: HeaderName,
    make: M,
) -> SetRequestHeader<Self, M>where
    Self: Sized,
§fn insert_request_header_if_not_present<M>(
    self,
    header_name: HeaderName,
    make: M,
) -> SetRequestHeader<Self, M>where
    Self: Sized,
 
fn insert_request_header_if_not_present<M>(
    self,
    header_name: HeaderName,
    make: M,
) -> SetRequestHeader<Self, M>where
    Self: Sized,
§fn override_response_header<M>(
    self,
    header_name: HeaderName,
    make: M,
) -> SetResponseHeader<Self, M>where
    Self: Sized,
 
fn override_response_header<M>(
    self,
    header_name: HeaderName,
    make: M,
) -> SetResponseHeader<Self, M>where
    Self: Sized,
§fn append_response_header<M>(
    self,
    header_name: HeaderName,
    make: M,
) -> SetResponseHeader<Self, M>where
    Self: Sized,
 
fn append_response_header<M>(
    self,
    header_name: HeaderName,
    make: M,
) -> SetResponseHeader<Self, M>where
    Self: Sized,
§fn insert_response_header_if_not_present<M>(
    self,
    header_name: HeaderName,
    make: M,
) -> SetResponseHeader<Self, M>where
    Self: Sized,
 
fn insert_response_header_if_not_present<M>(
    self,
    header_name: HeaderName,
    make: M,
) -> SetResponseHeader<Self, M>where
    Self: Sized,
§fn set_request_id<M>(
    self,
    header_name: HeaderName,
    make_request_id: M,
) -> SetRequestId<Self, M>where
    Self: Sized,
    M: MakeRequestId,
 
fn set_request_id<M>(
    self,
    header_name: HeaderName,
    make_request_id: M,
) -> SetRequestId<Self, M>where
    Self: Sized,
    M: MakeRequestId,
§fn set_x_request_id<M>(self, make_request_id: M) -> SetRequestId<Self, M>where
    Self: Sized,
    M: MakeRequestId,
 
fn set_x_request_id<M>(self, make_request_id: M) -> SetRequestId<Self, M>where
    Self: Sized,
    M: MakeRequestId,
x-request-id as the header name. Read more§fn propagate_request_id(
    self,
    header_name: HeaderName,
) -> PropagateRequestId<Self>where
    Self: Sized,
 
fn propagate_request_id(
    self,
    header_name: HeaderName,
) -> PropagateRequestId<Self>where
    Self: Sized,
§fn propagate_x_request_id(self) -> PropagateRequestId<Self>where
    Self: Sized,
 
fn propagate_x_request_id(self) -> PropagateRequestId<Self>where
    Self: Sized,
x-request-id as the header name. Read more§fn catch_panic(self) -> CatchPanic<Self, DefaultResponseForPanic>where
    Self: Sized,
 
fn catch_panic(self) -> CatchPanic<Self, DefaultResponseForPanic>where
    Self: Sized,
500 Internal Server responses. Read more§fn request_body_limit(self, limit: usize) -> RequestBodyLimit<Self>where
    Self: Sized,
 
fn request_body_limit(self, limit: usize) -> RequestBodyLimit<Self>where
    Self: Sized,
413 Payload Too Large responses. Read more§fn trim_trailing_slash(self) -> NormalizePath<Self>where
    Self: Sized,
 
fn trim_trailing_slash(self) -> NormalizePath<Self>where
    Self: Sized,
§fn append_trailing_slash(self) -> NormalizePath<Self>where
    Self: Sized,
 
fn append_trailing_slash(self) -> NormalizePath<Self>where
    Self: Sized,
§impl<SS, SP> SupersetOf<SS> for SPwhere
    SS: SubsetOf<SP>,
 
impl<SS, SP> SupersetOf<SS> for SPwhere
    SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
 
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
 
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
 
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
 
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.§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.