pub struct Store { /* private fields */ }Implementations§
Source§impl Store
impl Store
Sourcepub async fn open(location: &Url) -> Result<Self>
pub async fn open(location: &Url) -> Result<Self>
Open against a local filesystem URL or a remote one for which the
caller has no extra options to pass (env vars suffice). CLI verbs
that load [storage] from config should call
Store::open_with_options instead so the same options flow into
every dataset open and write.
Sourcepub async fn open_with_options(
location: &Url,
storage_options: HashMap<String, String>,
caps: RuntimeCaps,
) -> Result<Self>
pub async fn open_with_options( location: &Url, storage_options: HashMap<String, String>, caps: RuntimeCaps, ) -> Result<Self>
Open with object-store options (S3 creds, region, endpoint, …)
threaded through Lance verbatim. Keys are the standard object_store
config names; pond does not parse them. Empty options + default caps
is equivalent to Store::open. Cache caps come from the [runtime]
config block via crate::substrate::RuntimeCaps.
Sourcepub async fn open_local(path: impl AsRef<Path>) -> Result<Self>
pub async fn open_local(path: impl AsRef<Path>) -> Result<Self>
Convenience for tests and CLI verbs holding a &Path: wraps the path in
a file://... URL via config::url_for_path before opening. Routes
through Store::open_with_options so the production policy is
applied; tests get the backend-aware local-FS defaults.
Sourcepub async fn export_clean_lance_datasets(
&self,
dest: &Path,
) -> Result<LanceArchiveExport>
pub async fn export_clean_lance_datasets( &self, dest: &Path, ) -> Result<LanceArchiveExport>
Export clean, index-free Lance datasets into dest.
This rewrites the visible rows of each table instead of copying the
dataset roots. The resulting manifests therefore contain no references
to the source store’s _indices, while messages.vector and
messages.embedding_model remain ordinary data columns and are
preserved.
pub async fn import_clean_lance_datasets( &self, source: &Path, ) -> Result<LanceArchiveImport>
Sourcepub async fn upsert_sessions(&self, sessions: &[Session]) -> Result<()>
pub async fn upsert_sessions(&self, sessions: &[Session]) -> Result<()>
Flat write path. Per-row insert/match truth is not synthesized here -
honest outcomes come from the pre-existence scan on
Self::upsert_session_batch; the CLI sync and wire ingest paths use
that, so these helpers only need to surface write failure.
pub async fn upsert_messages( &self, session: &Session, messages: &[MessageWrite<'_>], ) -> Result<()>
pub async fn upsert_parts(&self, parts: &[Part]) -> Result<()>
pub async fn get_session( &self, session_id: &str, ) -> Result<Option<SessionWithMessages>>
Sourcepub async fn session_ids(&self) -> Result<Vec<String>>
pub async fn session_ids(&self) -> Result<Vec<String>>
Every session id currently in the store, unsorted.
pub async fn child_sessions( &self, parent_session_id: &str, ) -> Result<Vec<Session>>
Sourcepub async fn session_last_ingested_at(
&self,
) -> Result<HashMap<String, DateTime<Utc>>>
pub async fn session_last_ingested_at( &self, ) -> Result<HashMap<String, DateTime<Utc>>>
session_id -> wall-clock time of the Lance manifest version that last wrote the row for the per-session staleness skip
(spec.md#adapter-integrity-event-ordering). Reads Lance’s _row_last_updated_at_version system
column (available because pond enables stable row ids per spec.md#lance-table-creation-stable-row-ids)
and joins it against Dataset::versions() for commit timestamps.
Sourcepub async fn session_view(
&self,
session_id: &str,
params: SessionViewParams<'_>,
) -> Result<GetLookup<SessionPage>>
pub async fn session_view( &self, session_id: &str, params: SessionViewParams<'_>, ) -> Result<GetLookup<SessionPage>>
Whole-session view for pond_get session mode (spec.md#protocol).
Conversational filters to search_text IS NOT NULL; Complete and
Verbatim scan every message. Every mode attaches compact part summaries;
Verbatim additionally inlines full parts. after_id is an exclusive
lower bound (a message id); the page is bounded by limit and a byte
budget and never cuts mid-message.
Sourcepub async fn message_view(
&self,
message_id: &str,
params: MessageViewParams<'_>,
) -> Result<GetLookup<MessagePage>>
pub async fn message_view( &self, message_id: &str, params: MessageViewParams<'_>, ) -> Result<GetLookup<MessagePage>>
Message-scope retrieval for pond_get message mode (spec.md#protocol):
the target with its full parts (paginated by after_id over part
ordinals, then budget) plus up to 2*context_depth siblings around it.
None when no stored message carries message_id. Sibling parts are
carried for summarizing; the target’s parts ride target_parts.
Sourcepub async fn scan_conversational_messages(
&self,
session_id: &str,
) -> Result<Vec<ConversationalRow>>
pub async fn scan_conversational_messages( &self, session_id: &str, ) -> Result<Vec<ConversationalRow>>
Conversational scan over one session: rows ordered by
(timestamp, id), IsNotNull("search_text") pushed down at the
read seam (spec.md#search-prefilter-pushdown).
Sourcepub async fn session_id_for_message(
&self,
message_id: &str,
) -> Result<Option<String>>
pub async fn session_id_for_message( &self, message_id: &str, ) -> Result<Option<String>>
Locate the session id for a stored message. Cheap when only the routing
hint is needed - callers that need the messages use scan_all_messages.
pub async fn row_counts(&self) -> Result<(usize, usize, usize)>
Sourcepub async fn dataset(&self, table: Table) -> Result<Arc<Dataset>>
pub async fn dataset(&self, table: Table) -> Result<Arc<Dataset>>
A point-in-time Arc<Dataset> for table, for registering as a
DataFusion LanceTableProvider in pond_sql_query. Goes through the
handle’s freshness gate, so each query sees a current snapshot.
Sourcepub async fn export_write(&self, name: &str, bytes: &[u8]) -> Result<()>
pub async fn export_write(&self, name: &str, bytes: &[u8]) -> Result<()>
Write a pond_sql_query export artifact.
Sourcepub async fn export_read(&self, name: &str) -> Result<Vec<u8>>
pub async fn export_read(&self, name: &str) -> Result<Vec<u8>>
Read a pond_sql_query export artifact back.
Sourcepub fn export_local_path(&self, name: &str) -> Option<PathBuf>
pub fn export_local_path(&self, name: &str) -> Option<PathBuf>
Local filesystem path of an export artifact on file:// installs.
Sourcepub async fn corpus_stats(&self, include_subagents: bool) -> Result<CorpusStats>
pub async fn corpus_stats(&self, include_subagents: bool) -> Result<CorpusStats>
Compute the per-adapter / per-project rollup that drives
pond status. One scan over messages projecting the three
columns the rollup keys on (source_agent, project, session_id),
aggregated in-memory. Bounded by the cross product of adapters and
projects, which stays small on real corpora.
Sourcepub async fn write_embeddings(&self, rows: &[EmbeddedMessage]) -> Result<()>
pub async fn write_embeddings(&self, rows: &[EmbeddedMessage]) -> Result<()>
Write a batch of embeddings into messages: set vector and
embedding_model on each row by (session_id, id)
(spec.md#session-embed-from-canonical). The column update goes through the
write seam and lands as a new manifest version (append-only).
Sourcepub fn pending_embedding_messages(
&self,
) -> impl Stream<Item = Result<PendingMessage>> + '_
pub fn pending_embedding_messages( &self, ) -> impl Stream<Item = Result<PendingMessage>> + '_
Stream the backlog of messages needing embedding: rows with search_text
set whose vector is null (spec.md#session-embed-from-canonical).
Sourcepub fn pending_or_stale_messages(
&self,
) -> impl Stream<Item = Result<PendingMessage>> + '_
pub fn pending_or_stale_messages( &self, ) -> impl Stream<Item = Result<PendingMessage>> + '_
Stream messages that are either never embedded or stale under the
current model. pond embed --force feeds this to the same unconditional
merge_update as the normal backlog; the filter makes that semantically
equivalent to the conditional update in spec.md#session-embed-from-canonical.
Sourcepub async fn fts_search(
&self,
query: &str,
limit: usize,
filter: &Predicate,
) -> Result<Vec<(MessageKey, f32)>>
pub async fn fts_search( &self, query: &str, limit: usize, filter: &Predicate, ) -> Result<Vec<(MessageKey, f32)>>
BM25 full-text retriever over messages.search_text.
Sourcepub async fn searchable_in_scope(&self, filter: &Predicate) -> Result<usize>
pub async fn searchable_in_scope(&self, filter: &Predicate) -> Result<usize>
Count of searchable messages (non-null search_text) inside the
caller’s filter scope - the universe a search actually ran over.
Powers the response’s absence honesty (spec.md#search): “no relevant
hits” only means something relative to how many messages were
searchable at all, and 0 tells the caller their filters excluded
everything before retrieval even started.
Sourcepub async fn has_embeddings(&self) -> Result<bool>
pub async fn has_embeddings(&self) -> Result<bool>
Whether any messages row carries a vector (spec.md#search) - the
signal that flips search from FTS-only to hybrid. The single-active-
model invariant (see MESSAGE_SCALAR_INDICES) means any non-null
vector belongs to the current model.
Sourcepub async fn vector_search(
&self,
query: &[f32],
limit: usize,
filter: &Predicate,
search: Option<&SearchConfig>,
) -> Result<Vec<(MessageKey, f32)>>
pub async fn vector_search( &self, query: &[f32], limit: usize, filter: &Predicate, search: Option<&SearchConfig>, ) -> Result<Vec<(MessageKey, f32)>>
Vector kNN retriever over messages.vector, prefiltered by the caller’s
scalar predicate (spec.md#search-prefilter-pushdown). Combines the caller’s
filter with vector IS NOT NULL to exclude un-embedded rows from the
scan; the brute-force kNN path requires this (the IVF_PQ path would
skip them anyway). The single-active-model invariant lets pond drop
the per-row model filter: every non-null vector belongs to the current
model.
Sourcepub async fn explain_vector_plan(
&self,
query: &[f32],
limit: usize,
filter: &Predicate,
search: Option<&SearchConfig>,
) -> Result<String>
pub async fn explain_vector_plan( &self, query: &[f32], limit: usize, filter: &Predicate, search: Option<&SearchConfig>, ) -> Result<String>
The DataFusion plan string for a filtered vector scan - the
search-prefilter-pushdown regression guard reads it.
pub async fn explain_fts_plan( &self, query: &str, limit: usize, filter: &Predicate, ) -> Result<String>
Sourcepub async fn message_metas_by_keys(
&self,
keys: &[MessageKey],
) -> Result<Vec<MessageMeta>>
pub async fn message_metas_by_keys( &self, keys: &[MessageKey], ) -> Result<Vec<MessageMeta>>
Hydrate search hits: fetch message metadata for (session_id, message_id) keys.
Sourcepub async fn session_message_counts(
&self,
session_ids: &[String],
) -> Result<BTreeMap<String, usize>>
pub async fn session_message_counts( &self, session_ids: &[String], ) -> Result<BTreeMap<String, usize>>
Total message count per session, for search session summaries.
Sourcepub async fn unindexed_message_backlog(&self) -> Result<usize>
pub async fn unindexed_message_backlog(&self) -> Result<usize>
Rows appended to messages since the FTS index was last optimized.
A missing index reports the whole table; the query is manifest-only.
Sourcepub async fn unindexed_vector_backlog(&self) -> Result<usize>
pub async fn unindexed_vector_backlog(&self) -> Result<usize>
Rows added or rewritten in messages since the IVF_PQ vector index
was last optimized. Below
VECTOR_INDEX_ACTIVATION_ROWS no index exists yet, so the caller
must read embedding_progress too and
distinguish “index not built yet” from “index trails data”.
Sourcepub async fn embedding_progress(&self) -> Result<EmbeddingProgress>
pub async fn embedding_progress(&self) -> Result<EmbeddingProgress>
Embedding coverage: how many messages rows carry a vector and how
many are still eligible. Drives the pond status embeddings line and
the pond embed progress bar’s known total. embedded reads the
vector IS NOT NULL count directly - the single-active-model invariant
(see MESSAGE_SCALAR_INDICES) means there is no need to scope by the
embedding_model column.
Sourcepub async fn stale_embedding_count(&self) -> Result<usize>
pub async fn stale_embedding_count(&self) -> Result<usize>
Count rows whose embedding_model is not the currently configured
model AND whose vector is still populated - the signal pond embed
uses to detect a model swap and require --force.
Sourcepub async fn optimize_indices(
&self,
progress: Option<OptimizeProgressFn>,
maintenance: &MaintenancePolicy,
) -> Result<OptimizeOutcome>
pub async fn optimize_indices( &self, progress: Option<OptimizeProgressFn>, maintenance: &MaintenancePolicy, ) -> Result<OptimizeOutcome>
Run the per-table maintenance cycle (compact + indices) across every table, never short-circuiting. spec.md#lance-index-maintenance: indices and compaction commit independently, so a hot writer that starves compaction on one table does not abort the index work the operator asked for on other tables (or even on the same table).
Sourcepub async fn build_indices_only(
&self,
progress: Option<OptimizeProgressFn>,
) -> Result<OptimizeOutcome>
pub async fn build_indices_only( &self, progress: Option<OptimizeProgressFn>, ) -> Result<OptimizeOutcome>
Fold trailing fragments into existing indices across every table,
without running compaction. Used by pond embed’s tail so newly
written vectors land in the FTS / IVF_PQ / btree / bitmap indices
without paying the compaction retry budget while embed itself may
still be writing in a sibling process.
pub async fn rebuild_indices(&self, intent_name: Option<&str>) -> Result<()>
pub async fn index_status(&self) -> Result<Vec<IndexStatus>>
Sourcepub async fn drop_vector_index(&self) -> Result<()>
pub async fn drop_vector_index(&self) -> Result<()>
Drop the IVF_PQ index on messages.vector. Used by pond embed --force before re-bootstrapping under a different model. Silent
when the index does not exist.
Sourcepub async fn table_sizes(&self) -> Result<TableSizes>
pub async fn table_sizes(&self) -> Result<TableSizes>
On-disk byte totals per dataset, sized through Lance’s object store
(spec.md#lance-chokepoints-storage) so pond status works on any backend.
pub async fn initialized(&self) -> Result<bool>
Sourcepub async fn parts_for_messages(
&self,
session_id: &str,
message_ids: &[String],
) -> Result<BTreeMap<(String, String), Vec<Part>>>
pub async fn parts_for_messages( &self, session_id: &str, message_ids: &[String], ) -> Result<BTreeMap<(String, String), Vec<Part>>>
Every part of these messages, full fidelity (file blobs included). The canonical read primitive - restore/export, verbatim mode, and the message-mode target all need the complete set.
Sourcepub async fn summary_parts_for_messages(
&self,
session_id: &str,
message_ids: &[String],
) -> Result<BTreeMap<(String, String), Vec<Part>>>
pub async fn summary_parts_for_messages( &self, session_id: &str, message_ids: &[String], ) -> Result<BTreeMap<(String, String), Vec<Part>>>
Only the parts that yield a [PartSummary] (SUMMARY_PART_TYPES),
skipping text/reasoning (and their blobs) that would summarize to
nothing. For the summary-only reads (conversational/complete session
views, search hits) - it never feeds restore/export.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for Store
impl !RefUnwindSafe for Store
impl !UnwindSafe for Store
impl Send for Store
impl Sync for Store
impl Unpin for Store
impl UnsafeUnpin for Store
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> DropFlavorWrapper<T> for T
impl<T> DropFlavorWrapper<T> for T
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreimpl<T> MaybeSend for Twhere
T: Send,
impl<T> MaybeSend for Twhere
T: Send,
Source§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);Source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<E> ResultError for E
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.