mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-10-15 00:12:29 +00:00
881 lines
233 KiB
HTML
881 lines
233 KiB
HTML
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `PromPlanner` struct in crate `query`."><title>PromPlanner in query::promql::planner - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-1ed95124.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="query" data-themes="" data-resource-suffix="" data-rustdoc-version="1.98.1 (48a229cea 2026-09-01)" data-channel="1.98.1" data-search-js="search-9944d736.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-417ebf0a.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc struct"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">PromPlanner</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../query/index.html">query</a><span class="version">1.4.0-alpha.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Prom<wbr>Planner</a></h2><h3><a href="#fields">Fields</a></h3><ul class="block structfield"><li><a href="#structfield.ctx" title="ctx">ctx</a></li><li><a href="#structfield.promql_annotations" title="promql_annotations">promql_annotations</a></li><li><a href="#structfield.table_provider" title="table_provider">table_provider</a></li></ul><h3><a href="#implementations">Associated Functions</a></h3><ul class="block method"><li><a href="#method.anchor_sub" title="anchor_sub">anchor_sub</a></li><li><a href="#method.promotes_anchored_range_call" title="promotes_anchored_range_call">promotes_anchored_range_call</a></li><li><a href="#method.system_time_to_millis" title="system_time_to_millis">system_time_to_millis</a></li><li><a href="#method.binary_island_join_contexts_supported" title="binary_island_join_contexts_supported">binary_island_join_contexts_supported</a></li><li><a href="#method.build_binary_island_field_exprs" title="build_binary_island_field_exprs">build_binary_island_field_exprs</a></li><li><a href="#method.stmt_to_plan" title="stmt_to_plan">stmt_to_plan</a></li><li><a href="#method.stmt_to_plan_with_annotations" title="stmt_to_plan_with_annotations">stmt_to_plan_with_annotations</a></li><li><a href="#method.offset_millis" title="offset_millis">offset_millis</a></li><li><a href="#method.subquery_child_window" title="subquery_child_window">subquery_child_window</a></li><li><a href="#method.timestamp_seconds_expr" title="timestamp_seconds_expr">timestamp_seconds_expr</a></li><li><a href="#method.matchers_to_expr" title="matchers_to_expr">matchers_to_expr</a></li><li><a href="#method.find_case_sensitive_column" title="find_case_sensitive_column">find_case_sensitive_column</a></li><li><a href="#method.validate_label_name" title="validate_label_name">validate_label_name</a></li><li><a href="#method.build_concat_labels_expr" title="build_concat_labels_expr">build_concat_labels_expr</a></li><li><a href="#method.label_value_expr" title="label_value_expr">label_value_expr</a></li><li><a href="#method.empty_label_to_null" title="empty_label_to_null">empty_label_to_null</a></li><li><a href="#method.name_without_last_arg" title="name_without_last_arg">name_without_last_arg</a></li><li><a href="#method.create_sort_exprs_by_tags" title="create_sort_exprs_by_tags">create_sort_exprs_by_tags</a></li><li><a href="#method.alias_extremum_as_builtin" title="alias_extremum_as_builtin">alias_extremum_as_builtin</a></li><li><a href="#method.create_numeric_aggregate_expr" title="create_numeric_aggregate_expr">create_numeric_aggregate_expr</a></li><li><a href="#method.mixed_sample_count_column" title="mixed_sample_count_column">mixed_sample_count_column</a></li><li><a href="#method.mixed_sample_count_name" title="mixed_sample_count_name">mixed_sample_count_name</a></li><li><a href="#method.get_param_value_as_str" title="get_param_value_as_str">get_param_value_as_str</a></li><li><a href="#method.get_param_as_literal_expr" title="get_param_as_literal_expr">get_param_as_literal_expr</a></li><li><a href="#method.try_build_literal_expr" title="try_build_literal_expr">try_build_literal_expr</a></li><li><a href="#method.native_histogram_binary_expr" title="native_histogram_binary_expr">native_histogram_binary_expr</a></li><li><a href="#method.prom_token_to_binary_expr_builder" title="prom_token_to_binary_expr_builder">prom_token_to_binary_expr_builder</a></li><li><a href="#method.ieee_comparison" title="ieee_comparison">ieee_comparison</a></li><li><a href="#method.is_token_a_comparison_op" title="is_token_a_comparison_op">is_token_a_comparison_op</a></li><li><a href="#method.is_token_a_set_op" title="is_token_a_set_op">is_token_a_set_op</a></li><li><a href="#method.align_binary_field_columns" title="align_binary_field_columns">align_binary_field_columns</a></li><li><a href="#method.binary_result_is_histogram" title="binary_result_is_histogram">binary_result_is_histogram</a></li><li><a href="#method.plan_has_tsid_column" title="plan_has_tsid_column">plan_has_tsid_column</a></li><li><a href="#method.is_empty_metric" title="is_empty_metric">is_empty_metric</a></li><li><a href="#method.native_histogram_arrow_type" title="native_histogram_arrow_type">native_histogram_arrow_type</a></li><li><a href="#method.field_column_type" title="field_column_type">field_column_type</a></li><li><a href="#method.field_column_is_native_histogram" title="field_column_is_native_histogram">field_column_is_native_histogram</a></li><li><a href="#method.field_columns_contain_native_histogram" title="field_columns_contain_native_histogram">field_columns_contain_native_histogram</a></li><li><a href="#method.field_column_is_float_range" title="field_column_is_float_range">field_column_is_float_range</a></li><li><a href="#method.field_columns_are_alternative_samples" title="field_columns_are_alternative_samples">field_columns_are_alternative_samples</a></li><li><a href="#method.alternative_sample_columns" title="alternative_sample_columns">alternative_sample_columns</a></li><li><a href="#method.alternative_sample_range_columns" title="alternative_sample_range_columns">alternative_sample_range_columns</a></li><li><a href="#method.field_column_is_native_histogram_range" title="field_column_is_native_histogram_range">field_column_is_native_histogram_range</a></li><li><a href="#method.optional_tsid_projection" title="optional_tsid_projection">optional_tsid_projection</a></li><li><a href="#method.binary_result_labels" title="binary_result_labels">binary_result_labels</a></li><li><a href="#method.binary_result_label_projection" title="binary_result_label_projection">binary_result_label_projection</a></li><li><a href="#method.binary_result_labels_may_repeat" title="binary_result_labels_may_repeat">binary_result_labels_may_repeat</a></li><li><a href="#method.assert_unique_match_group" title="assert_unique_match_group">assert_unique_match_group</a></li><li><a href="#method.assert_unique_one_side" title="assert_unique_one_side">assert_unique_one_side</a></li><li><a href="#method.selected_binary_match_labels" title="selected_binary_match_labels">selected_binary_match_labels</a></li><li><a href="#method.only_temporality_match_label_mismatches" title="only_temporality_match_label_mismatches">only_temporality_match_label_mismatches</a></li><li><a href="#method.align_temporality_match_column" title="align_temporality_match_column">align_temporality_match_column</a></li><li><a href="#method.normalized_match_key_expr" title="normalized_match_key_expr">normalized_match_key_expr</a></li><li><a href="#method.is_zero_row_empty_relation" title="is_zero_row_empty_relation">is_zero_row_empty_relation</a></li><li><a href="#method.string_value_data_type" title="string_value_data_type">string_value_data_type</a></li><li><a href="#method.string_scalar_value" title="string_scalar_value">string_scalar_value</a></li><li><a href="#method.common_label_data_type" title="common_label_data_type">common_label_data_type</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.agg_modifier_to_col" title="agg_modifier_to_col">agg_modifier_to_col</a></li><li><a href="#method.all_field_columns_are_native_histogram_ranges" title="all_field_columns_are_native_histogram_ranges">all_field_columns_are_native_histogram_ranges</a></li><li><a href="#method.all_field_columns_are_native_histograms" title="all_field_columns_are_native_histograms">all_field_columns_are_native_histograms</a></li><li><a href="#method.apply_alias" title="apply_alias">apply_alias</a></li><li><a href="#method.at_modifier_offset" title="at_modifier_offset">at_modifier_offset</a></li><li><a href="#method.at_ref_time" title="at_ref_time">at_ref_time</a></li><li><a href="#method.binary_join_key_columns" title="binary_join_key_columns">binary_join_key_columns</a></li><li><a href="#method.binary_modifier_preserves_tsid_join_key" title="binary_modifier_preserves_tsid_join_key">binary_modifier_preserves_tsid_join_key</a></li><li><a href="#method.build_regexp_replace_label_expr" title="build_regexp_replace_label_expr">build_regexp_replace_label_expr</a></li><li><a href="#method.build_time_index_filter" title="build_time_index_filter">build_time_index_filter</a></li><li><a href="#method.collect_row_key_tag_columns_from_plan" title="collect_row_key_tag_columns_from_plan">collect_row_key_tag_columns_from_plan</a></li><li><a href="#method.create_absent_plan" title="create_absent_plan">create_absent_plan</a></li><li><a href="#method.create_aggregate_exprs" title="create_aggregate_exprs">create_aggregate_exprs</a></li><li><a href="#method.create_empty_values_filter_expr" title="create_empty_values_filter_expr">create_empty_values_filter_expr</a></li><li><a href="#method.create_field_column_exprs" title="create_field_column_exprs">create_field_column_exprs</a></li><li><a href="#method.create_field_columns_sort_exprs" title="create_field_columns_sort_exprs">create_field_columns_sort_exprs</a></li><li><a href="#method.create_function_args" title="create_function_args">create_function_args</a></li><li><a href="#method.create_function_expr" title="create_function_expr">create_function_expr</a></li><li><a href="#method.create_histogram_plan" title="create_histogram_plan">create_histogram_plan</a></li><li><a href="#method.create_mixed_aggregate_exprs" title="create_mixed_aggregate_exprs">create_mixed_aggregate_exprs</a></li><li><a href="#method.create_mixed_histogram_plan" title="create_mixed_histogram_plan">create_mixed_histogram_plan</a></li><li><a href="#method.create_mixed_range_function_exprs" title="create_mixed_range_function_exprs">create_mixed_range_function_exprs</a></li><li><a href="#method.create_native_histogram_aggregate_expr" title="create_native_histogram_aggregate_expr">create_native_histogram_aggregate_expr</a></li><li><a href="#method.create_native_histogram_aggregate_exprs" title="create_native_histogram_aggregate_exprs">create_native_histogram_aggregate_exprs</a></li><li><a href="#method.create_native_histogram_expr" title="create_native_histogram_expr">create_native_histogram_expr</a></li><li><a href="#method.create_native_histogram_plan" title="create_native_histogram_plan">create_native_histogram_plan</a></li><li><a href="#method.create_range_eval_ts_expr" title="create_range_eval_ts_expr">create_range_eval_ts_expr</a></li><li><a href="#method.create_scalar_plan" title="create_scalar_plan">create_scalar_plan</a></li><li><a href="#method.create_table_scan_plan" title="create_table_scan_plan">create_table_scan_plan</a></li><li><a href="#method.create_tag_and_time_index_column_sort_exprs" title="create_tag_and_time_index_column_sort_exprs">create_tag_and_time_index_column_sort_exprs</a></li><li><a href="#method.create_tag_column_exprs" title="create_tag_column_exprs">create_tag_column_exprs</a></li><li><a href="#method.create_time_index_column_expr" title="create_time_index_column_expr">create_time_index_column_expr</a></li><li><a href="#method.create_timestamp_func_plan" title="create_timestamp_func_plan">create_timestamp_func_plan</a></li><li><a href="#method.create_vector_plan" title="create_vector_plan">create_vector_plan</a></li><li><a href="#method.create_window_exprs" title="create_window_exprs">create_window_exprs</a></li><li><a href="#method.date_part_on_time_index" title="date_part_on_time_index">date_part_on_time_index</a></li><li><a href="#method.filter_binary_projection" title="filter_binary_projection">filter_binary_projection</a></li><li><a href="#method.filter_on_field_column" title="filter_on_field_column">filter_on_field_column</a></li><li><a href="#method.join_binary_island_leaf" title="join_binary_island_leaf">join_binary_island_leaf</a></li><li><a href="#method.join_on_non_field_columns" title="join_on_non_field_columns">join_on_non_field_columns</a></li><li><a href="#method.millisecond_time_index_plan" title="millisecond_time_index_plan">millisecond_time_index_plan</a></li><li><a href="#method.mixed_aggregate_filter_expr" title="mixed_aggregate_filter_expr">mixed_aggregate_filter_expr</a></li><li><a href="#method.mixed_ignored_histogram_filter_expr" title="mixed_ignored_histogram_filter_expr">mixed_ignored_histogram_filter_expr</a></li><li><a href="#method.negate_field_columns" title="negate_field_columns">negate_field_columns</a></li><li><a href="#method.or_operator" title="or_operator">or_operator</a></li><li><a href="#method.preprocess_label_matchers" title="preprocess_label_matchers">preprocess_label_matchers</a></li><li><a href="#method.project_binary_island" title="project_binary_island">project_binary_island</a></li><li><a href="#method.project_binary_join_side" title="project_binary_join_side">project_binary_join_side</a></li><li><a href="#method.projection_for_each_field_column" title="projection_for_each_field_column">projection_for_each_field_column</a></li><li><a href="#method.projection_for_each_field_column_with_labels" title="projection_for_each_field_column_with_labels">projection_for_each_field_column_with_labels</a></li><li><a href="#method.prom_aggr_expr_to_plan" title="prom_aggr_expr_to_plan">prom_aggr_expr_to_plan</a></li><li><a href="#method.prom_binary_expr_to_plan" title="prom_binary_expr_to_plan">prom_binary_expr_to_plan</a></li><li><a href="#method.prom_call_expr_to_plan" title="prom_call_expr_to_plan">prom_call_expr_to_plan</a></li><li><a href="#method.prom_expr_to_plan" title="prom_expr_to_plan">prom_expr_to_plan</a></li><li><a href="#method.prom_expr_to_plan_inner" title="prom_expr_to_plan_inner">prom_expr_to_plan_inner</a></li><li><a href="#method.prom_ext_expr_to_plan" title="prom_ext_expr_to_plan">prom_ext_expr_to_plan</a></li><li><a href="#method.prom_matrix_selector_to_plan" title="prom_matrix_selector_to_plan">prom_matrix_selector_to_plan</a></li><li><a href="#method.prom_number_lit_to_plan" title="prom_number_lit_to_plan">prom_number_lit_to_plan</a></li><li><a href="#method.prom_range_selector_samples_to_plan" title="prom_range_selector_samples_to_plan">prom_range_selector_samples_to_plan</a></li><li><a href="#method.prom_range_vector_result_to_plan" title="prom_range_vector_result_to_plan">prom_range_vector_result_to_plan</a></li><li><a href="#method.prom_root_expr_to_plan" title="prom_root_expr_to_plan">prom_root_expr_to_plan</a></li><li><a href="#method.prom_string_lit_to_plan" title="prom_string_lit_to_plan">prom_string_lit_to_plan</a></li><li><a href="#method.prom_subquery_expr_to_plan" title="prom_subquery_expr_to_plan">prom_subquery_expr_to_plan</a></li><li><a href="#method.prom_subquery_samples_to_plan" title="prom_subquery_samples_to_plan">prom_subquery_samples_to_plan</a></li><li><a href="#method.prom_topk_bottomk_to_plan" title="prom_topk_bottomk_to_plan">prom_topk_bottomk_to_plan</a></li><li><a href="#method.prom_unary_expr_to_plan" title="prom_unary_expr_to_plan">prom_unary_expr_to_plan</a></li><li><a href="#method.prom_vector_selector_to_plan" title="prom_vector_selector_to_plan">prom_vector_selector_to_plan</a></li><li><a href="#method.promote_anchored_range_call" title="promote_anchored_range_call">promote_anchored_range_call</a></li><li><a href="#method.replay_over_grid" title="replay_over_grid">replay_over_grid</a></li><li><a href="#method.select_delta_range_math" title="select_delta_range_math">select_delta_range_math</a></li><li><a href="#method.selector_to_series_normalize_plan" title="selector_to_series_normalize_plan">selector_to_series_normalize_plan</a></li><li><a href="#method.series_divide_plan" title="series_divide_plan">series_divide_plan</a></li><li><a href="#method.series_key_columns" title="series_key_columns">series_key_columns</a></li><li><a href="#method.series_key_columns_for_schema" title="series_key_columns_for_schema">series_key_columns_for_schema</a></li><li><a href="#method.set_op_on_non_field_columns" title="set_op_on_non_field_columns">set_op_on_non_field_columns</a></li><li><a href="#method.setup_context" title="setup_context">setup_context</a></li><li><a href="#method.setup_context_for_empty_metric" title="setup_context_for_empty_metric">setup_context_for_empty_metric</a></li><li><a href="#method.strip_tsid_column" title="strip_tsid_column">strip_tsid_column</a></li><li><a href="#method.table_from_source" title="table_from_source">table_from_source</a></li><li><a href="#method.table_ref" title="table_ref">table_ref</a></li><li><a href="#method.try_build_special_time_expr_with_context" title="try_build_special_time_expr_with_context">try_build_special_time_expr_with_context</a></li><li><a href="#method.try_plan_binary_island" title="try_plan_binary_island">try_plan_binary_island</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-RefUnwindSafe-for-PromPlanner" title="!RefUnwindSafe">!RefUnwindSafe</a></li><li><a href="#impl-UnwindSafe-for-PromPlanner" title="!UnwindSafe">!UnwindSafe</a></li><li><a href="#impl-Freeze-for-PromPlanner" title="Freeze">Freeze</a></li><li><a href="#impl-Send-for-PromPlanner" title="Send">Send</a></li><li><a href="#impl-Sync-for-PromPlanner" title="Sync">Sync</a></li><li><a href="#impl-Unpin-for-PromPlanner" title="Unpin">Unpin</a></li><li><a href="#impl-UnsafeUnpin-for-PromPlanner" title="UnsafeUnpin">UnsafeUnpin</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Any-for-T" title="Any">Any</a></li><li><a href="#impl-Any-for-T-1" title="Any">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T" title="Borrow<T>">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T" title="BorrowMut<T>">BorrowMut<T></a></li><li><a href="#impl-Conv-for-T" title="Conv">Conv</a></li><li><a href="#impl-ErasedDestructor-for-T" title="ErasedDestructor">ErasedDestructor</a></li><li><a href="#impl-FmtForward-for-T" title="FmtForward">FmtForward</a></li><li><a href="#impl-From%3CT%3E-for-T" title="From<T>">From<T></a></li><li><a href="#impl-FutureExt-for-T" title="FutureExt">FutureExt</a></li><li><a href="#impl-Instrument-for-T" title="Instrument">Instrument</a></li><li><a href="#impl-Into%3CU%3E-for-T" title="Into<U>">Into<U></a></li><li><a href="#impl-IntoEither-for-T" title="IntoEither">IntoEither</a></li><li><a href="#impl-IntoRequest%3CT%3E-for-T" title="IntoRequest<T>">IntoRequest<T></a></li><li><a href="#impl-LayerExt%3CL%3E-for-L" title="LayerExt<L>">LayerExt<L></a></li><li><a href="#impl-MaybeSend-for-T" title="MaybeSend">MaybeSend</a></li><li><a href="#impl-MaybeSend-for-T-1" title="MaybeSend">MaybeSend</a></li><li><a href="#impl-Pipe-for-T" title="Pipe">Pipe</a></li><li><a href="#impl-Pointable-for-T" title="Pointable">Pointable</a></li><li><a href="#impl-PolicyExt-for-T" title="PolicyExt">PolicyExt</a></li><li><a href="#impl-Same-for-T" title="Same">Same</a></li><li><a href="#impl-ServiceExt-for-T" title="ServiceExt">ServiceExt</a></li><li><a href="#impl-SupersetOf%3CSS%3E-for-SP" title="SupersetOf<SS>">SupersetOf<SS></a></li><li><a href="#impl-Tap-for-T" title="Tap">Tap</a></li><li><a href="#impl-TryConv-for-T" title="TryConv">TryConv</a></li><li><a href="#impl-TryFrom%3CU%3E-for-T" title="TryFrom<U>">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-T" title="TryInto<U>">TryInto<U></a></li><li><a href="#impl-VZip%3CV%3E-for-T" title="VZip<V>">VZip<V></a></li><li><a href="#impl-WithSubscriber-for-T" title="WithSubscriber">WithSubscriber</a></li><li><a href="#impl-Within%3CG2%3E-for-G1" title="Within<G2>">Within<G2></a></li></ul></section><div id="rustdoc-modnav"><h2><a href="index.html">In query::<wbr>promql::<wbr>planner</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">query</a>::<wbr><a href="../index.html">promql</a>::<wbr><a href="index.html">planner</a></div><h1>Struct <span class="struct">Prom<wbr>Planner</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/query/promql/planner.rs.html#290-295">Source</a> </span></div><pre class="rust item-decl"><code>pub struct PromPlanner {
|
||
table_provider: DfTableSourceProvider,
|
||
ctx: <a class="struct" href="struct.PromPlannerContext.html" title="struct query::promql::planner::PromPlannerContext">PromPlannerContext</a>,
|
||
promql_annotations: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><PromqlAnnotationCollector>,
|
||
}</code></pre><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.table_provider" class="structfield section-header"><a href="#structfield.table_provider" class="anchor field">§</a><code>table_provider: DfTableSourceProvider</code></span><span id="structfield.ctx" class="structfield section-header"><a href="#structfield.ctx" class="anchor field">§</a><code>ctx: <a class="struct" href="struct.PromPlannerContext.html" title="struct query::promql::planner::PromPlannerContext">PromPlannerContext</a></code></span><span id="structfield.promql_annotations" class="structfield section-header"><a href="#structfield.promql_annotations" class="anchor field">§</a><code>promql_annotations: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><PromqlAnnotationCollector></code></span><div class="docblock"><p>Optional collector passed to native histogram UDFs.</p>
|
||
</div><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-PromPlanner" class="impl"><a class="src rightside" href="../../../src/query/promql/planner/at_modifier.rs.html#34-326">Source</a><a href="#impl-PromPlanner" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.PromPlanner.html" title="struct query::promql::planner::PromPlanner">PromPlanner</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.at_ref_time" class="method"><a class="src rightside" href="../../../src/query/promql/planner/at_modifier.rs.html#44-56">Source</a><h4 class="code-header">pub(crate) fn <a href="#method.at_ref_time" class="fn">at_ref_time</a>(
|
||
&self,
|
||
at: &<a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><AtModifier>,
|
||
offset: &<a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Offset>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Millisecond>></h4></section></summary><div class="docblock"><p>Resolve the <code>@</code> modifier of a vector or matrix selector into the timestamp its sample
|
||
window is anchored at, in milliseconds since the Unix epoch.</p>
|
||
<p>Prometheus semantics:</p>
|
||
<ul>
|
||
<li><code>@ <unix_ts></code> anchors at the given timestamp,</li>
|
||
<li><code>@ start()</code> / <code>@ end()</code> anchor at the evaluation range of the whole statement,</li>
|
||
<li><code>offset</code> shifts the anchor backwards: the window ends at <code>anchor - offset</code>.</li>
|
||
</ul>
|
||
<p>Returns <code>None</code> when the selector has no <code>@</code> modifier.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.anchor_sub" class="method"><a class="src rightside" href="../../../src/query/promql/planner/at_modifier.rs.html#64-69">Source</a><h4 class="code-header">pub(crate) fn <a href="#method.anchor_sub" class="fn">anchor_sub</a>(
|
||
lhs: Millisecond,
|
||
rhs: Millisecond,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><Millisecond></h4></section></summary><div class="docblock"><p>Subtracts <code>rhs</code> from <code>lhs</code> on the millisecond timeline of an <code>@</code> anchor.</p>
|
||
<p>A negative result is valid: <code>@</code> and <code>offset</code> accept timestamps before the Unix epoch. A
|
||
result outside the representable millisecond range is rejected like an unrepresentable
|
||
anchor (<a href="struct.PromPlanner.html#method.system_time_to_millis" title="associated function query::promql::planner::PromPlanner::system_time_to_millis"><code>Self::system_time_to_millis</code></a>) instead of clamping it, so the same class of
|
||
input always gets the same answer.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.at_modifier_offset" class="method"><a class="src rightside" href="../../../src/query/promql/planner/at_modifier.rs.html#79-88">Source</a><h4 class="code-header">pub(crate) fn <a href="#method.at_modifier_offset" class="fn">at_modifier_offset</a>(
|
||
&self,
|
||
at: &<a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><AtModifier>,
|
||
offset: &<a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Offset>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Millisecond>></h4></section></summary><div class="docblock"><p>The offset a selector with an <code>@</code> modifier is evaluated with.</p>
|
||
<p>Prometheus anchors such a selector by rewriting its offset to <code>eval_time - anchor</code>
|
||
(<code>setOffsetForAtModifier</code>), so that the selector always selects its samples around <code>anchor</code>
|
||
regardless of the step being evaluated. <code>eval_time</code> is the start of the evaluation the
|
||
selector belongs to, which is <code>ctx.start</code>.</p>
|
||
<p>Returns <code>None</code> when the selector has no <code>@</code> modifier.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.promotes_anchored_range_call" class="method"><a class="src rightside" href="../../../src/query/promql/planner/at_modifier.rs.html#121-154">Source</a><h4 class="code-header">fn <a href="#method.promotes_anchored_range_call" class="fn">promotes_anchored_range_call</a>(expr: &PromExpr) -> <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Whether <code>expr</code> is a call that has to be evaluated once for the whole grid, because it folds
|
||
a range selector anchored by <code>@</code> — the range argument of the call’s parser signature, which
|
||
is a [<code>MatrixSelector</code>] here; only a call with such an argument can take this path, so no
|
||
function-name registry is involved.</p>
|
||
<p>This is the shape that needs Prometheus’ <code>StepInvariantExpr</code> the most: a range function such
|
||
as <code>rate</code> derives its result from the evaluation instant it is called at, so folding the
|
||
window once per step would let the outer evaluation grid change the result of a window that
|
||
<code>@</code> fixed. Evaluated once, at the start of the grid, the rewritten offset of
|
||
<a href="struct.PromPlanner.html#method.at_modifier_offset" title="method query::promql::planner::PromPlanner::at_modifier_offset"><code>Self::at_modifier_offset</code></a> places the anchor at that instant, and <a href="struct.PromPlanner.html#method.replay_over_grid" title="method query::promql::planner::PromPlanner::replay_over_grid"><code>Self::replay_over_grid</code></a>
|
||
reports the result at every step.</p>
|
||
<p>Unlike Prometheus, which wraps the whole step-invariant subtree (<code>preprocessExprHelper</code>),
|
||
only the call itself is promoted here. The operators above it are not: they are still planned
|
||
at every step over the replayed result, which is safe for the row-wise ones and keeps the
|
||
promotion root narrow. The promotion root has to stay a call over one range selector, because
|
||
the replay needs one series per batch (<a href="struct.PromPlanner.html#method.series_divide_plan" title="method query::promql::planner::PromPlanner::series_divide_plan"><code>Self::series_divide_plan</code></a>) and only such a call
|
||
guarantees that the rows it emits still describe the series it was divided by. The operators
|
||
left out — an aggregation, a join, or a label rewriting call such as <code>label_join</code> — mix or
|
||
re-label the rows of different series, so they are unsafe as promotion roots even though
|
||
evaluating them after the replay is fine. A call whose input is an anchored <em>instant</em>
|
||
selector (<code>abs(some_metric @ 300)</code>) needs no promotion either: the selector anchors and
|
||
replays its sample per series on its own, and the call above it is row-wise.</p>
|
||
<p><code>predict_linear</code> is the exception among the range functions: it predicts from the evaluation
|
||
instant of each step (<a href="struct.PromPlanner.html#method.create_range_eval_ts_expr" title="method query::promql::planner::PromPlanner::create_range_eval_ts_expr"><code>Self::create_range_eval_ts_expr</code></a>), so it has to stay outside the
|
||
promoted subtree and follow the grid. The remaining arguments of the call have to be
|
||
literals, since the replay of the promoted result has no second vector input to divide.
|
||
Parentheses around the range argument are transparent (<code>rate((m[5m] @ 300))</code>), so they are
|
||
looked through and the call is promoted as if they were absent. Nothing else of the subtree
|
||
is unwrapped, so an outer parenthesis promotes no operator above the call.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.promote_anchored_range_call" class="method"><a class="src rightside" href="../../../src/query/promql/planner/at_modifier.rs.html#177-215">Source</a><h4 class="code-header">pub(crate) async fn <a href="#method.promote_anchored_range_call" class="fn">promote_anchored_range_call</a>(
|
||
&mut self,
|
||
prom_expr: &PromExpr,
|
||
timestamp_fn: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a>,
|
||
query_engine_state: &<a class="struct" href="../../query_engine/struct.QueryEngineState.html" title="struct query::query_engine::QueryEngineState">QueryEngineState</a>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><LogicalPlan>></h4></section></summary><div class="docblock"><p>Plans the anchored range call <code>prom_expr</code> (<a href="struct.PromPlanner.html#method.promotes_anchored_range_call" title="associated function query::promql::planner::PromPlanner::promotes_anchored_range_call"><code>Self::promotes_anchored_range_call</code></a>) as a
|
||
step-invariant subtree: the call is evaluated on a single evaluation instant (<code>grid_start</code>,
|
||
the start of the outer evaluation) and its result is then reported at every step of
|
||
<code>[grid_start, ctx.end]</code> by <a href="struct.PromPlanner.html#method.replay_over_grid" title="method query::promql::planner::PromPlanner::replay_over_grid"><code>Self::replay_over_grid</code></a>.</p>
|
||
<p>This is the planner’s counterpart of Prometheus’ <code>StepInvariantExpr</code> for the one shape it
|
||
promotes. Evaluating the call once matters for the functions that derive their result from
|
||
the step being evaluated: <code>rate(m[5m] @ 300)</code> folds its window around the anchor once, and
|
||
the extrapolation boundaries of <code>rate</code> must be derived from that same window at every step
|
||
instead of following the outer evaluation timestamp.</p>
|
||
<p>Only the call itself is promoted; the operators above it are planned as usual over the
|
||
replayed result. The result of the promoted call is split into one series per batch before it
|
||
is replayed (<a href="struct.PromPlanner.html#method.series_divide_plan" title="method query::promql::planner::PromPlanner::series_divide_plan"><code>Self::series_divide_plan</code></a>), because the row-wise projection of the call does
|
||
not preserve the batch layout of the selector.</p>
|
||
<p>Returns <code>None</code> when <code>prom_expr</code> is not such a call, so that the caller plans it as usual.
|
||
The selector inside the promoted call keeps its own <code>@</code> anchoring (see
|
||
<a href="struct.PromPlanner.html#method.at_modifier_offset" title="method query::promql::planner::PromPlanner::at_modifier_offset"><code>Self::at_modifier_offset</code></a>), and planning it with <code>ctx.end == ctx.start</code> folds its window
|
||
once for that single instant instead of expanding it over the grid, which the replay of the
|
||
call result above already does.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.system_time_to_millis" class="method"><a class="src rightside" href="../../../src/query/promql/planner/at_modifier.rs.html#218-235">Source</a><h4 class="code-header">fn <a href="#method.system_time_to_millis" class="fn">system_time_to_millis</a>(time: &<a class="struct" href="https://doc.rust-lang.org/1.98.1/std/time/struct.SystemTime.html" title="struct std::time::SystemTime">SystemTime</a>) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><Millisecond></h4></section></summary><div class="docblock"><p>Convert the timestamp of an <code>@</code> modifier into milliseconds since the Unix epoch.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.replay_over_grid" class="method"><a class="src rightside" href="../../../src/query/promql/planner/at_modifier.rs.html#254-282">Source</a><h4 class="code-header">pub(crate) fn <a href="#method.replay_over_grid" class="fn">replay_over_grid</a>(
|
||
&self,
|
||
anchored: LogicalPlan,
|
||
grid_start: Millisecond,
|
||
grid_end: Millisecond,
|
||
time_index_column: <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
|
||
) -> LogicalPlan</h4></section></summary><div class="docblock"><p>Report the samples of <code>anchored</code> at every step of the evaluation grid
|
||
<code>[grid_start, grid_end]</code>.</p>
|
||
<p>A selector with an <code>@</code> modifier is anchored: the sample window is selected once, around the
|
||
anchor timestamp, and every evaluation step reports that same window. Prometheus does this
|
||
by rewriting the selector’s offset to <code>eval_time - anchor</code> and only fetching the samples on
|
||
the first step (<code>setOffsetForAtModifier</code> plus the <code>refetch</code> shortcut in <code>rangeEval</code>).</p>
|
||
<p>The expansion reuses [<code>InstantManipulate</code>] with a lookback that spans the whole grid: every
|
||
step then picks the same sample (or the same already computed value, when <code>anchored</code> ends
|
||
with a function call such as <code>rate</code>) and stamps it with the step’s timestamp.</p>
|
||
<p>Every input batch of <code>anchored</code> must hold exactly one series, because [<code>InstantManipulate</code>]
|
||
takes a batch as one timeline. A leaf-level replay (<code>m @ 300</code>) consumes the [<code>SeriesDivide</code>]
|
||
of its selector directly. A promoted call is guaranteed that layout by
|
||
<a href="struct.PromPlanner.html#method.series_divide_plan" title="method query::promql::planner::PromPlanner::series_divide_plan"><code>Self::series_divide_plan</code></a>, which is why <a href="struct.PromPlanner.html#method.promote_anchored_range_call" title="method query::promql::planner::PromPlanner::promote_anchored_range_call"><code>Self::promote_anchored_range_call</code></a> splits
|
||
its result before calling this method.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.series_divide_plan" class="method"><a class="src rightside" href="../../../src/query/promql/planner/at_modifier.rs.html#298-325">Source</a><h4 class="code-header">fn <a href="#method.series_divide_plan" class="fn">series_divide_plan</a>(
|
||
&self,
|
||
input: LogicalPlan,
|
||
time_index_column: &<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section></summary><div class="docblock"><p>Sorts <code>input</code> by its series key and time index and splits it into one batch per series.</p>
|
||
<p>[<code>InstantManipulate</code>] reads every input batch as one series (it takes the timeline of the
|
||
batch and reports the row selected at every step), so a batch holding several series would
|
||
lose all but one of them. A selector establishes that layout with its own [<code>SeriesDivide</code>],
|
||
but the per-series distribution requirement does not reach a promoted subtree above it:
|
||
the row-wise projection of a call sits in between, so the batch boundaries of the selector
|
||
are not preserved — in a distributed plan the promoted result can be delivered as one batch
|
||
holding every series. Sorting and dividing here restores the layout, exactly like
|
||
<a href="struct.PromPlanner.html#method.prom_matrix_selector_to_plan" title="method query::promql::planner::PromPlanner::prom_matrix_selector_to_plan"><code>Self::prom_matrix_selector_to_plan</code></a> does for the input of a range function.</p>
|
||
<p>Series keys that are not present in <code>input</code> are dropped, since <code>ctx.tag_columns</code> may have
|
||
drifted from the actual output schema. A plan without any series key column is returned
|
||
unchanged: there is nothing to divide by.</p>
|
||
</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-PromPlanner-1" class="impl"><a class="src rightside" href="../../../src/query/promql/planner/function_plans.rs.html#53-473">Source</a><a href="#impl-PromPlanner-1" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.PromPlanner.html" title="struct query::promql::planner::PromPlanner">PromPlanner</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.create_histogram_plan" class="method"><a class="src rightside" href="../../../src/query/promql/planner/function_plans.rs.html#55-171">Source</a><h4 class="code-header">pub(super) async fn <a href="#method.create_histogram_plan" class="fn">create_histogram_plan</a>(
|
||
&mut self,
|
||
function_name: &<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>,
|
||
args: &PromFunctionArgs,
|
||
query_engine_state: &<a class="struct" href="../../query_engine/struct.QueryEngineState.html" title="struct query::query_engine::QueryEngineState">QueryEngineState</a>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section></summary><div class="docblock"><p>Create a classic, native, or mixed histogram helper plan.</p>
|
||
</div></details><section id="method.create_native_histogram_expr" class="method"><a class="src rightside" href="../../../src/query/promql/planner/function_plans.rs.html#173-194">Source</a><h4 class="code-header">fn <a href="#method.create_native_histogram_expr" class="fn">create_native_histogram_expr</a>(
|
||
&self,
|
||
function: HistogramFoldOperation,
|
||
field_column: &<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>,
|
||
) -> DfExpr</h4></section><section id="method.create_native_histogram_plan" class="method"><a class="src rightside" href="../../../src/query/promql/planner/function_plans.rs.html#196-225">Source</a><h4 class="code-header">fn <a href="#method.create_native_histogram_plan" class="fn">create_native_histogram_plan</a>(
|
||
&mut self,
|
||
function: HistogramFoldOperation,
|
||
input_plan: LogicalPlan,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section><section id="method.create_mixed_histogram_plan" class="method"><a class="src rightside" href="../../../src/query/promql/planner/function_plans.rs.html#227-287">Source</a><h4 class="code-header">fn <a href="#method.create_mixed_histogram_plan" class="fn">create_mixed_histogram_plan</a>(
|
||
&mut self,
|
||
function: HistogramFoldOperation,
|
||
input_plan: LogicalPlan,
|
||
float_field: <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
|
||
histogram_field: <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section><details class="toggle method-toggle" open><summary><section id="method.create_vector_plan" class="method"><a class="src rightside" href="../../../src/query/promql/planner/function_plans.rs.html#290-321">Source</a><h4 class="code-header">pub(super) async fn <a href="#method.create_vector_plan" class="fn">create_vector_plan</a>(
|
||
&mut self,
|
||
args: &PromFunctionArgs,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section></summary><div class="docblock"><p>Create a <a href="constant.SPECIAL_VECTOR_FUNCTION.html" title="constant query::promql::planner::SPECIAL_VECTOR_FUNCTION">SPECIAL_VECTOR_FUNCTION</a> plan</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.create_scalar_plan" class="method"><a class="src rightside" href="../../../src/query/promql/planner/function_plans.rs.html#324-404">Source</a><h4 class="code-header">pub(super) async fn <a href="#method.create_scalar_plan" class="fn">create_scalar_plan</a>(
|
||
&mut self,
|
||
args: &PromFunctionArgs,
|
||
query_engine_state: &<a class="struct" href="../../query_engine/struct.QueryEngineState.html" title="struct query::query_engine::QueryEngineState">QueryEngineState</a>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section></summary><div class="docblock"><p>Create a <a href="constant.SCALAR_FUNCTION.html" title="constant query::promql::planner::SCALAR_FUNCTION">SCALAR_FUNCTION</a> plan</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.create_absent_plan" class="method"><a class="src rightside" href="../../../src/query/promql/planner/function_plans.rs.html#407-472">Source</a><h4 class="code-header">pub(super) async fn <a href="#method.create_absent_plan" class="fn">create_absent_plan</a>(
|
||
&mut self,
|
||
args: &PromFunctionArgs,
|
||
query_engine_state: &<a class="struct" href="../../query_engine/struct.QueryEngineState.html" title="struct query::query_engine::QueryEngineState">QueryEngineState</a>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section></summary><div class="docblock"><p>Create a <a href="constant.SPECIAL_ABSENT_FUNCTION.html" title="constant query::promql::planner::SPECIAL_ABSENT_FUNCTION">SPECIAL_ABSENT_FUNCTION</a> plan</p>
|
||
</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-PromPlanner-2" class="impl"><a class="src rightside" href="../../../src/query/promql/planner/island.rs.html#212-536">Source</a><a href="#impl-PromPlanner-2" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.PromPlanner.html" title="struct query::promql::planner::PromPlanner">PromPlanner</a></h3></section></summary><div class="impl-items"><section id="method.try_plan_binary_island" class="method"><a class="src rightside" href="../../../src/query/promql/planner/island.rs.html#213-289">Source</a><h4 class="code-header">pub(super) async fn <a href="#method.try_plan_binary_island" class="fn">try_plan_binary_island</a>(
|
||
&mut self,
|
||
binary_expr: &PromBinaryExpr,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><LogicalPlan>></h4></section><section id="method.binary_island_join_contexts_supported" class="method"><a class="src rightside" href="../../../src/query/promql/planner/island.rs.html#291-309">Source</a><h4 class="code-header">fn <a href="#method.binary_island_join_contexts_supported" class="fn">binary_island_join_contexts_supported</a>(leaves: &[<a class="struct" href="island/struct.PlannedIslandLeaf.html" title="struct query::promql::planner::island::PlannedIslandLeaf">PlannedIslandLeaf</a>]) -> <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a></h4></section><section id="method.join_binary_island_leaf" class="method"><a class="src rightside" href="../../../src/query/promql/planner/island.rs.html#311-362">Source</a><h4 class="code-header">fn <a href="#method.join_binary_island_leaf" class="fn">join_binary_island_leaf</a>(
|
||
&self,
|
||
left: LogicalPlan,
|
||
first_leaf: &<a class="struct" href="island/struct.PlannedIslandLeaf.html" title="struct query::promql::planner::island::PlannedIslandLeaf">PlannedIslandLeaf</a>,
|
||
right_leaf: &<a class="struct" href="island/struct.PlannedIslandLeaf.html" title="struct query::promql::planner::island::PlannedIslandLeaf">PlannedIslandLeaf</a>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section><section id="method.build_binary_island_field_exprs" class="method"><a class="src rightside" href="../../../src/query/promql/planner/island.rs.html#364-487">Source</a><h4 class="code-header">fn <a href="#method.build_binary_island_field_exprs" class="fn">build_binary_island_field_exprs</a>(
|
||
expr: &<a class="enum" href="island/enum.IslandExpr.html" title="enum query::promql::planner::island::IslandExpr">IslandExpr</a>,
|
||
leaves: &[<a class="struct" href="island/struct.PlannedIslandLeaf.html" title="struct query::promql::planner::island::PlannedIslandLeaf">PlannedIslandLeaf</a>],
|
||
schema: &DFSchemaRef,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><<a class="struct" href="island/struct.IslandFieldExprs.html" title="struct query::promql::planner::island::IslandFieldExprs">IslandFieldExprs</a>></h4></section><section id="method.project_binary_island" class="method"><a class="src rightside" href="../../../src/query/promql/planner/island.rs.html#489-535">Source</a><h4 class="code-header">fn <a href="#method.project_binary_island" class="fn">project_binary_island</a>(
|
||
&mut self,
|
||
input: LogicalPlan,
|
||
base_alias: &TableReference,
|
||
base_ctx: &<a class="struct" href="struct.PromPlannerContext.html" title="struct query::promql::planner::PromPlannerContext">PromPlannerContext</a>,
|
||
field_exprs: <a class="struct" href="island/struct.IslandFieldExprs.html" title="struct query::promql::planner::island::IslandFieldExprs">IslandFieldExprs</a>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-PromPlanner-3" class="impl"><a class="src rightside" href="../../../src/query/promql/planner/set_operator.rs.html#40-833">Source</a><a href="#impl-PromPlanner-3" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.PromPlanner.html" title="struct query::promql::planner::PromPlanner">PromPlanner</a></h3></section></summary><div class="impl-items"><section id="method.or_operator" class="method"><a class="src rightside" href="../../../src/query/promql/planner/set_operator.rs.html#43-634">Source</a><h4 class="code-header">pub(super) fn <a href="#method.or_operator" class="fn">or_operator</a>(
|
||
&mut self,
|
||
left: LogicalPlan,
|
||
right: LogicalPlan,
|
||
left_tag_cols_set: <a class="struct" href="https://doc.rust-lang.org/1.98.1/std/collections/hash/set/struct.HashSet.html" title="struct std::collections::hash::set::HashSet">HashSet</a><<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
|
||
right_tag_cols_set: <a class="struct" href="https://doc.rust-lang.org/1.98.1/std/collections/hash/set/struct.HashSet.html" title="struct std::collections::hash::set::HashSet">HashSet</a><<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
|
||
left_context: <a class="struct" href="struct.PromPlannerContext.html" title="struct query::promql::planner::PromPlannerContext">PromPlannerContext</a>,
|
||
right_context: <a class="struct" href="struct.PromPlannerContext.html" title="struct query::promql::planner::PromPlannerContext">PromPlannerContext</a>,
|
||
modifier: &<a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><BinModifier>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section><details class="toggle method-toggle" open><summary><section id="method.set_op_on_non_field_columns" class="method"><a class="src rightside" href="../../../src/query/promql/planner/set_operator.rs.html#637-832">Source</a><h4 class="code-header">pub(super) fn <a href="#method.set_op_on_non_field_columns" class="fn">set_op_on_non_field_columns</a>(
|
||
&mut self,
|
||
left: LogicalPlan,
|
||
right: LogicalPlan,
|
||
left_context: <a class="struct" href="struct.PromPlannerContext.html" title="struct query::promql::planner::PromPlannerContext">PromPlannerContext</a>,
|
||
right_context: <a class="struct" href="struct.PromPlannerContext.html" title="struct query::promql::planner::PromPlannerContext">PromPlannerContext</a>,
|
||
op: TokenType,
|
||
modifier: &<a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><BinModifier>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section></summary><div class="docblock"><p>Build a set operator (AND/OR/UNLESS)</p>
|
||
</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-PromPlanner-4" class="impl"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#299-6588">Source</a><a href="#impl-PromPlanner-4" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.PromPlanner.html" title="struct query::promql::planner::PromPlanner">PromPlanner</a></h3></section></summary><div class="impl-items"><section id="method.stmt_to_plan" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#300-306">Source</a><h4 class="code-header">pub async fn <a href="#method.stmt_to_plan" class="fn">stmt_to_plan</a>(
|
||
table_provider: DfTableSourceProvider,
|
||
stmt: &EvalStmt,
|
||
query_engine_state: &<a class="struct" href="../../query_engine/struct.QueryEngineState.html" title="struct query::query_engine::QueryEngineState">QueryEngineState</a>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section><details class="toggle method-toggle" open><summary><section id="method.stmt_to_plan_with_annotations" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#309-327">Source</a><h4 class="code-header">pub async fn <a href="#method.stmt_to_plan_with_annotations" class="fn">stmt_to_plan_with_annotations</a>(
|
||
table_provider: DfTableSourceProvider,
|
||
stmt: &EvalStmt,
|
||
query_engine_state: &<a class="struct" href="../../query_engine/struct.QueryEngineState.html" title="struct query::query_engine::QueryEngineState">QueryEngineState</a>,
|
||
promql_annotations: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><PromqlAnnotationCollector>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section></summary><div class="docblock"><p>Plans a PromQL statement and passes the optional collector to histogram UDFs.</p>
|
||
</div></details><section id="method.prom_expr_to_plan" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#329-336">Source</a><h4 class="code-header">pub async fn <a href="#method.prom_expr_to_plan" class="fn">prom_expr_to_plan</a>(
|
||
&mut self,
|
||
prom_expr: &PromExpr,
|
||
query_engine_state: &<a class="struct" href="../../query_engine/struct.QueryEngineState.html" title="struct query::query_engine::QueryEngineState">QueryEngineState</a>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section><details class="toggle method-toggle" open><summary><section id="method.prom_expr_to_plan_inner" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#348-404">Source</a><h4 class="code-header">fn <a href="#method.prom_expr_to_plan_inner" class="fn">prom_expr_to_plan_inner</a><'life0, 'life1, 'life_self, 'async_recursion>(
|
||
&'life_self mut self,
|
||
prom_expr: &'life0 PromExpr,
|
||
timestamp_fn: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a>,
|
||
query_engine_state: &'life1 <a class="struct" href="../../query_engine/struct.QueryEngineState.html" title="struct query::query_engine::QueryEngineState">QueryEngineState</a>,
|
||
) -> <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan>> + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_recursion>><div class="where">where
|
||
'life0: 'async_recursion,
|
||
'life1: 'async_recursion,
|
||
'life_self: 'async_recursion,</div></h4></section></summary><div class="docblock"><p>Converts a PromQL expression to a logical plan.</p>
|
||
<p>NOTE:
|
||
The <code>timestamp_fn</code> indicates whether the PromQL <code>timestamp()</code> function is being evaluated in the current context.
|
||
If <code>true</code>, the planner generates a logical plan that projects the timestamp (time index) column
|
||
as the value column for each input row, implementing the PromQL <code>timestamp()</code> function semantics.
|
||
If <code>false</code>, the planner generates the standard logical plan for the given PromQL expression.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.prom_root_expr_to_plan" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#411-424">Source</a><h4 class="code-header">async fn <a href="#method.prom_root_expr_to_plan" class="fn">prom_root_expr_to_plan</a>(
|
||
&mut self,
|
||
prom_expr: &PromExpr,
|
||
query_engine_state: &<a class="struct" href="../../query_engine/struct.QueryEngineState.html" title="struct query::query_engine::QueryEngineState">QueryEngineState</a>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section></summary><div class="docblock"><p>Plans the root expression of a statement, or the expression wrapped by a root extension
|
||
such as <code>EXPLAIN</code> or an alias.</p>
|
||
<p>Prometheus only accepts a range-vector expression in an instant query, whose result is
|
||
the matrix of samples the expression selects.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.prom_range_vector_result_to_plan" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#431-453">Source</a><h4 class="code-header">async fn <a href="#method.prom_range_vector_result_to_plan" class="fn">prom_range_vector_result_to_plan</a>(
|
||
&mut self,
|
||
prom_expr: &PromExpr,
|
||
query_engine_state: &<a class="struct" href="../../query_engine/struct.QueryEngineState.html" title="struct query::query_engine::QueryEngineState">QueryEngineState</a>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section></summary><div class="docblock"><p>Plans the result of a range-vector expression in an instant query: the raw samples of a
|
||
range selector, or the evaluation points of a subquery, with their own timestamps.</p>
|
||
<p>Range functions consume the same expressions through [<code>RangeManipulate</code>], whose range
|
||
arrays are an internal representation that must not reach the query output.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.prom_range_selector_samples_to_plan" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#457-482">Source</a><h4 class="code-header">async fn <a href="#method.prom_range_selector_samples_to_plan" class="fn">prom_range_selector_samples_to_plan</a>(
|
||
&mut self,
|
||
selector: &MatrixSelector,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section></summary><div class="docblock"><p>Selects the samples of <code>selector</code> in <code>(t - offset - range, t - offset]</code>, where <code>t</code> is the
|
||
evaluation time or the <code>@</code> anchor. Stale markers are dropped and timestamps are kept.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.millisecond_time_index_plan" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#486-525">Source</a><h4 class="code-header">fn <a href="#method.millisecond_time_index_plan" class="fn">millisecond_time_index_plan</a>(&self, plan: LogicalPlan) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section></summary><div class="docblock"><p>Casts a microsecond or nanosecond time index to milliseconds, the precision of every
|
||
other PromQL result and the only one the Prometheus HTTP API encodes.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.prom_subquery_samples_to_plan" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#529-568">Source</a><h4 class="code-header">async fn <a href="#method.prom_subquery_samples_to_plan" class="fn">prom_subquery_samples_to_plan</a>(
|
||
&mut self,
|
||
subquery: &SubqueryExpr,
|
||
query_engine_state: &<a class="struct" href="../../query_engine/struct.QueryEngineState.html" title="struct query::query_engine::QueryEngineState">QueryEngineState</a>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section></summary><div class="docblock"><p>Evaluates the inner expression of <code>subquery</code> at the multiples of its step in
|
||
<code>(t - offset - range, t - offset]</code>, where <code>t</code> is the evaluation time or the <code>@</code> anchor.</p>
|
||
</div></details><section id="method.prom_subquery_expr_to_plan" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#570-727">Source</a><h4 class="code-header">async fn <a href="#method.prom_subquery_expr_to_plan" class="fn">prom_subquery_expr_to_plan</a>(
|
||
&mut self,
|
||
query_engine_state: &<a class="struct" href="../../query_engine/struct.QueryEngineState.html" title="struct query::query_engine::QueryEngineState">QueryEngineState</a>,
|
||
subquery_expr: &SubqueryExpr,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section><section id="method.prom_aggr_expr_to_plan" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#729-962">Source</a><h4 class="code-header">async fn <a href="#method.prom_aggr_expr_to_plan" class="fn">prom_aggr_expr_to_plan</a>(
|
||
&mut self,
|
||
query_engine_state: &<a class="struct" href="../../query_engine/struct.QueryEngineState.html" title="struct query::query_engine::QueryEngineState">QueryEngineState</a>,
|
||
aggr_expr: &AggregateExpr,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section><details class="toggle method-toggle" open><summary><section id="method.prom_topk_bottomk_to_plan" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#965-1102">Source</a><h4 class="code-header">async fn <a href="#method.prom_topk_bottomk_to_plan" class="fn">prom_topk_bottomk_to_plan</a>(
|
||
&mut self,
|
||
aggr_expr: &AggregateExpr,
|
||
input: LogicalPlan,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section></summary><div class="docblock"><p>Create logical plan for PromQL topk and bottomk expr.</p>
|
||
</div></details><section id="method.prom_unary_expr_to_plan" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#1104-1113">Source</a><h4 class="code-header">async fn <a href="#method.prom_unary_expr_to_plan" class="fn">prom_unary_expr_to_plan</a>(
|
||
&mut self,
|
||
query_engine_state: &<a class="struct" href="../../query_engine/struct.QueryEngineState.html" title="struct query::query_engine::QueryEngineState">QueryEngineState</a>,
|
||
unary_expr: &UnaryExpr,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section><section id="method.negate_field_columns" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#1115-1129">Source</a><h4 class="code-header">fn <a href="#method.negate_field_columns" class="fn">negate_field_columns</a>(&mut self, input: LogicalPlan) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section><section id="method.prom_binary_expr_to_plan" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#1131-1672">Source</a><h4 class="code-header">async fn <a href="#method.prom_binary_expr_to_plan" class="fn">prom_binary_expr_to_plan</a>(
|
||
&mut self,
|
||
query_engine_state: &<a class="struct" href="../../query_engine/struct.QueryEngineState.html" title="struct query::query_engine::QueryEngineState">QueryEngineState</a>,
|
||
binary_expr: &PromBinaryExpr,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section><section id="method.filter_binary_projection" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#1674-1738">Source</a><h4 class="code-header">fn <a href="#method.filter_binary_projection" class="fn">filter_binary_projection</a>(
|
||
&mut self,
|
||
input: LogicalPlan,
|
||
has_native_histogram: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a>,
|
||
preserve_any_value: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a>,
|
||
retain_field_columns: <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a>>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section><section id="method.project_binary_join_side" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#1740-1810">Source</a><h4 class="code-header">fn <a href="#method.project_binary_join_side" class="fn">project_binary_join_side</a>(
|
||
&mut self,
|
||
input: LogicalPlan,
|
||
table_ref: &TableReference,
|
||
context: &<a class="struct" href="struct.PromPlannerContext.html" title="struct query::promql::planner::PromPlannerContext">PromPlannerContext</a>,
|
||
result_labels: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="struct" href="struct.BinaryResultLabels.html" title="struct query::promql::planner::BinaryResultLabels">BinaryResultLabels</a>>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section><section id="method.prom_number_lit_to_plan" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#1812-1833">Source</a><h4 class="code-header">fn <a href="#method.prom_number_lit_to_plan" class="fn">prom_number_lit_to_plan</a>(
|
||
&mut self,
|
||
number_literal: &NumberLiteral,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section><section id="method.prom_string_lit_to_plan" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#1835-1856">Source</a><h4 class="code-header">fn <a href="#method.prom_string_lit_to_plan" class="fn">prom_string_lit_to_plan</a>(
|
||
&mut self,
|
||
string_literal: &StringLiteral,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section><details class="toggle method-toggle" open><summary><section id="method.offset_millis" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#1860-1866">Source</a><h4 class="code-header">fn <a href="#method.offset_millis" class="fn">offset_millis</a>(offset: &<a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Offset>) -> Millisecond</h4></section></summary><div class="docblock"><p>The offset of a selector in milliseconds. A positive offset selects samples from an earlier
|
||
time and moves them forward into the evaluation timeline.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.subquery_child_window" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#1871-1907">Source</a><h4 class="code-header">fn <a href="#method.subquery_child_window" class="fn">subquery_child_window</a>(
|
||
start: Millisecond,
|
||
end: Millisecond,
|
||
interval: Millisecond,
|
||
offset: Millisecond,
|
||
range: Millisecond,
|
||
step: Millisecond,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><(Millisecond, Millisecond)>></h4></section></summary><div class="docblock"><p>Returns the first absolute step multiple strictly after <code>start - offset - range</code>
|
||
through the last parent evaluation instant minus <code>offset</code>. Requires a positive step.
|
||
Returns <code>None</code> for an empty window; an unrepresentable nonempty bound is an error.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.series_key_columns" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#1911-1917">Source</a><h4 class="code-header">fn <a href="#method.series_key_columns" class="fn">series_key_columns</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>></h4></section></summary><div class="docblock"><p>The columns that identify one series, which is the series key expected by the PromQL plan
|
||
nodes that hold exactly one series per input batch.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.series_key_columns_for_schema" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#1920-1935">Source</a><h4 class="code-header">fn <a href="#method.series_key_columns_for_schema" class="fn">series_key_columns_for_schema</a>(&self, schema: &DFSchemaRef) -> <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>></h4></section></summary><div class="docblock"><p>Keep replay and series division on the same effective keys when a call rewrites labels.</p>
|
||
</div></details><section id="method.prom_vector_selector_to_plan" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#1937-2065">Source</a><h4 class="code-header">async fn <a href="#method.prom_vector_selector_to_plan" class="fn">prom_vector_selector_to_plan</a>(
|
||
&mut self,
|
||
vector_selector: &VectorSelector,
|
||
timestamp_fn: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section><details class="toggle method-toggle" open><summary><section id="method.timestamp_seconds_expr" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#2068-2090">Source</a><h4 class="code-header">fn <a href="#method.timestamp_seconds_expr" class="fn">timestamp_seconds_expr</a>(column: &<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>, schema: &DFSchema) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><DfExpr></h4></section></summary><div class="docblock"><p>Converts the timestamp column <code>column</code> into PromQL seconds, truncated to milliseconds.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.create_timestamp_func_plan" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#2097-2119">Source</a><h4 class="code-header">fn <a href="#method.create_timestamp_func_plan" class="fn">create_timestamp_func_plan</a>(
|
||
&mut self,
|
||
input: LogicalPlan,
|
||
timestamp_value: DfExpr,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section></summary><div class="docblock"><p>Builds a projection plan for the PromQL <code>timestamp()</code> function, which reports
|
||
<code>timestamp_value</code> as the value of each row, along with the original tag and time index
|
||
columns.</p>
|
||
<p>Updates the planner context’s field columns to the timestamp column name.</p>
|
||
</div></details><section id="method.prom_matrix_selector_to_plan" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#2121-2232">Source</a><h4 class="code-header">async fn <a href="#method.prom_matrix_selector_to_plan" class="fn">prom_matrix_selector_to_plan</a>(
|
||
&mut self,
|
||
matrix_selector: &MatrixSelector,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section><section id="method.prom_call_expr_to_plan" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#2234-2387">Source</a><h4 class="code-header">async fn <a href="#method.prom_call_expr_to_plan" class="fn">prom_call_expr_to_plan</a>(
|
||
&mut self,
|
||
query_engine_state: &<a class="struct" href="../../query_engine/struct.QueryEngineState.html" title="struct query::query_engine::QueryEngineState">QueryEngineState</a>,
|
||
call_expr: &Call,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section><section id="method.prom_ext_expr_to_plan" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#2389-2441">Source</a><h4 class="code-header">async fn <a href="#method.prom_ext_expr_to_plan" class="fn">prom_ext_expr_to_plan</a>(
|
||
&mut self,
|
||
query_engine_state: &<a class="struct" href="../../query_engine/struct.QueryEngineState.html" title="struct query::query_engine::QueryEngineState">QueryEngineState</a>,
|
||
ext_expr: &Extension,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section><details class="toggle method-toggle" open><summary><section id="method.preprocess_label_matchers" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#2453-2511">Source</a><h4 class="code-header">fn <a href="#method.preprocess_label_matchers" class="fn">preprocess_label_matchers</a>(
|
||
&mut self,
|
||
label_matchers: &Matchers,
|
||
name: &<a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><Matchers></h4></section></summary><div class="docblock"><p>Extract metric name from <code>__name__</code> matcher and set it into <a href="struct.PromPlannerContext.html" title="struct query::promql::planner::PromPlannerContext">PromPlannerContext</a>.
|
||
Returns a new [Matchers] that doesn’t contain metric name matcher.</p>
|
||
<p>Each call to this function means new selector is started. Thus, the context will be reset
|
||
at first.</p>
|
||
<p>Name rule:</p>
|
||
<ul>
|
||
<li>if <code>name</code> is some, then the matchers MUST NOT contain <code>__name__</code> matcher.</li>
|
||
<li>if <code>name</code> is none, then the matchers MAY contain NONE OR MULTIPLE <code>__name__</code> matchers.</li>
|
||
</ul>
|
||
</div></details><section id="method.selector_to_series_normalize_plan" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#2513-2677">Source</a><h4 class="code-header">async fn <a href="#method.selector_to_series_normalize_plan" class="fn">selector_to_series_normalize_plan</a>(
|
||
&mut self,
|
||
offset_duration: Millisecond,
|
||
label_matchers: Matchers,
|
||
is_range_selector: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section><details class="toggle method-toggle" open><summary><section id="method.agg_modifier_to_col" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#2685-2787">Source</a><h4 class="code-header">fn <a href="#method.agg_modifier_to_col" class="fn">agg_modifier_to_col</a>(
|
||
&mut self,
|
||
input_schema: &DFSchemaRef,
|
||
modifier: &<a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><LabelModifier>,
|
||
update_ctx: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><DfExpr>></h4></section></summary><div class="docblock"><p>Convert [LabelModifier] to [Column] exprs for aggregation.
|
||
Timestamp column and tag columns will be included.</p>
|
||
<h5 id="side-effect"><a class="doc-anchor" href="#side-effect">§</a>Side effect</h5>
|
||
<p>This method will also change the tag columns in ctx if <code>update_ctx</code> is true.</p>
|
||
</div></details><section id="method.matchers_to_expr" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#2790-2885">Source</a><h4 class="code-header">pub fn <a href="#method.matchers_to_expr" class="fn">matchers_to_expr</a>(
|
||
label_matchers: Matchers,
|
||
table_schema: &DFSchemaRef,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><DfExpr>></h4></section><section id="method.find_case_sensitive_column" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#2887-2896">Source</a><h4 class="code-header">fn <a href="#method.find_case_sensitive_column" class="fn">find_case_sensitive_column</a>(
|
||
schema: &DFSchemaRef,
|
||
column: &<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>></h4></section><section id="method.table_from_source" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#2898-2906">Source</a><h4 class="code-header">fn <a href="#method.table_from_source" class="fn">table_from_source</a>(&self, source: &<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><dyn TableSource>) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><TableRef></h4></section><section id="method.table_ref" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#2908-2923">Source</a><h4 class="code-header">fn <a href="#method.table_ref" class="fn">table_ref</a>(&self) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><TableReference></h4></section><section id="method.build_time_index_filter" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#2925-3019">Source</a><h4 class="code-header">fn <a href="#method.build_time_index_filter" class="fn">build_time_index_filter</a>(
|
||
&self,
|
||
offset_duration: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.i64.html">i64</a>,
|
||
schema: &DFSchemaRef,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><DfExpr>></h4></section><details class="toggle method-toggle" open><summary><section id="method.create_table_scan_plan" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#3025-3257">Source</a><h4 class="code-header">async fn <a href="#method.create_table_scan_plan" class="fn">create_table_scan_plan</a>(
|
||
&mut self,
|
||
table_ref: TableReference,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section></summary><div class="docblock"><p>Create a table scan plan and a filter plan with given filter.</p>
|
||
<h5 id="panic"><a class="doc-anchor" href="#panic">§</a>Panic</h5>
|
||
<p>If the filter is empty</p>
|
||
</div></details><section id="method.collect_row_key_tag_columns_from_plan" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#3259-3291">Source</a><h4 class="code-header">fn <a href="#method.collect_row_key_tag_columns_from_plan" class="fn">collect_row_key_tag_columns_from_plan</a>(
|
||
&self,
|
||
plan: &LogicalPlan,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/collections/btree/set/struct.BTreeSet.html" title="struct alloc::collections::btree::set::BTreeSet">BTreeSet</a><<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>></h4></section><details class="toggle method-toggle" open><summary><section id="method.setup_context" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#3296-3345">Source</a><h4 class="code-header">async fn <a href="#method.setup_context" class="fn">setup_context</a>(&mut self) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><LogicalPlan>></h4></section></summary><div class="docblock"><p>Setup <a href="struct.PromPlannerContext.html" title="struct query::promql::planner::PromPlannerContext">PromPlannerContext</a>’s state fields.</p>
|
||
<p>Returns a logical plan for an empty metric.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.setup_context_for_empty_metric" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#3349-3372">Source</a><h4 class="code-header">fn <a href="#method.setup_context_for_empty_metric" class="fn">setup_context_for_empty_metric</a>(&mut self) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section></summary><div class="docblock"><p>Setup <a href="struct.PromPlannerContext.html" title="struct query::promql::planner::PromPlannerContext">PromPlannerContext</a>’s state fields for a non existent table
|
||
without any rows.</p>
|
||
</div></details><section id="method.create_function_args" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#3375-3408">Source</a><h4 class="code-header">fn <a href="#method.create_function_args" class="fn">create_function_args</a>(&self, args: &[<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><PromExpr>]) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><<a class="struct" href="struct.FunctionArgs.html" title="struct query::promql::planner::FunctionArgs">FunctionArgs</a>></h4></section><section id="method.create_mixed_range_function_exprs" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#3410-3534">Source</a><h4 class="code-header">fn <a href="#method.create_mixed_range_function_exprs" class="fn">create_mixed_range_function_exprs</a>(
|
||
&mut self,
|
||
func: &Function,
|
||
other_input_exprs: <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/collections/vec_deque/struct.VecDeque.html" title="struct alloc::collections::vec_deque::VecDeque">VecDeque</a><DfExpr>,
|
||
float_field: &<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>,
|
||
histogram_field: &<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>,
|
||
input_schema: &DFSchemaRef,
|
||
range_fold_offset: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Millisecond>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><DfExpr>>></h4></section><details class="toggle method-toggle" open><summary><section id="method.create_function_expr" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#3541-4168">Source</a><h4 class="code-header">fn <a href="#method.create_function_expr" class="fn">create_function_expr</a>(
|
||
&mut self,
|
||
func: &Function,
|
||
other_input_exprs: <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><DfExpr>,
|
||
input_schema: &DFSchemaRef,
|
||
query_engine_state: &<a class="struct" href="../../query_engine/struct.QueryEngineState.html" title="struct query::query_engine::QueryEngineState">QueryEngineState</a>,
|
||
range_fold_offset: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Millisecond>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><(<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><DfExpr>, <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>)></h4></section></summary><div class="docblock"><p>Creates function expressions for projection and returns the expressions and new tags.</p>
|
||
<h5 id="side-effects"><a class="doc-anchor" href="#side-effects">§</a>Side Effects</h5>
|
||
<p>This method will update <a href="struct.PromPlannerContext.html" title="struct query::promql::planner::PromPlannerContext">PromPlannerContext</a>’s fields and tags if needed.</p>
|
||
</div></details><section id="method.select_delta_range_math" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#4170-4211">Source</a><h4 class="code-header">fn <a href="#method.select_delta_range_math" class="fn">select_delta_range_math</a>(
|
||
&self,
|
||
function: &<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>,
|
||
input_schema: &DFSchemaRef,
|
||
range_length: Millisecond,
|
||
delta_sum: DfExpr,
|
||
cumulative: DfExpr,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><DfExpr></h4></section><details class="toggle method-toggle" open><summary><section id="method.validate_label_name" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#4216-4227">Source</a><h4 class="code-header">fn <a href="#method.validate_label_name" class="fn">validate_label_name</a>(label_name: &<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.unit.html">()</a>></h4></section></summary><div class="docblock"><p>Validate label name according to Prometheus specification.
|
||
Label names must match the regex: [a-zA-Z_][a-zA-Z0-9_]*
|
||
Additionally, label names starting with double underscores are reserved for internal use.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.build_regexp_replace_label_expr" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#4230-4320">Source</a><h4 class="code-header">fn <a href="#method.build_regexp_replace_label_expr" class="fn">build_regexp_replace_label_expr</a>(
|
||
&self,
|
||
other_input_exprs: &mut <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/collections/vec_deque/struct.VecDeque.html" title="struct alloc::collections::vec_deque::VecDeque">VecDeque</a><DfExpr>,
|
||
input_schema: &DFSchemaRef,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><(DfExpr, <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>)>></h4></section></summary><div class="docblock"><p>Build expr for <code>label_replace</code> function</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.build_concat_labels_expr" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#4323-4407">Source</a><h4 class="code-header">fn <a href="#method.build_concat_labels_expr" class="fn">build_concat_labels_expr</a>(
|
||
other_input_exprs: &mut <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/collections/vec_deque/struct.VecDeque.html" title="struct alloc::collections::vec_deque::VecDeque">VecDeque</a><DfExpr>,
|
||
ctx: &<a class="struct" href="struct.PromPlannerContext.html" title="struct query::promql::planner::PromPlannerContext">PromPlannerContext</a>,
|
||
input_schema: &DFSchemaRef,
|
||
query_engine_state: &<a class="struct" href="../../query_engine/struct.QueryEngineState.html" title="struct query::query_engine::QueryEngineState">QueryEngineState</a>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><(DfExpr, <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>)></h4></section></summary><div class="docblock"><p>Build expr for <code>label_join</code> function</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.label_value_expr" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#4411-4419">Source</a><h4 class="code-header">fn <a href="#method.label_value_expr" class="fn">label_value_expr</a>(label: &<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>, input_schema: &DFSchemaRef) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><DfExpr></h4></section></summary><div class="docblock"><p>The value of <code>label</code> as a string, where NULL (the series has no such label) reads as the
|
||
empty string, as in PromQL.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.empty_label_to_null" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#4424-4429">Source</a><h4 class="code-header">fn <a href="#method.empty_label_to_null" class="fn">empty_label_to_null</a>(value: DfExpr) -> DfExpr</h4></section></summary><div class="docblock"><p>An empty label value means the label is absent in PromQL. Label functions represent it
|
||
as NULL, like a series that never had the label, so that both compare equal when label
|
||
sets are matched and neither is reported as a label.</p>
|
||
</div></details><section id="method.create_time_index_column_expr" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#4431-4438">Source</a><h4 class="code-header">fn <a href="#method.create_time_index_column_expr" class="fn">create_time_index_column_expr</a>(&self) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><DfExpr></h4></section><details class="toggle method-toggle" open><summary><section id="method.create_range_eval_ts_expr" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#4454-4478">Source</a><h4 class="code-header">fn <a href="#method.create_range_eval_ts_expr" class="fn">create_range_eval_ts_expr</a>(
|
||
&self,
|
||
fold_offset: Millisecond,
|
||
input_schema: &DFSchemaRef,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><DfExpr></h4></section></summary><div class="docblock"><p>Builds the evaluation instant the window of the last planned range selector is folded for,
|
||
as a <code>Timestamp(Millisecond)</code> expression.</p>
|
||
<p>The timestamp payload of a folded window is shifted onto the evaluation timeline by the
|
||
offset the window is folded with (<code>fold_offset</code>), while the time index column of a folded
|
||
row keeps the evaluation timestamp of its step. Adding the offset back yields the
|
||
evaluation instant on the payload timeline, which is where the regression of
|
||
<code>predict_linear</code> is centered: neither a plain window (which may end before the step, and
|
||
is additionally shifted by <code>offset</code> on the payload timeline) nor an <code>@</code>-anchored one
|
||
(whose end is the anchor, while the payload is shifted by <code>at_offset</code>) ends at the step it
|
||
is evaluated at.</p>
|
||
<p>The sum is computed on the millisecond representation and cast back, so that the result
|
||
keeps the <code>Timestamp(Millisecond)</code> type the range functions declare for it.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.name_without_last_arg" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#4486-4498">Source</a><h4 class="code-header">fn <a href="#method.name_without_last_arg" class="fn">name_without_last_arg</a>(expr: &DfExpr) -> <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class="docblock"><p>The name of <code>expr</code> without its last argument.</p>
|
||
<p>A <code>predict_linear</code> call appends the evaluation instant of its window as a private last
|
||
argument (<a href="struct.PromPlanner.html#method.create_range_eval_ts_expr" title="method query::promql::planner::PromPlanner::create_range_eval_ts_expr"><code>Self::create_range_eval_ts_expr</code></a>). Naming the output column after the call
|
||
the user wrote, without that argument, keeps the injected expression out of the
|
||
user-visible schema; the expression itself keeps every argument it needs.</p>
|
||
</div></details><section id="method.create_tag_column_exprs" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#4500-4507">Source</a><h4 class="code-header">fn <a href="#method.create_tag_column_exprs" class="fn">create_tag_column_exprs</a>(&self) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><DfExpr>></h4></section><section id="method.create_field_column_exprs" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#4509-4516">Source</a><h4 class="code-header">fn <a href="#method.create_field_column_exprs" class="fn">create_field_column_exprs</a>(&self) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><DfExpr>></h4></section><section id="method.create_tag_and_time_index_column_sort_exprs" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#4518-4527">Source</a><h4 class="code-header">fn <a href="#method.create_tag_and_time_index_column_sort_exprs" class="fn">create_tag_and_time_index_column_sort_exprs</a>(&self) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><SortExpr>></h4></section><section id="method.create_field_columns_sort_exprs" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#4529-4535">Source</a><h4 class="code-header">fn <a href="#method.create_field_columns_sort_exprs" class="fn">create_field_columns_sort_exprs</a>(&self, asc: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a>) -> <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><SortExpr></h4></section><section id="method.create_sort_exprs_by_tags" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#4537-4558">Source</a><h4 class="code-header">fn <a href="#method.create_sort_exprs_by_tags" class="fn">create_sort_exprs_by_tags</a>(
|
||
func: &<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>,
|
||
tags: <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><DfExpr>,
|
||
asc: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><SortExpr>></h4></section><section id="method.create_empty_values_filter_expr" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#4560-4582">Source</a><h4 class="code-header">fn <a href="#method.create_empty_values_filter_expr" class="fn">create_empty_values_filter_expr</a>(
|
||
&self,
|
||
preserve_any_value: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><DfExpr></h4></section><details class="toggle method-toggle" open><summary><section id="method.create_aggregate_exprs" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#4600-4697">Source</a><h4 class="code-header">fn <a href="#method.create_aggregate_exprs" class="fn">create_aggregate_exprs</a>(
|
||
&mut self,
|
||
op: TokenType,
|
||
param: &<a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><PromExpr>>,
|
||
input_plan: &LogicalPlan,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><(<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><DfExpr>, <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><DfExpr>)></h4></section></summary><div class="docblock"><p>Creates a set of DataFusion <code>DfExpr::AggregateFunction</code> expressions for each value column using the specified aggregate function.</p>
|
||
<h5 id="side-effects-1"><a class="doc-anchor" href="#side-effects-1">§</a>Side Effects</h5>
|
||
<p>This method modifies the value columns in the context by replacing them with the new columns
|
||
created by the aggregate function application.</p>
|
||
<h5 id="returns"><a class="doc-anchor" href="#returns">§</a>Returns</h5>
|
||
<p>Returns a tuple of <code>(aggregate_expressions, previous_field_expressions)</code> where:</p>
|
||
<ul>
|
||
<li><code>aggregate_expressions</code>: Expressions that apply the aggregate function to the original fields</li>
|
||
<li><code>previous_field_expressions</code>: Field expressions naming the pre-aggregation values. This is
|
||
non-empty only when the operation is <code>count_values</code>, which groups by the sample value and
|
||
projects it as the generated label, so these expressions are passed through the same
|
||
formatting as that label (<code>prom_float_to_string</code>).</li>
|
||
</ul>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.alias_extremum_as_builtin" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#4701-4715">Source</a><h4 class="code-header">fn <a href="#method.alias_extremum_as_builtin" class="fn">alias_extremum_as_builtin</a>(expr: DfExpr) -> DfExpr</h4></section></summary><div class="docblock"><p><code>prom_min</code>/<code>prom_max</code> keep their own names so SQL can use them next to <code>min</code>/<code>max</code>
|
||
in one aggregate. PromQL output columns keep the builtin names.</p>
|
||
</div></details><section id="method.create_numeric_aggregate_expr" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#4717-4750">Source</a><h4 class="code-header">fn <a href="#method.create_numeric_aggregate_expr" class="fn">create_numeric_aggregate_expr</a>(
|
||
op: TokenType,
|
||
param: &<a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><PromExpr>>,
|
||
input: DfExpr,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><DfExpr></h4></section><section id="method.create_mixed_aggregate_exprs" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#4752-4842">Source</a><h4 class="code-header">fn <a href="#method.create_mixed_aggregate_exprs" class="fn">create_mixed_aggregate_exprs</a>(
|
||
&mut self,
|
||
op: TokenType,
|
||
param: &<a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><PromExpr>>,
|
||
float_column: &<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>,
|
||
histogram_column: &<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><(<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><DfExpr>, <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><DfExpr>)></h4></section><section id="method.mixed_sample_count_column" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#4844-4846">Source</a><h4 class="code-header">fn <a href="#method.mixed_sample_count_column" class="fn">mixed_sample_count_column</a>(column: &<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>) -> DfExpr</h4></section><section id="method.mixed_sample_count_name" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#4848-4850">Source</a><h4 class="code-header">fn <a href="#method.mixed_sample_count_name" class="fn">mixed_sample_count_name</a>(column: &<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>) -> <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section><section id="method.mixed_aggregate_filter_expr" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#4852-4877">Source</a><h4 class="code-header">fn <a href="#method.mixed_aggregate_filter_expr" class="fn">mixed_aggregate_filter_expr</a>(
|
||
&self,
|
||
op: TokenType,
|
||
float_column: &<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>,
|
||
histogram_column: &<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><DfExpr></h4></section><section id="method.mixed_ignored_histogram_filter_expr" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#4879-4899">Source</a><h4 class="code-header">fn <a href="#method.mixed_ignored_histogram_filter_expr" class="fn">mixed_ignored_histogram_filter_expr</a>(
|
||
&self,
|
||
op: TokenType,
|
||
histogram_column: &<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><DfExpr></h4></section><section id="method.create_native_histogram_aggregate_expr" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#4901-4942">Source</a><h4 class="code-header">fn <a href="#method.create_native_histogram_aggregate_expr" class="fn">create_native_histogram_aggregate_expr</a>(
|
||
&self,
|
||
op: TokenType,
|
||
column: &<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><DfExpr></h4></section><section id="method.create_native_histogram_aggregate_exprs" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#4944-4985">Source</a><h4 class="code-header">fn <a href="#method.create_native_histogram_aggregate_exprs" class="fn">create_native_histogram_aggregate_exprs</a>(
|
||
&mut self,
|
||
op: TokenType,
|
||
input_plan: &LogicalPlan,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><(<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><DfExpr>, <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><DfExpr>)></h4></section><section id="method.get_param_value_as_str" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#4987-5001">Source</a><h4 class="code-header">fn <a href="#method.get_param_value_as_str" class="fn">get_param_value_as_str</a>(
|
||
op: TokenType,
|
||
param: &<a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><PromExpr>>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><&<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>></h4></section><section id="method.get_param_as_literal_expr" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#5003-5047">Source</a><h4 class="code-header">fn <a href="#method.get_param_as_literal_expr" class="fn">get_param_as_literal_expr</a>(
|
||
param: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&PromExpr>,
|
||
op: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><TokenType>,
|
||
expected_type: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><ArrowDataType>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><DfExpr></h4></section><details class="toggle method-toggle" open><summary><section id="method.create_window_exprs" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#5051-5112">Source</a><h4 class="code-header">fn <a href="#method.create_window_exprs" class="fn">create_window_exprs</a>(
|
||
&mut self,
|
||
op: TokenType,
|
||
group_exprs: <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><DfExpr>,
|
||
input_plan: &LogicalPlan,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><DfExpr>></h4></section></summary><div class="docblock"><p>Create [DfExpr::WindowFunction] expr for each value column with given window function.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.try_build_literal_expr" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#5116-5165">Source</a><h4 class="code-header">fn <a href="#method.try_build_literal_expr" class="fn">try_build_literal_expr</a>(expr: &PromExpr) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><DfExpr></h4></section></summary><div class="docblock"><p>Try to build a DataFusion Literal Expression from PromQL Expr, return
|
||
<code>None</code> if the input is not a literal expression.</p>
|
||
</div></details><section id="method.try_build_special_time_expr_with_context" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#5167-5180">Source</a><h4 class="code-header">fn <a href="#method.try_build_special_time_expr_with_context" class="fn">try_build_special_time_expr_with_context</a>(
|
||
&self,
|
||
expr: &PromExpr,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><DfExpr></h4></section><section id="method.native_histogram_binary_expr" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#5182-5243">Source</a><h4 class="code-header">fn <a href="#method.native_histogram_binary_expr" class="fn">native_histogram_binary_expr</a>(
|
||
token: TokenType,
|
||
lhs: DfExpr,
|
||
lhs_is_histogram: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a>,
|
||
rhs: DfExpr,
|
||
rhs_is_histogram: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a>,
|
||
filter_context: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a>,
|
||
promql_annotations: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><PromqlAnnotationCollector>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><DfExpr>></h4></section><details class="toggle method-toggle" open><summary><section id="method.prom_token_to_binary_expr_builder" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#5248-5310">Source</a><h4 class="code-header">fn <a href="#method.prom_token_to_binary_expr_builder" class="fn">prom_token_to_binary_expr_builder</a>(
|
||
token: TokenType,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(DfExpr, DfExpr) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><DfExpr>>></h4></section></summary><div class="docblock"><p>Return a lambda to build binary expression from token.
|
||
Because some binary operator are function in DataFusion like <code>atan2</code> or <code>^</code>.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.ieee_comparison" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#5313-5318">Source</a><h4 class="code-header">fn <a href="#method.ieee_comparison" class="fn">ieee_comparison</a>(lhs: DfExpr, op: Operator, rhs: DfExpr) -> DfExpr</h4></section></summary><div class="docblock"><p>Compares two expressions with IEEE 754 semantics, as PromQL does; see [<code>IeeeComparison</code>].</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.is_token_a_comparison_op" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#5321-5331">Source</a><h4 class="code-header">fn <a href="#method.is_token_a_comparison_op" class="fn">is_token_a_comparison_op</a>(token: TokenType) -> <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if the given op is a <a href="https://prometheus.io/docs/prometheus/latest/querying/operators/#comparison-binary-operators">comparison operator</a>.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.is_token_a_set_op" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#5334-5341">Source</a><h4 class="code-header">fn <a href="#method.is_token_a_set_op" class="fn">is_token_a_set_op</a>(token: TokenType) -> <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if the given op is a set operator (UNION, INTERSECT and EXCEPT in SQL).</p>
|
||
</div></details><section id="method.align_binary_field_columns" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#5343-5439">Source</a><h4 class="code-header">fn <a href="#method.align_binary_field_columns" class="fn">align_binary_field_columns</a><'a>(
|
||
left_schema: &DFSchemaRef,
|
||
right_schema: &DFSchemaRef,
|
||
left_field_columns: &'a [<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>],
|
||
right_field_columns: &'a [<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>],
|
||
op: TokenType,
|
||
left_is_scalar: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a>,
|
||
right_is_scalar: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a>,
|
||
) -> (<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><(<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><(&'a <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, &'a <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>)>)>, <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><(&'a <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, &'a <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>)>)</h4></section><section id="method.binary_result_is_histogram" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#5441-5455">Source</a><h4 class="code-header">fn <a href="#method.binary_result_is_histogram" class="fn">binary_result_is_histogram</a>(
|
||
token: TokenType,
|
||
lhs_is_histogram: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a>,
|
||
rhs_is_histogram: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a>></h4></section><section id="method.plan_has_tsid_column" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#5457-5462">Source</a><h4 class="code-header">fn <a href="#method.plan_has_tsid_column" class="fn">plan_has_tsid_column</a>(plan: &LogicalPlan) -> <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a></h4></section><section id="method.is_empty_metric" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#5464-5466">Source</a><h4 class="code-header">fn <a href="#method.is_empty_metric" class="fn">is_empty_metric</a>(plan: &LogicalPlan) -> <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a></h4></section><section id="method.native_histogram_arrow_type" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#5468-5470">Source</a><h4 class="code-header">fn <a href="#method.native_histogram_arrow_type" class="fn">native_histogram_arrow_type</a>() -> ArrowDataType</h4></section><section id="method.field_column_type" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#5472-5479">Source</a><h4 class="code-header">fn <a href="#method.field_column_type" class="fn">field_column_type</a><'a>(
|
||
schema: &'a DFSchemaRef,
|
||
field_column: &<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&'a ArrowDataType></h4></section><section id="method.field_column_is_native_histogram" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#5481-5484">Source</a><h4 class="code-header">fn <a href="#method.field_column_is_native_histogram" class="fn">field_column_is_native_histogram</a>(
|
||
schema: &DFSchemaRef,
|
||
field_column: &<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>,
|
||
) -> <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a></h4></section><section id="method.field_columns_contain_native_histogram" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#5486-5493">Source</a><h4 class="code-header">fn <a href="#method.field_columns_contain_native_histogram" class="fn">field_columns_contain_native_histogram</a>(
|
||
schema: &DFSchemaRef,
|
||
field_columns: &[<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>],
|
||
) -> <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a></h4></section><section id="method.field_column_is_float_range" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#5495-5504">Source</a><h4 class="code-header">fn <a href="#method.field_column_is_float_range" class="fn">field_column_is_float_range</a>(schema: &DFSchemaRef, field_column: &<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a></h4></section><section id="method.field_columns_are_alternative_samples" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#5506-5511">Source</a><h4 class="code-header">fn <a href="#method.field_columns_are_alternative_samples" class="fn">field_columns_are_alternative_samples</a>(
|
||
schema: &DFSchemaRef,
|
||
field_columns: &[<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>],
|
||
) -> <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a></h4></section><section id="method.alternative_sample_columns" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#5513-5546">Source</a><h4 class="code-header">fn <a href="#method.alternative_sample_columns" class="fn">alternative_sample_columns</a><'a>(
|
||
schema: &DFSchemaRef,
|
||
field_columns: &'a [<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>],
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><(&'a <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>, &'a <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>)></h4></section><section id="method.alternative_sample_range_columns" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#5548-5556">Source</a><h4 class="code-header">fn <a href="#method.alternative_sample_range_columns" class="fn">alternative_sample_range_columns</a><'a>(
|
||
schema: &DFSchemaRef,
|
||
field_columns: &'a [<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>],
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><(&'a <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>, &'a <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>)></h4></section><section id="method.field_column_is_native_histogram_range" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#5558-5567">Source</a><h4 class="code-header">fn <a href="#method.field_column_is_native_histogram_range" class="fn">field_column_is_native_histogram_range</a>(
|
||
schema: &DFSchemaRef,
|
||
field_column: &<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>,
|
||
) -> <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a></h4></section><section id="method.all_field_columns_are_native_histograms" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#5569-5576">Source</a><h4 class="code-header">fn <a href="#method.all_field_columns_are_native_histograms" class="fn">all_field_columns_are_native_histograms</a>(&self, schema: &DFSchemaRef) -> <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a></h4></section><section id="method.all_field_columns_are_native_histogram_ranges" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#5578-5585">Source</a><h4 class="code-header">fn <a href="#method.all_field_columns_are_native_histogram_ranges" class="fn">all_field_columns_are_native_histogram_ranges</a>(
|
||
&self,
|
||
schema: &DFSchemaRef,
|
||
) -> <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a></h4></section><section id="method.optional_tsid_projection" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#5587-5598">Source</a><h4 class="code-header">fn <a href="#method.optional_tsid_projection" class="fn">optional_tsid_projection</a>(
|
||
schema: &DFSchemaRef,
|
||
table_ref: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&TableReference>,
|
||
keep_tsid: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><DfExpr></h4></section><section id="method.binary_join_key_columns" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#5600-5677">Source</a><h4 class="code-header">fn <a href="#method.binary_join_key_columns" class="fn">binary_join_key_columns</a>(
|
||
&self,
|
||
left_schema: &DFSchemaRef,
|
||
right_schema: &DFSchemaRef,
|
||
left_context: &<a class="struct" href="struct.PromPlannerContext.html" title="struct query::promql::planner::PromPlannerContext">PromPlannerContext</a>,
|
||
right_context: &<a class="struct" href="struct.PromPlannerContext.html" title="struct query::promql::planner::PromPlannerContext">PromPlannerContext</a>,
|
||
only_join_time_index: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a>,
|
||
modifier: &<a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><BinModifier>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><(<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/collections/btree/set/struct.BTreeSet.html" title="struct alloc::collections::btree::set::BTreeSet">BTreeSet</a><<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>, <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/collections/btree/set/struct.BTreeSet.html" title="struct alloc::collections::btree::set::BTreeSet">BTreeSet</a><<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>, <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a>)></h4></section><details class="toggle method-toggle" open><summary><section id="method.binary_result_labels" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#5685-5738">Source</a><h4 class="code-header">fn <a href="#method.binary_result_labels" class="fn">binary_result_labels</a>(
|
||
left_context: &<a class="struct" href="struct.PromPlannerContext.html" title="struct query::promql::planner::PromPlannerContext">PromPlannerContext</a>,
|
||
right_context: &<a class="struct" href="struct.PromPlannerContext.html" title="struct query::promql::planner::PromPlannerContext">PromPlannerContext</a>,
|
||
modifier: &<a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><BinModifier>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><(<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a>, <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>)>></h4></section></summary><div class="docblock"><p>Result labels of a vector-vector binary operation, following Prometheus <code>resultMetric</code>:
|
||
<code>on(...)</code> keeps only the matching labels, <code>ignoring(...)</code> drops them, and a group modifier
|
||
keeps the “many” side’s labels plus the <code>group_x(...)</code> labels taken from the “one” side.</p>
|
||
<p>The flag of each entry tells which operand the label is projected from. <code>None</code> means the
|
||
operation keeps a whole operand tag set, which the default projection already does.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.binary_result_label_projection" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#5741-5794">Source</a><h4 class="code-header">fn <a href="#method.binary_result_label_projection" class="fn">binary_result_label_projection</a>(
|
||
schema: &DFSchemaRef,
|
||
left_table_ref: &TableReference,
|
||
right_table_ref: &TableReference,
|
||
left_context: &<a class="struct" href="struct.PromPlannerContext.html" title="struct query::promql::planner::PromPlannerContext">PromPlannerContext</a>,
|
||
right_context: &<a class="struct" href="struct.PromPlannerContext.html" title="struct query::promql::planner::PromPlannerContext">PromPlannerContext</a>,
|
||
labels: <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><(<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a>, <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>)>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><<a class="struct" href="struct.BinaryResultLabels.html" title="struct query::promql::planner::BinaryResultLabels">BinaryResultLabels</a>></h4></section></summary><div class="docblock"><p>Resolve <a href="struct.PromPlanner.html#method.binary_result_labels" title="associated function query::promql::planner::PromPlanner::binary_result_labels"><code>Self::binary_result_labels</code></a> against the join output.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.binary_result_labels_may_repeat" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#5799-5829">Source</a><h4 class="code-header">fn <a href="#method.binary_result_labels_may_repeat" class="fn">binary_result_labels_may_repeat</a>(
|
||
left_context: &<a class="struct" href="struct.PromPlannerContext.html" title="struct query::promql::planner::PromPlannerContext">PromPlannerContext</a>,
|
||
right_context: &<a class="struct" href="struct.PromPlannerContext.html" title="struct query::promql::planner::PromPlannerContext">PromPlannerContext</a>,
|
||
modifier: &<a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><BinModifier>,
|
||
) -> <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Whether the result of a binary operation can hold two series with the same labels, which
|
||
only <a href="struct.PromPlanner.html#method.binary_result_labels" title="associated function query::promql::planner::PromPlanner::binary_result_labels"><code>Self::binary_result_labels</code></a> can introduce: one-to-one matching on a subset of the
|
||
tags, or a group modifier that overwrites a label of the “many” side.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.assert_unique_match_group" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#5833-5896">Source</a><h4 class="code-header">fn <a href="#method.assert_unique_match_group" class="fn">assert_unique_match_group</a>(
|
||
plan: LogicalPlan,
|
||
group_exprs: <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><DfExpr>,
|
||
group_labels: <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
|
||
time_index_expr: DfExpr,
|
||
violation: MatchGroupViolation,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section></summary><div class="docblock"><p>Wrap <code>plan</code> in a check that fails the query when a match group holds more than one row at
|
||
a timestamp. <code>group_exprs</code> are the label columns of the group, resolved against <code>plan</code>.</p>
|
||
</div></details><section id="method.binary_modifier_preserves_tsid_join_key" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#5898-5934">Source</a><h4 class="code-header">fn <a href="#method.binary_modifier_preserves_tsid_join_key" class="fn">binary_modifier_preserves_tsid_join_key</a>(
|
||
&self,
|
||
left_context: &<a class="struct" href="struct.PromPlannerContext.html" title="struct query::promql::planner::PromPlannerContext">PromPlannerContext</a>,
|
||
right_context: &<a class="struct" href="struct.PromPlannerContext.html" title="struct query::promql::planner::PromPlannerContext">PromPlannerContext</a>,
|
||
modifier: &<a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><BinModifier>,
|
||
) -> <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a></h4></section><details class="toggle method-toggle" open><summary><section id="method.join_on_non_field_columns" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#5939-6133">Source</a><h4 class="code-header">fn <a href="#method.join_on_non_field_columns" class="fn">join_on_non_field_columns</a>(
|
||
&self,
|
||
left: LogicalPlan,
|
||
right: LogicalPlan,
|
||
left_table_ref: TableReference,
|
||
right_table_ref: TableReference,
|
||
left_time_index_column: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
|
||
right_time_index_column: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
|
||
only_join_time_index: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a>,
|
||
modifier: &<a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><BinModifier>,
|
||
left_context: &<a class="struct" href="struct.PromPlannerContext.html" title="struct query::promql::planner::PromPlannerContext">PromPlannerContext</a>,
|
||
right_context: &<a class="struct" href="struct.PromPlannerContext.html" title="struct query::promql::planner::PromPlannerContext">PromPlannerContext</a>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section></summary><div class="docblock"><p>Build a inner join on time index column and tag columns to concat two logical plans.
|
||
When <code>only_join_time_index == true</code> we only join on the time index, because these two plan may not have the same tag columns</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.assert_unique_one_side" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#6136-6162">Source</a><h4 class="code-header">fn <a href="#method.assert_unique_one_side" class="fn">assert_unique_one_side</a>(
|
||
plan: LogicalPlan,
|
||
join_keys: &<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/collections/btree/set/struct.BTreeSet.html" title="struct alloc::collections::btree::set::BTreeSet">BTreeSet</a><<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
|
||
tag_columns: &[<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>],
|
||
time_index_column: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>>,
|
||
one_side_is_left: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section></summary><div class="docblock"><p>Guard the side of a vector matching that must hold one series per match group.</p>
|
||
</div></details><section id="method.selected_binary_match_labels" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#6164-6199">Source</a><h4 class="code-header">fn <a href="#method.selected_binary_match_labels" class="fn">selected_binary_match_labels</a>(
|
||
left_context: &<a class="struct" href="struct.PromPlannerContext.html" title="struct query::promql::planner::PromPlannerContext">PromPlannerContext</a>,
|
||
right_context: &<a class="struct" href="struct.PromPlannerContext.html" title="struct query::promql::planner::PromPlannerContext">PromPlannerContext</a>,
|
||
modifier: &<a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><BinModifier>,
|
||
) -> <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/collections/btree/set/struct.BTreeSet.html" title="struct alloc::collections::btree::set::BTreeSet">BTreeSet</a><<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>></h4></section><section id="method.only_temporality_match_label_mismatches" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#6201-6217">Source</a><h4 class="code-header">fn <a href="#method.only_temporality_match_label_mismatches" class="fn">only_temporality_match_label_mismatches</a>(
|
||
left_context: &<a class="struct" href="struct.PromPlannerContext.html" title="struct query::promql::planner::PromPlannerContext">PromPlannerContext</a>,
|
||
right_context: &<a class="struct" href="struct.PromPlannerContext.html" title="struct query::promql::planner::PromPlannerContext">PromPlannerContext</a>,
|
||
modifier: &<a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><BinModifier>,
|
||
) -> <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a></h4></section><section id="method.align_temporality_match_column" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#6219-6302">Source</a><h4 class="code-header">fn <a href="#method.align_temporality_match_column" class="fn">align_temporality_match_column</a>(
|
||
left: LogicalPlan,
|
||
right: LogicalPlan,
|
||
left_context: &mut <a class="struct" href="struct.PromPlannerContext.html" title="struct query::promql::planner::PromPlannerContext">PromPlannerContext</a>,
|
||
right_context: &mut <a class="struct" href="struct.PromPlannerContext.html" title="struct query::promql::planner::PromPlannerContext">PromPlannerContext</a>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><(LogicalPlan, LogicalPlan, <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a>)></h4></section><section id="method.normalized_match_key_expr" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#6304-6327">Source</a><h4 class="code-header">fn <a href="#method.normalized_match_key_expr" class="fn">normalized_match_key_expr</a>(
|
||
label: &<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>,
|
||
field: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><(<a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><TableReference>, ArrowDataType)>,
|
||
value_type: &ArrowDataType,
|
||
internal_name: &<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>,
|
||
) -> DfExpr</h4></section><section id="method.is_zero_row_empty_relation" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#6329-6333">Source</a><h4 class="code-header">fn <a href="#method.is_zero_row_empty_relation" class="fn">is_zero_row_empty_relation</a>(plan: &LogicalPlan) -> <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a></h4></section><section id="method.string_value_data_type" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#6335-6341">Source</a><h4 class="code-header">fn <a href="#method.string_value_data_type" class="fn">string_value_data_type</a>(data_type: &ArrowDataType) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&ArrowDataType></h4></section><section id="method.string_scalar_value" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#6343-6357">Source</a><h4 class="code-header">fn <a href="#method.string_scalar_value" class="fn">string_scalar_value</a>(
|
||
data_type: &ArrowDataType,
|
||
value: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><ScalarValue></h4></section><section id="method.common_label_data_type" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#6359-6388">Source</a><h4 class="code-header">fn <a href="#method.common_label_data_type" class="fn">common_label_data_type</a>(
|
||
left: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&ArrowDataType>,
|
||
right: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&ArrowDataType>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><ArrowDataType></h4></section><details class="toggle method-toggle" open><summary><section id="method.projection_for_each_field_column" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#6397-6406">Source</a><h4 class="code-header">fn <a href="#method.projection_for_each_field_column" class="fn">projection_for_each_field_column</a><F>(
|
||
&mut self,
|
||
input: LogicalPlan,
|
||
name_to_expr: F,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan><div class="where">where
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(&<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><DfExpr>,</div></h4></section></summary><div class="docblock"><p>Build a projection that project and perform operation expr for every value columns.
|
||
Non-value columns (tag and timestamp) will be preserved in the projection.</p>
|
||
<h5 id="side-effect-1"><a class="doc-anchor" href="#side-effect-1">§</a>Side effect</h5>
|
||
<p>This function will update the value columns in the context. Those new column names
|
||
don’t contains qualifier.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.projection_for_each_field_column_with_labels" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#6410-6482">Source</a><h4 class="code-header">fn <a href="#method.projection_for_each_field_column_with_labels" class="fn">projection_for_each_field_column_with_labels</a><F>(
|
||
&mut self,
|
||
input: LogicalPlan,
|
||
result_labels: <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="struct" href="struct.BinaryResultLabels.html" title="struct query::promql::planner::BinaryResultLabels">BinaryResultLabels</a>>,
|
||
name_to_expr: F,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan><div class="where">where
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(&<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><DfExpr>,</div></h4></section></summary><div class="docblock"><p>Like <a href="struct.PromPlanner.html#method.projection_for_each_field_column" title="method query::promql::planner::PromPlanner::projection_for_each_field_column"><code>Self::projection_for_each_field_column</code></a>, but projects <code>result_labels</code> instead of
|
||
the context tag columns when a binary operation derived its own result label set.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.filter_on_field_column" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#6485-6516">Source</a><h4 class="code-header">fn <a href="#method.filter_on_field_column" class="fn">filter_on_field_column</a><F>(
|
||
&self,
|
||
input: LogicalPlan,
|
||
name_to_expr: F,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan><div class="where">where
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(&<a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><DfExpr>,</div></h4></section></summary><div class="docblock"><p>Build a filter plan on one value column or a float/histogram alternative pair.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.date_part_on_time_index" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#6520-6535">Source</a><h4 class="code-header">fn <a href="#method.date_part_on_time_index" class="fn">date_part_on_time_index</a>(&self, date_part: &<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.str.html">str</a>) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><DfExpr></h4></section></summary><div class="docblock"><p>Generate an expr like <code>date_part("hour", <TIME_INDEX>)</code>. Caller should ensure the
|
||
time index column in context is set</p>
|
||
</div></details><section id="method.strip_tsid_column" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#6537-6562">Source</a><h4 class="code-header">fn <a href="#method.strip_tsid_column" class="fn">strip_tsid_column</a>(&self, plan: LogicalPlan) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section><details class="toggle method-toggle" open><summary><section id="method.apply_alias" class="method"><a class="src rightside" href="../../../src/query/promql/planner.rs.html#6565-6587">Source</a><h4 class="code-header">fn <a href="#method.apply_alias" class="fn">apply_alias</a>(
|
||
&mut self,
|
||
plan: LogicalPlan,
|
||
alias_name: <a class="struct" href="https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
|
||
) -> <a class="type" href="../error/type.Result.html" title="type query::promql::error::Result">Result</a><LogicalPlan></h4></section></summary><div class="docblock"><p>Apply an alias to the query result by adding a projection with the alias name</p>
|
||
</div></details></div></details></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-PromPlanner" class="impl"><a href="#impl-RefUnwindSafe-for-PromPlanner" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/1.98.1/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.PromPlanner.html" title="struct query::promql::planner::PromPlanner">PromPlanner</a></h3></section><section id="impl-UnwindSafe-for-PromPlanner" class="impl"><a href="#impl-UnwindSafe-for-PromPlanner" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/1.98.1/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.PromPlanner.html" title="struct query::promql::planner::PromPlanner">PromPlanner</a></h3></section><section id="impl-Freeze-for-PromPlanner" class="impl"><a href="#impl-Freeze-for-PromPlanner" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a> for <a class="struct" href="struct.PromPlanner.html" title="struct query::promql::planner::PromPlanner">PromPlanner</a></h3></section><section id="impl-Send-for-PromPlanner" class="impl"><a href="#impl-Send-for-PromPlanner" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.PromPlanner.html" title="struct query::promql::planner::PromPlanner">PromPlanner</a></h3></section><section id="impl-Sync-for-PromPlanner" class="impl"><a href="#impl-Sync-for-PromPlanner" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.PromPlanner.html" title="struct query::promql::planner::PromPlanner">PromPlanner</a></h3></section><section id="impl-Unpin-for-PromPlanner" class="impl"><a href="#impl-Unpin-for-PromPlanner" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.PromPlanner.html" title="struct query::promql::planner::PromPlanner">PromPlanner</a></h3></section><section id="impl-UnsafeUnpin-for-PromPlanner" class="impl"><a href="#impl-UnsafeUnpin-for-PromPlanner" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.UnsafeUnpin.html" title="trait core::marker::UnsafeUnpin">UnsafeUnpin</a> for <a class="struct" href="struct.PromPlanner.html" title="struct query::promql::planner::PromPlanner">PromPlanner</a></h3></section></div><h2 id="blanket-implementations" class="section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="toggle implementors-toggle"><summary><section id="impl-Any-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.98.1/src/core/any.rs.html#141">Source</a><a href="#impl-Any-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<div class="where">where
|
||
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.98.1/src/core/any.rs.html#142">Source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.98.1/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/1.98.1/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/1.98.1/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><section id="impl-Any-for-T-1" class="impl"><a href="#impl-Any-for-T-1" class="anchor">§</a><h3 class="code-header">impl<T> Any for T<div class="where">where
|
||
T: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/any/trait.Any.html" title="trait core::any::Any">Any</a>,</div></h3></section><details class="toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.98.1/src/core/borrow.rs.html#212">Source</a><a href="#impl-Borrow%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<div class="where">where
|
||
T: ?<a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.98.1/src/core/borrow.rs.html#214">Source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.98.1/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.reference.html">&T</a></h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.98.1/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.98.1/src/core/borrow.rs.html#221">Source</a><a href="#impl-BorrowMut%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<div class="where">where
|
||
T: ?<a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.98.1/src/core/borrow.rs.html#222">Source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.98.1/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.reference.html">&mut T</a></h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.98.1/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Conv-for-T" class="impl"><a href="#impl-Conv-for-T" class="anchor">§</a><h3 class="code-header">impl<T> Conv for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.conv" class="method trait-impl"><a href="#method.conv" class="anchor">§</a><h4 class="code-header">fn <a class="fn">conv</a><T>(self) -> T<div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</div></h4></section></summary><div class='docblock'>Converts <code>self</code> into <code>T</code> using <code>Into<T></code>. <a>Read more</a></div></details></div></details><section id="impl-ErasedDestructor-for-T" class="impl"><a href="#impl-ErasedDestructor-for-T" class="anchor">§</a><h3 class="code-header">impl<T> ErasedDestructor for T<div class="where">where
|
||
T: 'static,</div></h3></section><details class="toggle implementors-toggle"><summary><section id="impl-FmtForward-for-T" class="impl"><a href="#impl-FmtForward-for-T" class="anchor">§</a><h3 class="code-header">impl<T> FmtForward for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt_binary" class="method trait-impl"><a href="#method.fmt_binary" class="anchor">§</a><h4 class="code-header">fn <a class="fn">fmt_binary</a>(self) -> FmtBinary<Self><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/fmt/trait.Binary.html" title="trait core::fmt::Binary">Binary</a>,</div></h4></section></summary><div class='docblock'>Causes <code>self</code> to use its <code>Binary</code> implementation when <code>Debug</code>-formatted.</div></details><details class="toggle method-toggle" open><summary><section id="method.fmt_display" class="method trait-impl"><a href="#method.fmt_display" class="anchor">§</a><h4 class="code-header">fn <a class="fn">fmt_display</a>(self) -> FmtDisplay<Self><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>,</div></h4></section></summary><div class='docblock'>Causes <code>self</code> to use its <code>Display</code> implementation when
|
||
<code>Debug</code>-formatted.</div></details><details class="toggle method-toggle" open><summary><section id="method.fmt_lower_exp" class="method trait-impl"><a href="#method.fmt_lower_exp" class="anchor">§</a><h4 class="code-header">fn <a class="fn">fmt_lower_exp</a>(self) -> FmtLowerExp<Self><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/fmt/trait.LowerExp.html" title="trait core::fmt::LowerExp">LowerExp</a>,</div></h4></section></summary><div class='docblock'>Causes <code>self</code> to use its <code>LowerExp</code> implementation when
|
||
<code>Debug</code>-formatted.</div></details><details class="toggle method-toggle" open><summary><section id="method.fmt_lower_hex" class="method trait-impl"><a href="#method.fmt_lower_hex" class="anchor">§</a><h4 class="code-header">fn <a class="fn">fmt_lower_hex</a>(self) -> FmtLowerHex<Self><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/fmt/trait.LowerHex.html" title="trait core::fmt::LowerHex">LowerHex</a>,</div></h4></section></summary><div class='docblock'>Causes <code>self</code> to use its <code>LowerHex</code> implementation when
|
||
<code>Debug</code>-formatted.</div></details><details class="toggle method-toggle" open><summary><section id="method.fmt_octal" class="method trait-impl"><a href="#method.fmt_octal" class="anchor">§</a><h4 class="code-header">fn <a class="fn">fmt_octal</a>(self) -> FmtOctal<Self><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/fmt/trait.Octal.html" title="trait core::fmt::Octal">Octal</a>,</div></h4></section></summary><div class='docblock'>Causes <code>self</code> to use its <code>Octal</code> implementation when <code>Debug</code>-formatted.</div></details><details class="toggle method-toggle" open><summary><section id="method.fmt_pointer" class="method trait-impl"><a href="#method.fmt_pointer" class="anchor">§</a><h4 class="code-header">fn <a class="fn">fmt_pointer</a>(self) -> FmtPointer<Self><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/fmt/trait.Pointer.html" title="trait core::fmt::Pointer">Pointer</a>,</div></h4></section></summary><div class='docblock'>Causes <code>self</code> to use its <code>Pointer</code> implementation when
|
||
<code>Debug</code>-formatted.</div></details><details class="toggle method-toggle" open><summary><section id="method.fmt_upper_exp" class="method trait-impl"><a href="#method.fmt_upper_exp" class="anchor">§</a><h4 class="code-header">fn <a class="fn">fmt_upper_exp</a>(self) -> FmtUpperExp<Self><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/fmt/trait.UpperExp.html" title="trait core::fmt::UpperExp">UpperExp</a>,</div></h4></section></summary><div class='docblock'>Causes <code>self</code> to use its <code>UpperExp</code> implementation when
|
||
<code>Debug</code>-formatted.</div></details><details class="toggle method-toggle" open><summary><section id="method.fmt_upper_hex" class="method trait-impl"><a href="#method.fmt_upper_hex" class="anchor">§</a><h4 class="code-header">fn <a class="fn">fmt_upper_hex</a>(self) -> FmtUpperHex<Self><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/fmt/trait.UpperHex.html" title="trait core::fmt::UpperHex">UpperHex</a>,</div></h4></section></summary><div class='docblock'>Causes <code>self</code> to use its <code>UpperHex</code> implementation when
|
||
<code>Debug</code>-formatted.</div></details><details class="toggle method-toggle" open><summary><section id="method.fmt_list" class="method trait-impl"><a href="#method.fmt_list" class="anchor">§</a><h4 class="code-header">fn <a class="fn">fmt_list</a>(self) -> FmtList<Self><div class="where">where
|
||
&'a Self: for<'a> <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>,</div></h4></section></summary><div class='docblock'>Formats each item in a sequence. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.98.1/src/core/convert/mod.rs.html#787">Source</a><a href="#impl-From%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.98.1/src/core/convert/mod.rs.html#790">Source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.98.1/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
|
||
</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FutureExt-for-T" class="impl"><a href="#impl-FutureExt-for-T" class="anchor">§</a><h3 class="code-header">impl<T> FutureExt for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.with_context" class="method trait-impl"><a href="#method.with_context" class="anchor">§</a><h4 class="code-header">fn <a class="fn">with_context</a>(self, otel_cx: Context) -> WithContext<Self></h4></section></summary><div class='docblock'>Attaches the provided <a href="Context"><code>Context</code></a> to this type, returning a <code>WithContext</code>
|
||
wrapper. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_context" class="method trait-impl"><a href="#method.with_current_context" class="anchor">§</a><h4 class="code-header">fn <a class="fn">with_current_context</a>(self) -> WithContext<Self></h4></section></summary><div class='docblock'>Attaches the current <a href="Context"><code>Context</code></a> to this type, returning a <code>WithContext</code>
|
||
wrapper. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-T" class="impl"><a href="#impl-Instrument-for-T" class="anchor">§</a><h3 class="code-header">impl<T> Instrument for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.instrument" class="method trait-impl"><a href="#method.instrument" class="anchor">§</a><h4 class="code-header">fn <a class="fn">instrument</a>(self, span: Span) -> Instrumented<Self></h4></section></summary><div class='docblock'>Instruments this type with the provided [<code>Span</code>], returning an
|
||
<code>Instrumented</code> wrapper. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl"><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a class="fn">in_current_span</a>(self) -> Instrumented<Self></h4></section></summary><div class='docblock'>Instruments this type with the <a href="super::Span::current()">current</a> <a href="crate::Span"><code>Span</code></a>, returning an
|
||
<code>Instrumented</code> wrapper. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.98.1/src/core/convert/mod.rs.html#769-771">Source</a><a href="#impl-Into%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<div class="where">where
|
||
U: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.98.1/src/core/convert/mod.rs.html#779">Source</a><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.98.1/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
|
||
<p>That is, this conversion is whatever the implementation of
|
||
<code><a href="https://doc.rust-lang.org/1.98.1/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for U</code> chooses to do.</p>
|
||
</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-IntoEither-for-T" class="impl"><a class="src rightside" href="https://docs.rs/either/1/src/either/into_either.rs.html#64">Source</a><a href="#impl-IntoEither-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://docs.rs/either/1/either/into_either/trait.IntoEither.html" title="trait either::into_either::IntoEither">IntoEither</a> for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.into_either" class="method trait-impl"><a class="src rightside" href="https://docs.rs/either/1/src/either/into_either.rs.html#29">Source</a><a href="#method.into_either" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/either/1/either/into_either/trait.IntoEither.html#method.into_either" class="fn">into_either</a>(self, into_left: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a>) -> <a class="enum" href="https://docs.rs/either/1/either/enum.Either.html" title="enum either::Either">Either</a><Self, Self></h4></section></summary><div class='docblock'>Converts <code>self</code> into a <a href="https://docs.rs/either/1/either/enum.Either.html#variant.Left" title="variant either::Either::Left"><code>Left</code></a> variant of <a href="https://docs.rs/either/1/either/enum.Either.html" title="enum either::Either"><code>Either<Self, Self></code></a>
|
||
if <code>into_left</code> is <code>true</code>.
|
||
Converts <code>self</code> into a <a href="https://docs.rs/either/1/either/enum.Either.html#variant.Right" title="variant either::Either::Right"><code>Right</code></a> variant of <a href="https://docs.rs/either/1/either/enum.Either.html" title="enum either::Either"><code>Either<Self, Self></code></a>
|
||
otherwise. <a href="https://docs.rs/either/1/either/into_either/trait.IntoEither.html#method.into_either">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.into_either_with" class="method trait-impl"><a class="src rightside" href="https://docs.rs/either/1/src/either/into_either.rs.html#55-57">Source</a><a href="#method.into_either_with" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/either/1/either/into_either/trait.IntoEither.html#method.into_either_with" class="fn">into_either_with</a><F>(self, into_left: F) -> <a class="enum" href="https://docs.rs/either/1/either/enum.Either.html" title="enum either::Either">Either</a><Self, Self><div class="where">where
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&Self) -> <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a>,</div></h4></section></summary><div class='docblock'>Converts <code>self</code> into a <a href="https://docs.rs/either/1/either/enum.Either.html#variant.Left" title="variant either::Either::Left"><code>Left</code></a> variant of <a href="https://docs.rs/either/1/either/enum.Either.html" title="enum either::Either"><code>Either<Self, Self></code></a>
|
||
if <code>into_left(&self)</code> returns <code>true</code>.
|
||
Converts <code>self</code> into a <a href="https://docs.rs/either/1/either/enum.Either.html#variant.Right" title="variant either::Either::Right"><code>Right</code></a> variant of <a href="https://docs.rs/either/1/either/enum.Either.html" title="enum either::Either"><code>Either<Self, Self></code></a>
|
||
otherwise. <a href="https://docs.rs/either/1/either/into_either/trait.IntoEither.html#method.into_either_with">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-IntoRequest%3CT%3E-for-T" class="impl"><a href="#impl-IntoRequest%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl<T> IntoRequest<T> for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.into_request" class="method trait-impl"><a href="#method.into_request" class="anchor">§</a><h4 class="code-header">fn <a class="fn">into_request</a>(self) -> Request<T></h4></section></summary><div class='docblock'>Wrap the input message <code>T</code> in a <code>tonic::Request</code></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-LayerExt%3CL%3E-for-L" class="impl"><a href="#impl-LayerExt%3CL%3E-for-L" class="anchor">§</a><h3 class="code-header">impl<L> LayerExt<L> for L</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.named_layer" class="method trait-impl"><a href="#method.named_layer" class="anchor">§</a><h4 class="code-header">fn <a class="fn">named_layer</a><S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S><div class="where">where
|
||
L: Layer<S>,</div></h4></section></summary><div class='docblock'>Applies the layer to a service and wraps it in [<code>Layered</code>].</div></details></div></details><section id="impl-MaybeSend-for-T" class="impl"><a href="#impl-MaybeSend-for-T" class="anchor">§</a><h3 class="code-header">impl<T> MaybeSend for T<div class="where">where
|
||
T: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section><section id="impl-MaybeSend-for-T-1" class="impl"><a href="#impl-MaybeSend-for-T-1" class="anchor">§</a><h3 class="code-header">impl<T> MaybeSend for T<div class="where">where
|
||
T: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section><details class="toggle implementors-toggle"><summary><section id="impl-Pipe-for-T" class="impl"><a href="#impl-Pipe-for-T" class="anchor">§</a><h3 class="code-header">impl<T> Pipe for T<div class="where">where
|
||
T: ?<a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.pipe" class="method trait-impl"><a href="#method.pipe" class="anchor">§</a><h4 class="code-header">fn <a class="fn">pipe</a><R>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(Self) -> R) -> R<div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Pipes by value. This is generally the method you want to use. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.pipe_ref" class="method trait-impl"><a href="#method.pipe_ref" class="anchor">§</a><h4 class="code-header">fn <a class="fn">pipe_ref</a><'a, R>(&'a self, func: impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&'a Self) -> R) -> R<div class="where">where
|
||
R: 'a,</div></h4></section></summary><div class='docblock'>Borrows <code>self</code> and passes that borrow into the pipe function. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.pipe_ref_mut" class="method trait-impl"><a href="#method.pipe_ref_mut" class="anchor">§</a><h4 class="code-header">fn <a class="fn">pipe_ref_mut</a><'a, R>(&'a mut self, func: impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&'a mut Self) -> R) -> R<div class="where">where
|
||
R: 'a,</div></h4></section></summary><div class='docblock'>Mutably borrows <code>self</code> and passes that borrow into the pipe function. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.pipe_borrow" class="method trait-impl"><a href="#method.pipe_borrow" class="anchor">§</a><h4 class="code-header">fn <a class="fn">pipe_borrow</a><'a, B, R>(&'a self, func: impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.reference.html">&'a B</a>) -> R) -> R<div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><B>,
|
||
B: 'a + ?<a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
|
||
R: 'a,</div></h4></section></summary><div class='docblock'>Borrows <code>self</code>, then passes <code>self.borrow()</code> into the pipe function. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.pipe_borrow_mut" class="method trait-impl"><a href="#method.pipe_borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a class="fn">pipe_borrow_mut</a><'a, B, R>(
|
||
&'a mut self,
|
||
func: impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.reference.html">&'a mut B</a>) -> R,
|
||
) -> R<div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><B>,
|
||
B: 'a + ?<a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
|
||
R: 'a,</div></h4></section></summary><div class='docblock'>Mutably borrows <code>self</code>, then passes <code>self.borrow_mut()</code> into the pipe
|
||
function. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.pipe_as_ref" class="method trait-impl"><a href="#method.pipe_as_ref" class="anchor">§</a><h4 class="code-header">fn <a class="fn">pipe_as_ref</a><'a, U, R>(&'a self, func: impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.reference.html">&'a U</a>) -> R) -> R<div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a><U>,
|
||
U: 'a + ?<a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
|
||
R: 'a,</div></h4></section></summary><div class='docblock'>Borrows <code>self</code>, then passes <code>self.as_ref()</code> into the pipe function.</div></details><details class="toggle method-toggle" open><summary><section id="method.pipe_as_mut" class="method trait-impl"><a href="#method.pipe_as_mut" class="anchor">§</a><h4 class="code-header">fn <a class="fn">pipe_as_mut</a><'a, U, R>(&'a mut self, func: impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.reference.html">&'a mut U</a>) -> R) -> R<div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/convert/trait.AsMut.html" title="trait core::convert::AsMut">AsMut</a><U>,
|
||
U: 'a + ?<a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
|
||
R: 'a,</div></h4></section></summary><div class='docblock'>Mutably borrows <code>self</code>, then passes <code>self.as_mut()</code> into the pipe
|
||
function.</div></details><details class="toggle method-toggle" open><summary><section id="method.pipe_deref" class="method trait-impl"><a href="#method.pipe_deref" class="anchor">§</a><h4 class="code-header">fn <a class="fn">pipe_deref</a><'a, T, R>(&'a self, func: impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.reference.html">&'a T</a>) -> R) -> R<div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a><Target = T>,
|
||
T: 'a + ?<a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
|
||
R: 'a,</div></h4></section></summary><div class='docblock'>Borrows <code>self</code>, then passes <code>self.deref()</code> into the pipe function.</div></details><details class="toggle method-toggle" open><summary><section id="method.pipe_deref_mut" class="method trait-impl"><a href="#method.pipe_deref_mut" class="anchor">§</a><h4 class="code-header">fn <a class="fn">pipe_deref_mut</a><'a, T, R>(
|
||
&'a mut self,
|
||
func: impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.reference.html">&'a mut T</a>) -> R,
|
||
) -> R<div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/deref/trait.DerefMut.html" title="trait core::ops::deref::DerefMut">DerefMut</a><Target = T> + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>,
|
||
T: 'a + ?<a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
|
||
R: 'a,</div></h4></section></summary><div class='docblock'>Mutably borrows <code>self</code>, then passes <code>self.deref_mut()</code> into the pipe
|
||
function.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-T" class="impl"><a href="#impl-Pointable-for-T" class="anchor">§</a><h3 class="code-header">impl<T> Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl"><a href="#associatedconstant.ALIGN" class="anchor">§</a><h4 class="code-header">const <a class="constant">ALIGN</a>: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.usize.html">usize</a></h4></section></summary><div class='docblock'>The alignment of pointer.</div></details><details class="toggle" open><summary><section id="associatedtype.Init" class="associatedtype trait-impl"><a href="#associatedtype.Init" class="anchor">§</a><h4 class="code-header">type <a class="associatedtype">Init</a> = T</h4></section></summary><div class='docblock'>The type for initializers.</div></details><details class="toggle method-toggle" open><summary><section id="method.init" class="method trait-impl"><a href="#method.init" class="anchor">§</a><h4 class="code-header">unsafe fn <a class="fn">init</a>(init: <T as Pointable>::Init) -> <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.usize.html">usize</a></h4></section></summary><div class='docblock'>Initializes a with the given initializer. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.deref" class="method trait-impl"><a href="#method.deref" class="anchor">§</a><h4 class="code-header">unsafe fn <a class="fn">deref</a><'a>(ptr: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.usize.html">usize</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.reference.html">&'a T</a></h4></section></summary><div class='docblock'>Dereferences the given pointer. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.deref_mut" class="method trait-impl"><a href="#method.deref_mut" class="anchor">§</a><h4 class="code-header">unsafe fn <a class="fn">deref_mut</a><'a>(ptr: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.usize.html">usize</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.reference.html">&'a mut T</a></h4></section></summary><div class='docblock'>Mutably dereferences the given pointer. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.drop" class="method trait-impl"><a href="#method.drop" class="anchor">§</a><h4 class="code-header">unsafe fn <a class="fn">drop</a>(ptr: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.usize.html">usize</a>)</h4></section></summary><div class='docblock'>Drops the object pointed to by the given pointer. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-PolicyExt-for-T" class="impl"><a href="#impl-PolicyExt-for-T" class="anchor">§</a><h3 class="code-header">impl<T> PolicyExt for T<div class="where">where
|
||
T: ?<a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.and" class="method trait-impl"><a href="#method.and" class="anchor">§</a><h4 class="code-header">fn <a class="fn">and</a><P, B, E>(self, other: P) -> And<T, P><div class="where">where
|
||
T: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + Policy<B, E>,
|
||
P: Policy<B, E>,</div></h4></section></summary><div class='docblock'>Create a new <code>Policy</code> that returns [<code>Action::Follow</code>] only if <code>self</code> and <code>other</code> return
|
||
<code>Action::Follow</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.or" class="method trait-impl"><a href="#method.or" class="anchor">§</a><h4 class="code-header">fn <a class="fn">or</a><P, B, E>(self, other: P) -> Or<T, P><div class="where">where
|
||
T: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + Policy<B, E>,
|
||
P: Policy<B, E>,</div></h4></section></summary><div class='docblock'>Create a new <code>Policy</code> that returns [<code>Action::Follow</code>] if either <code>self</code> or <code>other</code> returns
|
||
<code>Action::Follow</code>. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Same-for-T" class="impl"><a class="src rightside" href="https://docs.rs/typenum/1.20.1/src/typenum/type_operators.rs.html#34">Source</a><a href="#impl-Same-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://docs.rs/typenum/1.20.1/typenum/type_operators/trait.Same.html" title="trait typenum::type_operators::Same">Same</a> for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Output" class="associatedtype trait-impl"><a class="src rightside" href="https://docs.rs/typenum/1.20.1/src/typenum/type_operators.rs.html#35">Source</a><a href="#associatedtype.Output" class="anchor">§</a><h4 class="code-header">type <a href="https://docs.rs/typenum/1.20.1/typenum/type_operators/trait.Same.html#associatedtype.Output" class="associatedtype">Output</a> = T</h4></section></summary><div class='docblock'>Should always be <code>Self</code></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ServiceExt-for-T" class="impl"><a href="#impl-ServiceExt-for-T" class="anchor">§</a><h3 class="code-header">impl<T> ServiceExt for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.propagate_header" class="method trait-impl"><a href="#method.propagate_header" class="anchor">§</a><h4 class="code-header">fn <a class="fn">propagate_header</a>(self, header: HeaderName) -> PropagateHeader<Self><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Propagate a header from the request to the response. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.add_extension" class="method trait-impl"><a href="#method.add_extension" class="anchor">§</a><h4 class="code-header">fn <a class="fn">add_extension</a><T>(self, value: T) -> AddExtension<Self, T><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Add some shareable value to <a href="https://docs.rs/http/latest/http/struct.Extensions.html">request extensions</a>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.map_request_body" class="method trait-impl"><a href="#method.map_request_body" class="anchor">§</a><h4 class="code-header">fn <a class="fn">map_request_body</a><F>(self, f: F) -> MapRequestBody<Self, F><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Apply a transformation to the request body. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.map_response_body" class="method trait-impl"><a href="#method.map_response_body" class="anchor">§</a><h4 class="code-header">fn <a class="fn">map_response_body</a><F>(self, f: F) -> MapResponseBody<Self, F><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Apply a transformation to the response body. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.compression" class="method trait-impl"><a href="#method.compression" class="anchor">§</a><h4 class="code-header">fn <a class="fn">compression</a>(self) -> Compression<Self><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Compresses response bodies. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.decompression" class="method trait-impl"><a href="#method.decompression" class="anchor">§</a><h4 class="code-header">fn <a class="fn">decompression</a>(self) -> Decompression<Self><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Decompress response bodies. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.trace_for_http" class="method trait-impl"><a href="#method.trace_for_http" class="anchor">§</a><h4 class="code-header">fn <a class="fn">trace_for_http</a>(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>High level tracing that classifies responses using HTTP status codes. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.trace_for_grpc" class="method trait-impl"><a href="#method.trace_for_grpc" class="anchor">§</a><h4 class="code-header">fn <a class="fn">trace_for_grpc</a>(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>High level tracing that classifies responses using gRPC headers. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.follow_redirects" class="method trait-impl"><a href="#method.follow_redirects" class="anchor">§</a><h4 class="code-header">fn <a class="fn">follow_redirects</a>(self) -> FollowRedirect<Self><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Follow redirect resposes using the <a href="crate::follow_redirect::policy::Standard"><code>Standard</code></a> policy. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.sensitive_headers" class="method trait-impl"><a href="#method.sensitive_headers" class="anchor">§</a><h4 class="code-header">fn <a class="fn">sensitive_headers</a>(
|
||
self,
|
||
headers: impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item = HeaderName>,
|
||
) -> SetSensitiveRequestHeaders<SetSensitiveResponseHeaders<Self>><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Mark headers as <a href="https://docs.rs/http/latest/http/header/struct.HeaderValue.html#method.set_sensitive">sensitive</a> on both requests and responses. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.sensitive_request_headers" class="method trait-impl"><a href="#method.sensitive_request_headers" class="anchor">§</a><h4 class="code-header">fn <a class="fn">sensitive_request_headers</a>(
|
||
self,
|
||
headers: impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item = HeaderName>,
|
||
) -> SetSensitiveRequestHeaders<Self><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Mark headers as <a href="https://docs.rs/http/latest/http/header/struct.HeaderValue.html#method.set_sensitive">sensitive</a> on requests. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.sensitive_response_headers" class="method trait-impl"><a href="#method.sensitive_response_headers" class="anchor">§</a><h4 class="code-header">fn <a class="fn">sensitive_response_headers</a>(
|
||
self,
|
||
headers: impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item = HeaderName>,
|
||
) -> SetSensitiveResponseHeaders<Self><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Mark headers as <a href="https://docs.rs/http/latest/http/header/struct.HeaderValue.html#method.set_sensitive">sensitive</a> on responses. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.override_request_header" class="method trait-impl"><a href="#method.override_request_header" class="anchor">§</a><h4 class="code-header">fn <a class="fn">override_request_header</a><M>(
|
||
self,
|
||
header_name: HeaderName,
|
||
make: M,
|
||
) -> SetRequestHeader<Self, M><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Insert a header into the request. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.append_request_header" class="method trait-impl"><a href="#method.append_request_header" class="anchor">§</a><h4 class="code-header">fn <a class="fn">append_request_header</a><M>(
|
||
self,
|
||
header_name: HeaderName,
|
||
make: M,
|
||
) -> SetRequestHeader<Self, M><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Append a header into the request. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.insert_request_header_if_not_present" class="method trait-impl"><a href="#method.insert_request_header_if_not_present" class="anchor">§</a><h4 class="code-header">fn <a class="fn">insert_request_header_if_not_present</a><M>(
|
||
self,
|
||
header_name: HeaderName,
|
||
make: M,
|
||
) -> SetRequestHeader<Self, M><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Insert a header into the request, if the header is not already present. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.override_response_header" class="method trait-impl"><a href="#method.override_response_header" class="anchor">§</a><h4 class="code-header">fn <a class="fn">override_response_header</a><M>(
|
||
self,
|
||
header_name: HeaderName,
|
||
make: M,
|
||
) -> SetResponseHeader<Self, M><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Insert a header into the response. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.append_response_header" class="method trait-impl"><a href="#method.append_response_header" class="anchor">§</a><h4 class="code-header">fn <a class="fn">append_response_header</a><M>(
|
||
self,
|
||
header_name: HeaderName,
|
||
make: M,
|
||
) -> SetResponseHeader<Self, M><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Append a header into the response. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.insert_response_header_if_not_present" class="method trait-impl"><a href="#method.insert_response_header_if_not_present" class="anchor">§</a><h4 class="code-header">fn <a class="fn">insert_response_header_if_not_present</a><M>(
|
||
self,
|
||
header_name: HeaderName,
|
||
make: M,
|
||
) -> SetResponseHeader<Self, M><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Insert a header into the response, if the header is not already present. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.set_request_id" class="method trait-impl"><a href="#method.set_request_id" class="anchor">§</a><h4 class="code-header">fn <a class="fn">set_request_id</a><M>(
|
||
self,
|
||
header_name: HeaderName,
|
||
make_request_id: M,
|
||
) -> SetRequestId<Self, M><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
|
||
M: MakeRequestId,</div></h4></section></summary><div class='docblock'>Add request id header and extension. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.set_x_request_id" class="method trait-impl"><a href="#method.set_x_request_id" class="anchor">§</a><h4 class="code-header">fn <a class="fn">set_x_request_id</a><M>(self, make_request_id: M) -> SetRequestId<Self, M><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
|
||
M: MakeRequestId,</div></h4></section></summary><div class='docblock'>Add request id header and extension, using <code>x-request-id</code> as the header name. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.propagate_request_id" class="method trait-impl"><a href="#method.propagate_request_id" class="anchor">§</a><h4 class="code-header">fn <a class="fn">propagate_request_id</a>(
|
||
self,
|
||
header_name: HeaderName,
|
||
) -> PropagateRequestId<Self><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Propgate request ids from requests to responses. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.propagate_x_request_id" class="method trait-impl"><a href="#method.propagate_x_request_id" class="anchor">§</a><h4 class="code-header">fn <a class="fn">propagate_x_request_id</a>(self) -> PropagateRequestId<Self><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Propgate request ids from requests to responses, using <code>x-request-id</code> as the header name. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.catch_panic" class="method trait-impl"><a href="#method.catch_panic" class="anchor">§</a><h4 class="code-header">fn <a class="fn">catch_panic</a>(self) -> CatchPanic<Self, DefaultResponseForPanic><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Catch panics and convert them into <code>500 Internal Server</code> responses. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.request_body_limit" class="method trait-impl"><a href="#method.request_body_limit" class="anchor">§</a><h4 class="code-header">fn <a class="fn">request_body_limit</a>(self, limit: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.usize.html">usize</a>) -> RequestBodyLimit<Self><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Intercept requests with over-sized payloads and convert them into
|
||
<code>413 Payload Too Large</code> responses. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.trim_trailing_slash" class="method trait-impl"><a href="#method.trim_trailing_slash" class="anchor">§</a><h4 class="code-header">fn <a class="fn">trim_trailing_slash</a>(self) -> NormalizePath<Self><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Remove trailing slashes from paths. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.append_trailing_slash" class="method trait-impl"><a href="#method.append_trailing_slash" class="anchor">§</a><h4 class="code-header">fn <a class="fn">append_trailing_slash</a>(self) -> NormalizePath<Self><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Append trailing slash to paths. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-SupersetOf%3CSS%3E-for-SP" class="impl"><a href="#impl-SupersetOf%3CSS%3E-for-SP" class="anchor">§</a><h3 class="code-header">impl<SS, SP> SupersetOf<SS> for SP<div class="where">where
|
||
SS: SubsetOf<SP>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.to_subset" class="method trait-impl"><a href="#method.to_subset" class="anchor">§</a><h4 class="code-header">fn <a class="fn">to_subset</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><SS></h4></section></summary><div class='docblock'>The inverse inclusion map: attempts to construct <code>self</code> from the equivalent element of its
|
||
superset. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.is_in_subset" class="method trait-impl"><a href="#method.is_in_subset" class="anchor">§</a><h4 class="code-header">fn <a class="fn">is_in_subset</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Checks if <code>self</code> is actually part of its subset <code>T</code> (and can be converted to it).</div></details><details class="toggle method-toggle" open><summary><section id="method.to_subset_unchecked" class="method trait-impl"><a href="#method.to_subset_unchecked" class="anchor">§</a><h4 class="code-header">fn <a class="fn">to_subset_unchecked</a>(&self) -> SS</h4></section></summary><div class='docblock'>Use with care! Same as <code>self.to_subset</code> but without any property checks. Always succeeds.</div></details><details class="toggle method-toggle" open><summary><section id="method.from_subset" class="method trait-impl"><a href="#method.from_subset" class="anchor">§</a><h4 class="code-header">fn <a class="fn">from_subset</a>(element: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.reference.html">&SS</a>) -> SP</h4></section></summary><div class='docblock'>The inclusion map: converts <code>self</code> to the equivalent element of its superset.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Tap-for-T" class="impl"><a href="#impl-Tap-for-T" class="anchor">§</a><h3 class="code-header">impl<T> Tap for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.tap" class="method trait-impl"><a href="#method.tap" class="anchor">§</a><h4 class="code-header">fn <a class="fn">tap</a>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&Self)) -> Self</h4></section></summary><div class='docblock'>Immutable access to a value. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.tap_mut" class="method trait-impl"><a href="#method.tap_mut" class="anchor">§</a><h4 class="code-header">fn <a class="fn">tap_mut</a>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&mut Self)) -> Self</h4></section></summary><div class='docblock'>Mutable access to a value. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.tap_borrow" class="method trait-impl"><a href="#method.tap_borrow" class="anchor">§</a><h4 class="code-header">fn <a class="fn">tap_borrow</a><B>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.reference.html">&B</a>)) -> Self<div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><B>,
|
||
B: ?<a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Immutable access to the <code>Borrow<B></code> of a value. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.tap_borrow_mut" class="method trait-impl"><a href="#method.tap_borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a class="fn">tap_borrow_mut</a><B>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.reference.html">&mut B</a>)) -> Self<div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><B>,
|
||
B: ?<a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Mutable access to the <code>BorrowMut<B></code> of a value. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.tap_ref" class="method trait-impl"><a href="#method.tap_ref" class="anchor">§</a><h4 class="code-header">fn <a class="fn">tap_ref</a><R>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.reference.html">&R</a>)) -> Self<div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a><R>,
|
||
R: ?<a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Immutable access to the <code>AsRef<R></code> view of a value. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.tap_ref_mut" class="method trait-impl"><a href="#method.tap_ref_mut" class="anchor">§</a><h4 class="code-header">fn <a class="fn">tap_ref_mut</a><R>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.reference.html">&mut R</a>)) -> Self<div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/convert/trait.AsMut.html" title="trait core::convert::AsMut">AsMut</a><R>,
|
||
R: ?<a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Mutable access to the <code>AsMut<R></code> view of a value. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.tap_deref" class="method trait-impl"><a href="#method.tap_deref" class="anchor">§</a><h4 class="code-header">fn <a class="fn">tap_deref</a><T>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.reference.html">&T</a>)) -> Self<div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a><Target = T>,
|
||
T: ?<a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Immutable access to the <code>Deref::Target</code> of a value. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.tap_deref_mut" class="method trait-impl"><a href="#method.tap_deref_mut" class="anchor">§</a><h4 class="code-header">fn <a class="fn">tap_deref_mut</a><T>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.reference.html">&mut T</a>)) -> Self<div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/deref/trait.DerefMut.html" title="trait core::ops::deref::DerefMut">DerefMut</a><Target = T> + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>,
|
||
T: ?<a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Mutable access to the <code>Deref::Target</code> of a value. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.tap_dbg" class="method trait-impl"><a href="#method.tap_dbg" class="anchor">§</a><h4 class="code-header">fn <a class="fn">tap_dbg</a>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&Self)) -> Self</h4></section></summary><div class='docblock'>Calls <code>.tap()</code> only in debug builds, and is erased in release builds.</div></details><details class="toggle method-toggle" open><summary><section id="method.tap_mut_dbg" class="method trait-impl"><a href="#method.tap_mut_dbg" class="anchor">§</a><h4 class="code-header">fn <a class="fn">tap_mut_dbg</a>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&mut Self)) -> Self</h4></section></summary><div class='docblock'>Calls <code>.tap_mut()</code> only in debug builds, and is erased in release
|
||
builds.</div></details><details class="toggle method-toggle" open><summary><section id="method.tap_borrow_dbg" class="method trait-impl"><a href="#method.tap_borrow_dbg" class="anchor">§</a><h4 class="code-header">fn <a class="fn">tap_borrow_dbg</a><B>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.reference.html">&B</a>)) -> Self<div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><B>,
|
||
B: ?<a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Calls <code>.tap_borrow()</code> only in debug builds, and is erased in release
|
||
builds.</div></details><details class="toggle method-toggle" open><summary><section id="method.tap_borrow_mut_dbg" class="method trait-impl"><a href="#method.tap_borrow_mut_dbg" class="anchor">§</a><h4 class="code-header">fn <a class="fn">tap_borrow_mut_dbg</a><B>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.reference.html">&mut B</a>)) -> Self<div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><B>,
|
||
B: ?<a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Calls <code>.tap_borrow_mut()</code> only in debug builds, and is erased in release
|
||
builds.</div></details><details class="toggle method-toggle" open><summary><section id="method.tap_ref_dbg" class="method trait-impl"><a href="#method.tap_ref_dbg" class="anchor">§</a><h4 class="code-header">fn <a class="fn">tap_ref_dbg</a><R>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.reference.html">&R</a>)) -> Self<div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a><R>,
|
||
R: ?<a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Calls <code>.tap_ref()</code> only in debug builds, and is erased in release
|
||
builds.</div></details><details class="toggle method-toggle" open><summary><section id="method.tap_ref_mut_dbg" class="method trait-impl"><a href="#method.tap_ref_mut_dbg" class="anchor">§</a><h4 class="code-header">fn <a class="fn">tap_ref_mut_dbg</a><R>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.reference.html">&mut R</a>)) -> Self<div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/convert/trait.AsMut.html" title="trait core::convert::AsMut">AsMut</a><R>,
|
||
R: ?<a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Calls <code>.tap_ref_mut()</code> only in debug builds, and is erased in release
|
||
builds.</div></details><details class="toggle method-toggle" open><summary><section id="method.tap_deref_dbg" class="method trait-impl"><a href="#method.tap_deref_dbg" class="anchor">§</a><h4 class="code-header">fn <a class="fn">tap_deref_dbg</a><T>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.reference.html">&T</a>)) -> Self<div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a><Target = T>,
|
||
T: ?<a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Calls <code>.tap_deref()</code> only in debug builds, and is erased in release
|
||
builds.</div></details><details class="toggle method-toggle" open><summary><section id="method.tap_deref_mut_dbg" class="method trait-impl"><a href="#method.tap_deref_mut_dbg" class="anchor">§</a><h4 class="code-header">fn <a class="fn">tap_deref_mut_dbg</a><T>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.reference.html">&mut T</a>)) -> Self<div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/deref/trait.DerefMut.html" title="trait core::ops::deref::DerefMut">DerefMut</a><Target = T> + <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>,
|
||
T: ?<a class="trait" href="https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Calls <code>.tap_deref_mut()</code> only in debug builds, and is erased in release
|
||
builds.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryConv-for-T" class="impl"><a href="#impl-TryConv-for-T" class="anchor">§</a><h3 class="code-header">impl<T> TryConv for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.try_conv" class="method trait-impl"><a href="#method.try_conv" class="anchor">§</a><h4 class="code-header">fn <a class="fn">try_conv</a><T>(self) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, Self::<a class="associatedtype" href="https://doc.rust-lang.org/1.98.1/core/convert/trait.TryInto.html#associatedtype.Error" title="type core::convert::TryInto::Error">Error</a>><div class="where">where
|
||
Self: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><T>,</div></h4></section></summary><div class='docblock'>Attempts to convert <code>self</code> into <code>T</code> using <code>TryInto<T></code>. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.98.1/src/core/convert/mod.rs.html#829-831">Source</a><a href="#impl-TryFrom%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<div class="where">where
|
||
U: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.98.1/src/core/convert/mod.rs.html#833">Source</a><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.98.1/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.98.1/src/core/convert/mod.rs.html#836">Source</a><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.98.1/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/1.98.1/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.98.1/src/core/convert/mod.rs.html#813-815">Source</a><a href="#impl-TryInto%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<div class="where">where
|
||
U: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.98.1/src/core/convert/mod.rs.html#817">Source</a><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.98.1/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/1.98.1/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.98.1/src/core/convert/mod.rs.html#820">Source</a><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.98.1/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/1.98.1/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-T" class="impl"><a href="#impl-VZip%3CV%3E-for-T" class="anchor">§</a><h3 class="code-header">impl<V, T> VZip<V> for T<div class="where">where
|
||
V: MultiLane<T>,</div></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl"><a href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a class="fn">vzip</a>(self) -> V</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-WithSubscriber-for-T" class="impl"><a href="#impl-WithSubscriber-for-T" class="anchor">§</a><h3 class="code-header">impl<T> WithSubscriber for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.with_subscriber" class="method trait-impl"><a href="#method.with_subscriber" class="anchor">§</a><h4 class="code-header">fn <a class="fn">with_subscriber</a><S>(self, subscriber: S) -> WithDispatch<Self><div class="where">where
|
||
S: <a class="trait" href="https://doc.rust-lang.org/1.98.1/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><Dispatch>,</div></h4></section></summary><div class='docblock'>Attaches the provided <a href="super::Subscriber"><code>Subscriber</code></a> to this type, returning a
|
||
[<code>WithDispatch</code>] wrapper. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl"><a href="#method.with_current_subscriber" class="anchor">§</a><h4 class="code-header">fn <a class="fn">with_current_subscriber</a>(self) -> WithDispatch<Self></h4></section></summary><div class='docblock'>Attaches the current <a href="dispatcher#setting-the-default-subscriber">default</a> <a href="super::Subscriber"><code>Subscriber</code></a> to this type, returning a
|
||
[<code>WithDispatch</code>] wrapper. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Within%3CG2%3E-for-G1" class="impl"><a href="#impl-Within%3CG2%3E-for-G1" class="anchor">§</a><h3 class="code-header">impl<G1, G2> Within<G2> for G1<div class="where">where
|
||
G2: Contains<G1>,</div></h3></section></summary><div class="impl-items"><section id="method.is_within" class="method trait-impl"><a href="#method.is_within" class="anchor">§</a><h4 class="code-header">fn <a class="fn">is_within</a>(&self, b: <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.reference.html">&G2</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.98.1/std/primitive.bool.html">bool</a></h4></section></div></details></div></section></div></main></body></html> |