pub struct DatasetReadGuard<'a> { /* private fields */ }Methods from Deref<Target = Dataset>§
Sourcepub async fn tracked_files(
&self,
) -> Pin<Box<dyn RecordBatchStream<Item = Result<RecordBatch, DataFusionError>> + Send>>
pub async fn tracked_files( &self, ) -> Pin<Box<dyn RecordBatchStream<Item = Result<RecordBatch, DataFusionError>> + Send>>
Returns one row per (version, file) for every file referenced in any manifest.
Each row contains the manifest version, the storage root URI, the file path relative to that URI, and the file type.
§Schema
| Column | Type | Notes |
|---|---|---|
version | Int64 (non-null) | Manifest version number |
base_uri | Dictionary(Int32, Utf8) (non-null) | Storage root for this file |
path | Utf8 (non-null) | Relative to base_uri |
type | Dictionary(Int8, Utf8) (non-null) | One of: data file, manifest, deletion file, transaction file, index file |
Output order is non-deterministic.
Sourcepub async fn tracked_files_with_options(
&self,
options: TrackedFilesOptions,
) -> Pin<Box<dyn RecordBatchStream<Item = Result<RecordBatch, DataFusionError>> + Send>>
pub async fn tracked_files_with_options( &self, options: TrackedFilesOptions, ) -> Pin<Box<dyn RecordBatchStream<Item = Result<RecordBatch, DataFusionError>> + Send>>
Like Self::tracked_files, but with additional options for filtering
and progress reporting.
Sourcepub async fn all_files(
&self,
) -> Pin<Box<dyn RecordBatchStream<Item = Result<RecordBatch, DataFusionError>> + Send>>
pub async fn all_files( &self, ) -> Pin<Box<dyn RecordBatchStream<Item = Result<RecordBatch, DataFusionError>> + Send>>
Returns one row per file that physically exists at the dataset’s base URI.
This scans the primary object store root only. Additional base_paths
entries in the manifest (for externally-located data files) are not
scanned by this method.
§Schema
| Column | Type | Notes |
|---|---|---|
base_uri | Dictionary(Int32, Utf8) (non-null) | Storage root |
path | Utf8 (non-null) | Relative to base_uri |
size_bytes | Int64 (non-null) | File size in bytes |
last_modified | Timestamp(Microsecond, "UTC") (non-null) | Last modification time |
Sourcepub async fn checkout_version(
&self,
version: impl Into<Ref>,
) -> Result<Dataset, Error>
pub async fn checkout_version( &self, version: impl Into<Ref>, ) -> Result<Dataset, Error>
Check out a dataset version with a ref
Sourcepub fn statistics(&self) -> DatasetStatistics<'_>
pub fn statistics(&self) -> DatasetStatistics<'_>
A handle for cheap, index-derived statistics about this dataset (e.g. a column’s global value range) that never scan data.
pub fn branches(&self) -> Branches<'_>
Sourcepub async fn checkout_branch(&self, branch: &str) -> Result<Dataset, Error>
pub async fn checkout_branch(&self, branch: &str) -> Result<Dataset, Error>
Check out the latest version of the branch
pub async fn list_branches( &self, ) -> Result<HashMap<String, BranchContents>, Error>
pub fn branch_location(&self) -> BranchLocation
pub async fn branch_identifier(&self) -> Result<BranchIdentifier, Error>
pub fn manifest_location(&self) -> &ManifestLocation
Sourcepub fn delta(&self) -> DatasetDeltaBuilder
pub fn delta(&self) -> DatasetDeltaBuilder
Create a delta::DatasetDeltaBuilder to explore changes between dataset versions.
§Example
let delta = dataset.delta()
.compared_against_version(5)
.build()?;
let inserted = delta.get_inserted_rows().await?;pub async fn latest_manifest( &self, ) -> Result<(Arc<Manifest>, ManifestLocation), Error>
Sourcepub async fn read_transaction(&self) -> Result<Option<Transaction>, Error>
pub async fn read_transaction(&self) -> Result<Option<Transaction>, Error>
Read the transaction file for this version of the dataset.
If there was no transaction file written for this version of the dataset then this will return None.
Sourcepub async fn read_version_transaction(
&self,
version: u64,
) -> Result<VersionTransaction, Error>
pub async fn read_version_transaction( &self, version: u64, ) -> Result<VersionTransaction, Error>
Read the transaction (if any) and commit timestamp of a version of the
dataset. version is a version number on this dataset’s current branch.
Reads the version’s manifest transiently: no historical Dataset is
constructed, no IndexSection is decoded, and no session cache is read
or written, so scanning many historical versions does not fill the
shared caches.
Returns an error if the version does not exist (for example, if it has been cleaned up).
§Example
let record = dataset.read_version_transaction(5).await?;
let committed_at = record.timestamp;
let operation = record.transaction.as_ref().map(|t| t.operation.name());Sourcepub async fn read_transaction_by_version(
&self,
version: u64,
) -> Result<Option<Transaction>, Error>
pub async fn read_transaction_by_version( &self, version: u64, ) -> Result<Option<Transaction>, Error>
Read the transaction file for this version of the dataset.
If there was no transaction file written for this version of the dataset then this will return None.
Does not populate the session caches; see
Self::read_version_transaction.
§Example
let transaction = dataset.read_transaction_by_version(5).await?;
let operation = transaction.as_ref().map(|t| t.operation.name());Sourcepub async fn get_transactions(
&self,
recent_transactions: usize,
) -> Result<Vec<Option<Transaction>>, Error>
pub async fn get_transactions( &self, recent_transactions: usize, ) -> Result<Vec<Option<Transaction>>, Error>
List transactions for the dataset, up to a maximum number.
This method iterates through dataset versions, starting from the current version,
and collects the transaction for each version. It stops when either recent_transactions
is reached or there are no more versions.
§Arguments
recent_transactions- Maximum number of transactions to return
§Returns
A vector of optional transactions. Each element corresponds to a version, and may be None if no transaction file exists for that version.
Sourcepub fn cleanup_old_versions(
&self,
older_than: TimeDelta,
delete_unverified: Option<bool>,
error_if_tagged_old_versions: Option<bool>,
) -> Pin<Box<dyn Future<Output = Result<RemovalStats, Error>> + Send + '_>>
pub fn cleanup_old_versions( &self, older_than: TimeDelta, delete_unverified: Option<bool>, error_if_tagged_old_versions: Option<bool>, ) -> Pin<Box<dyn Future<Output = Result<RemovalStats, Error>> + Send + '_>>
Removes old versions of the dataset from disk
This function will remove all versions of the dataset that are older than the provided timestamp. This function will not remove the current version of the dataset.
Once a version is removed it can no longer be checked out or restored. Any data unique to that version will be lost.
§Arguments
older_than- Versions older than this will be deleted.delete_unverified- If false (the default) then files will only be deleted if they are listed in at least one manifest. Otherwise these files will be kept since they cannot be distinguished from an in-progress transaction. Set to true to delete these files if you are sure there are no other in-progress dataset operations.
§Returns
RemovalStats- Statistics about the removal operation
Sourcepub fn cleanup_with_policy(
&self,
policy: CleanupPolicy,
) -> Pin<Box<dyn Future<Output = Result<RemovalStats, Error>> + Send + '_>>
pub fn cleanup_with_policy( &self, policy: CleanupPolicy, ) -> Pin<Box<dyn Future<Output = Result<RemovalStats, Error>> + Send + '_>>
Removes old versions of the dataset from storage
This function will remove all versions of the dataset that satisfies the given policy. This function will not remove the current version of the dataset.
Once a version is removed it can no longer be checked out or restored. Any data unique to that version will be lost.
§Arguments
policy-CleanupPolicydetermines the behaviour of cleanup.
§Returns
RemovalStats- Statistics about the removal operation
Sourcepub fn cleanup(&self, policy: CleanupPolicy) -> CleanupOperation<'_>
pub fn cleanup(&self, policy: CleanupPolicy) -> CleanupOperation<'_>
Creates a cleanup operation for this dataset.
The returned operation can be explained without deleting files, or executed to re-evaluate the current dataset state and remove files.
Sourcepub async fn count_rows(&self, filter: Option<String>) -> Result<usize, Error>
pub async fn count_rows(&self, filter: Option<String>) -> Result<usize, Error>
Count the number of rows in the dataset.
It offers a fast path of counting rows by just computing via metadata.
Sourcepub async fn take(
&self,
row_indices: &[u64],
projection: impl Into<ProjectionRequest>,
) -> Result<RecordBatch, Error>
pub async fn take( &self, row_indices: &[u64], projection: impl Into<ProjectionRequest>, ) -> Result<RecordBatch, Error>
Take rows by indices.
Sourcepub async fn take_rows(
&self,
row_ids: &[u64],
projection: impl Into<ProjectionRequest>,
) -> Result<RecordBatch, Error>
pub async fn take_rows( &self, row_ids: &[u64], projection: impl Into<ProjectionRequest>, ) -> Result<RecordBatch, Error>
Take Rows by the internal ROW ids.
In Lance format, each row has a unique u64 id, which is used to identify the row globally.
let schema = dataset.schema().clone();
let row_ids = vec![0, 4, 7];
let rows = dataset.take_rows(&row_ids, schema).await.unwrap();
// We can have more fine-grained control over the projection, i.e., SQL projection.
let projection = ProjectionRequest::from_sql([("identity", "id * 2")]);
let rows = dataset.take_rows(&row_ids, projection).await.unwrap();pub fn take_builder( self: &Arc<Dataset>, row_ids: &[u64], projection: impl Into<ProjectionRequest>, ) -> Result<TakeBuilder, Error>
Sourcepub async fn take_blobs(
self: &Arc<Dataset>,
row_ids: &[u64],
column: impl AsRef<str>,
) -> Result<Vec<Option<BlobFile>>, Error>
pub async fn take_blobs( self: &Arc<Dataset>, row_ids: &[u64], column: impl AsRef<str>, ) -> Result<Vec<Option<BlobFile>>, Error>
Take BlobFile by row IDs.
The returned vector has one element per row ID. Null blob values are
represented as None; valid empty blobs return a BlobFile with size
zero.
let blobs = dataset.take_blobs(&[42], "images").await?;
match &blobs[0] {
None => { /* The selected blob is null. */ }
Some(blob) if blob.size() == 0 => { /* The selected blob is valid but empty. */ }
Some(blob) => { let _size = blob.size(); }
}Sourcepub async fn take_blobs_by_addresses(
self: &Arc<Dataset>,
row_addrs: &[u64],
column: impl AsRef<str>,
) -> Result<Vec<Option<BlobFile>>, Error>
pub async fn take_blobs_by_addresses( self: &Arc<Dataset>, row_addrs: &[u64], column: impl AsRef<str>, ) -> Result<Vec<Option<BlobFile>>, Error>
Take BlobFile by row addresses.
Row addresses are u64 values encoding (fragment_id << 32) | row_offset.
Use this method when you already have row addresses, for example from
a scan with with_row_address(). For row IDs (stable identifiers), use
Self::take_blobs. For row indices (offsets), use
Self::take_blobs_by_indices. The result has the same null and empty
blob representation as Self::take_blobs.
let blobs = dataset
.take_blobs_by_addresses(&[row_address], "images")
.await?;
match &blobs[0] {
None => { /* The selected blob is null. */ }
Some(blob) if blob.size() == 0 => { /* The selected blob is valid but empty. */ }
Some(blob) => { let _size = blob.size(); }
}Sourcepub async fn take_blobs_by_indices(
self: &Arc<Dataset>,
row_indices: &[u64],
column: impl AsRef<str>,
) -> Result<Vec<Option<BlobFile>>, Error>
pub async fn take_blobs_by_indices( self: &Arc<Dataset>, row_indices: &[u64], column: impl AsRef<str>, ) -> Result<Vec<Option<BlobFile>>, Error>
Take BlobFile by row indices (offsets in the dataset).
The result has the same null and empty blob representation as
Self::take_blobs.
let blobs = dataset.take_blobs_by_indices(&[0], "images").await?;
match &blobs[0] {
None => { /* The selected blob is null. */ }
Some(blob) if blob.size() == 0 => { /* The selected blob is valid but empty. */ }
Some(blob) => { let _size = blob.size(); }
}Sourcepub fn read_blobs(
self: &Arc<Dataset>,
column: impl AsRef<str>,
) -> Result<ReadBlobsBuilder, Error>
pub fn read_blobs( self: &Arc<Dataset>, column: impl AsRef<str>, ) -> Result<ReadBlobsBuilder, Error>
Create a planned blob reader for a blob column.
This API complements Self::take_blobs. take_blobs returns
BlobFile handles for caller-driven random access, while
read_blobs builds a streaming read plan for sequential or batched blob
retrieval. Every selected row produces one result: null blob values have
ReadBlob::data set to None, while valid empty blobs contain an empty
buffer.
let blobs = dataset
.read_blobs("images")?
.with_row_indices(vec![0, 1, 2])
.execute()
.await?;Sourcepub fn read_blob_ranges(
self: &Arc<Dataset>,
column: impl AsRef<str>,
) -> Result<ReadBlobRangesBuilder, Error>
pub fn read_blob_ranges( self: &Arc<Dataset>, column: impl AsRef<str>, ) -> Result<ReadBlobRangesBuilder, Error>
Create a planned reader for row-specific blob-local byte ranges.
Each BlobRangeRequest contains both its row selector and byte range,
so requests can be repeated or reordered without coordinating parallel
selector and range lists. Every request produces one result. A null blob
has ReadBlobRange::data set to None; an empty range on a non-null blob
contains an empty buffer.
let ranges = dataset
.read_blob_ranges("images")?
.with_row_indices([
BlobRangeRequest::new(7, 0, 1024),
BlobRangeRequest::new(7, 4096, 1024),
])
.execute()
.await?;Sourcepub fn take_scan(
&self,
row_ranges: Pin<Box<dyn Stream<Item = Result<Range<u64>, Error>> + Send>>,
projection: Arc<Schema>,
batch_readahead: usize,
) -> DatasetRecordBatchStream
pub fn take_scan( &self, row_ranges: Pin<Box<dyn Stream<Item = Result<Range<u64>, Error>> + Send>>, projection: Arc<Schema>, batch_readahead: usize, ) -> DatasetRecordBatchStream
Get a stream of batches based on iterator of ranges of row numbers.
This is an experimental API. It may change at any time.
Sourcepub async fn sample(
&self,
n: usize,
projection: &Schema,
fragment_ids: Option<&[u32]>,
) -> Result<RecordBatch, Error>
pub async fn sample( &self, n: usize, projection: &Schema, fragment_ids: Option<&[u32]>, ) -> Result<RecordBatch, Error>
Randomly sample n rows from the dataset.
If fragment_ids is provided, sampling is limited to rows from those
fragments in the current dataset version.
The returned rows are in row-id order (not random order), which allows the underlying take operation to use an efficient sorted code path.
Sourcepub async fn add_bases(
self: &Arc<Dataset>,
new_bases: Vec<BasePath>,
transaction_properties: Option<HashMap<String, String>>,
) -> Result<Dataset, Error>
pub async fn add_bases( self: &Arc<Dataset>, new_bases: Vec<BasePath>, transaction_properties: Option<HashMap<String, String>>, ) -> Result<Dataset, Error>
Add new base paths to the dataset.
This method allows you to register additional storage locations (buckets) that can be used for future data writes. The base paths are added to the dataset’s manifest and can be referenced by name in subsequent write operations.
§Arguments
new_bases- A vector oflance_table::format::BasePathobjects representing the new storage locations to add. Each base path should have a unique name and path.
§Returns
Returns a new Dataset instance with the updated manifest containing the
new base paths.
pub async fn count_deleted_rows(&self) -> Result<usize, Error>
Sourcepub fn with_object_store(
&self,
object_store: Arc<ObjectStore>,
store_params: Option<ObjectStoreParams>,
) -> Dataset
pub fn with_object_store( &self, object_store: Arc<ObjectStore>, store_params: Option<ObjectStoreParams>, ) -> Dataset
Clone this dataset with a different object store binding.
The returned dataset shares metadata, session state, and caches with the original dataset, but all subsequent operations on the returned dataset use the supplied object store.
Sourcepub fn with_object_store_wrappers(
&self,
wrappers: impl IntoIterator<Item = Arc<dyn WrappingObjectStore>>,
) -> Dataset
pub fn with_object_store_wrappers( &self, wrappers: impl IntoIterator<Item = Arc<dyn WrappingObjectStore>>, ) -> Dataset
Clone this dataset with extra object store wrappers applied to all read stores.
The returned dataset uses the wrappers for the already-open primary object store and appends the same wrappers to the dataset-level and base-specific object store params used when additional base stores are opened later.
Sourcepub fn storage_options(&self) -> Option<&HashMap<String, String>>
👎Deprecated since 0.25.0: Use initial_storage_options() instead
pub fn storage_options(&self) -> Option<&HashMap<String, String>>
Use initial_storage_options() instead
Returns the initial storage options used when opening this dataset, if any.
This returns the static initial options without triggering any refresh.
For the latest refreshed options, use Self::latest_storage_options.
Sourcepub fn initial_storage_options(&self) -> Option<&HashMap<String, String>>
pub fn initial_storage_options(&self) -> Option<&HashMap<String, String>>
Returns the initial storage options without triggering any refresh.
For the latest refreshed options, use Self::latest_storage_options.
Sourcepub fn storage_options_provider(
&self,
) -> Option<Arc<dyn StorageOptionsProvider>>
pub fn storage_options_provider( &self, ) -> Option<Arc<dyn StorageOptionsProvider>>
Returns the storage options provider used when opening this dataset, if any.
Sourcepub fn storage_options_accessor(&self) -> Option<Arc<StorageOptionsAccessor>>
pub fn storage_options_accessor(&self) -> Option<Arc<StorageOptionsAccessor>>
Returns the unified storage options accessor for this dataset, if any.
The accessor handles both static and dynamic storage options with automatic
caching and refresh. Use StorageOptionsAccessor::get_storage_options to
get the latest options.
Sourcepub async fn latest_storage_options(
&self,
) -> Result<Option<StorageOptions>, Error>
pub async fn latest_storage_options( &self, ) -> Result<Option<StorageOptions>, Error>
Returns the latest (possibly refreshed) storage options.
If a dynamic storage options provider is configured, this will return the cached options if still valid, or fetch fresh options if expired.
For the initial static options without refresh, use Self::storage_options.
§Returns
Ok(Some(options))- Storage options are available (static or refreshed)Ok(None)- No storage options were configured for this datasetErr(...)- Error occurred while fetching/refreshing options from provider
pub fn data_dir(&self) -> Path
pub fn indices_dir(&self) -> Path
pub fn transactions_dir(&self) -> Path
pub fn deletions_dir(&self) -> Path
pub fn versions_dir(&self) -> Path
Sourcepub async fn create_data_file(
&self,
path: &str,
base_id: Option<u32>,
) -> Result<DataFile, Error>
pub async fn create_data_file( &self, path: &str, base_id: Option<u32>, ) -> Result<DataFile, Error>
Create a DataFile by reading metadata from an existing lance file.
This reads the file’s schema and version information, matches columns to
the dataset’s schema to determine field IDs, and calculates column indices.
This is useful for constructing DataFile metadata needed for operations
like Operation::DataReplacement.
§Arguments
path- The path to the data file, relative to the dataset’s data directory.base_id- The base path ID if the file is outside the dataset directory.
Sourcepub async fn object_store(
&self,
base_id: Option<u32>,
) -> Result<Arc<ObjectStore>, Error>
pub async fn object_store( &self, base_id: Option<u32>, ) -> Result<Arc<ObjectStore>, Error>
Resolve the object store for the primary dataset or an additional base.
Pass None to get the primary dataset object store. Pass Some(base_id)
when resolving a file whose metadata references an additional base.
Sourcepub fn store_params(&self) -> Option<&ObjectStoreParams>
pub fn store_params(&self) -> Option<&ObjectStoreParams>
The ObjectStoreParams this dataset was opened with, or None when
opened without explicit params. Lets a caller re-open a derived path
(e.g. a MemWAL SSTable) with the same store this dataset used.
pub fn session(&self) -> Arc<Session> ⓘ
Sourcepub fn version_id(&self) -> u64
pub fn version_id(&self) -> u64
Get the currently checked-out version id.
This is a cheap accessor that reads the id directly from the loaded manifest without constructing the full Version summary.
Sourcepub fn version(&self) -> Version
pub fn version(&self) -> Version
Get the currently checked-out version details.
This constructs a full Version, including summary metadata derived from the loaded manifest fragments.
Sourcepub async fn index_cache_entry_count(&self) -> usize
pub async fn index_cache_entry_count(&self) -> usize
Get the number of entries currently in the index cache.
Sourcepub async fn index_cache_hit_rate(&self) -> f32
pub async fn index_cache_hit_rate(&self) -> f32
Get cache hit ratio.
pub fn cache_size_bytes(&self) -> u64
Sourcepub async fn list_detached_manifests(
&self,
) -> Result<Vec<ManifestLocation>, Error>
pub async fn list_detached_manifests( &self, ) -> Result<Vec<ManifestLocation>, Error>
List all detached manifest locations.
Detached manifests are versions that are not part of the main version history.
They are created by commit_detached and can be used for staging changes.
To read transaction properties from a detached manifest:
let detached = dataset.list_detached_manifests().await?;
for location in detached {
let ds = dataset.checkout_version(location.version).await?;
let tx = ds.read_transaction().await?;
// Access tx.transaction_properties
}Sourcepub async fn latest_version_id(&self) -> Result<u64, Error>
pub async fn latest_version_id(&self) -> Result<u64, Error>
Get the latest version of the dataset This is meant to be a fast path for checking if a dataset has changed. This is why we don’t return the full version struct.
Sourcepub async fn is_stale(&self) -> Result<bool, Error>
pub async fn is_stale(&self) -> Result<bool, Error>
Return whether the dataset has a newer committed version.
pub fn count_fragments(&self) -> usize
Sourcepub fn empty_projection(self: &Arc<Dataset>) -> Projection
pub fn empty_projection(self: &Arc<Dataset>) -> Projection
Similar to Self::schema, but only returns fields that are not marked as blob columns Creates a new empty projection into the dataset schema
Sourcepub fn full_projection(self: &Arc<Dataset>) -> Projection
pub fn full_projection(self: &Arc<Dataset>) -> Projection
Creates a projection that includes all columns in the dataset
Sourcepub fn get_fragments(&self) -> Vec<FileFragment>
pub fn get_fragments(&self) -> Vec<FileFragment>
Get fragments.
Sourcepub fn iter_fragments(&self) -> impl Iterator<Item = &Fragment>
pub fn iter_fragments(&self) -> impl Iterator<Item = &Fragment>
Iterate over manifest fragments without allocating FileFragment wrappers.
pub fn get_fragment(&self, fragment_id: usize) -> Option<FileFragment>
pub fn fragments(&self) -> &Arc<Vec<Fragment>> ⓘ
Sourcepub fn get_frags_from_ordered_ids(
&self,
ordered_ids: &[u32],
) -> Vec<Option<FileFragment>>
pub fn get_frags_from_ordered_ids( &self, ordered_ids: &[u32], ) -> Vec<Option<FileFragment>>
Resolves fragments for the given ids without scanning the manifest.
The ids do not need to be sorted or deduplicated. Each id is resolved independently via the fragment bitmap.
Sourcepub async fn num_small_files(&self, max_rows_per_group: usize) -> usize
pub async fn num_small_files(&self, max_rows_per_group: usize) -> usize
Gets the number of files that are so small they don’t even have a full group. These are considered too small because reading many of them is much less efficient than reading a single file because the separate files split up what would otherwise be single IO requests into multiple.
pub async fn validate(&self) -> Result<(), Error>
Sourcepub fn sql(&self, sql: &str) -> SqlQueryBuilder
pub fn sql(&self, sql: &str) -> SqlQueryBuilder
Run a SQL query against the dataset. The underlying SQL engine is DataFusion. Please refer to the DataFusion documentation for supported SQL syntax.
Trait Implementations§
Auto Trait Implementations§
impl<'a> !RefUnwindSafe for DatasetReadGuard<'a>
impl<'a> !UnwindSafe for DatasetReadGuard<'a>
impl<'a> Freeze for DatasetReadGuard<'a>
impl<'a> Send for DatasetReadGuard<'a>
impl<'a> Sync for DatasetReadGuard<'a>
impl<'a> Unpin for DatasetReadGuard<'a>
impl<'a> UnsafeUnpin for DatasetReadGuard<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> 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> 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<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
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.