Struct mongodb::Collection

source ·
pub struct Collection<T> { /* private fields */ }
Expand description

Collection is the client-side abstraction of a MongoDB Collection. It can be used to perform collection-level operations such as CRUD operations. A Collection can be obtained through a Database by calling either Database::collection or Database::collection_with_options.

A Collection can be parameterized with any type that implements the Serialize and Deserialize traits from the serde crate. This includes but is not limited to just Document. The various methods that accept or return instances of the documents in the collection will accept/return instances of the generic parameter (e.g. Collection::insert_one accepts it as an argument, Collection::find_one returns an Option of it). It is recommended to define types that model your data which you can parameterize your Collections with instead of Document, since doing so eliminates a lot of boilerplate deserialization code and is often more performant.

Collection uses std::sync::Arc internally, so it can safely be shared across threads or async tasks.

§Example

use serde::{Deserialize, Serialize};

/// Define a type that models our data.
#[derive(Clone, Debug, Deserialize, Serialize)]
struct Item {
    id: u32,
}

// Parameterize our collection with the model.
let coll = client.database("items").collection::<Item>("in_stock");

for i in 0..5 {
    let coll_ref = coll.clone();

    // Spawn several tasks that operate on the same collection concurrently.
    task::spawn(async move {
        // Perform operations with `coll_ref` that work with directly our model.
        coll_ref.insert_one(Item { id: i }, None).await;
    });
}

Implementations§

source§

impl<T> Collection<T>

source

pub fn clone_with_type<U>(&self) -> Collection<U>

Gets a clone of the Collection with a different type U.

source

pub fn client(&self) -> &Client

Get the Client that this collection descended from.

source

pub fn name(&self) -> &str

Gets the name of the Collection.

source

pub fn namespace(&self) -> Namespace

Gets the namespace of the Collection.

The namespace of a MongoDB collection is the concatenation of the name of the database containing it, the ‘.’ character, and the name of the collection itself. For example, if a collection named “bar” is created in a database named “foo”, the namespace of the collection is “foo.bar”.

source

pub fn selection_criteria(&self) -> Option<&SelectionCriteria>

Gets the selection criteria of the Collection.

source

pub fn read_concern(&self) -> Option<&ReadConcern>

Gets the read concern of the Collection.

source

pub fn write_concern(&self) -> Option<&WriteConcern>

Gets the write concern of the Collection.

source

pub async fn drop( &self, options: impl Into<Option<DropCollectionOptions>> ) -> Result<()>

Drops the collection, deleting all data and indexes stored in it.

source

pub async fn drop_with_session( &self, options: impl Into<Option<DropCollectionOptions>>, session: &mut ClientSession ) -> Result<()>

Drops the collection, deleting all data and indexes stored in it using the provided ClientSession.

source

pub async fn aggregate( &self, pipeline: impl IntoIterator<Item = Document>, options: impl Into<Option<AggregateOptions>> ) -> Result<Cursor<Document>>

Runs an aggregation operation.

See the documentation here for more information on aggregations.

source

pub async fn aggregate_with_session( &self, pipeline: impl IntoIterator<Item = Document>, options: impl Into<Option<AggregateOptions>>, session: &mut ClientSession ) -> Result<SessionCursor<Document>>

Runs an aggregation operation using the provided ClientSession.

See the documentation here for more information on aggregations.

source

pub async fn estimated_document_count( &self, options: impl Into<Option<EstimatedDocumentCountOptions>> ) -> Result<u64>

Estimates the number of documents in the collection using collection metadata.

Due to an oversight in versions 5.0.0 - 5.0.7 of MongoDB, the count server command, which estimatedDocumentCount uses in its implementation, was not included in v1 of the Stable API. Users of the Stable API with estimatedDocumentCount are recommended to upgrade their cluster to 5.0.8+ or set ServerApi::strict to false to avoid encountering errors.

For more information on the behavior of the count server command, see Count: Behavior.

source

pub async fn count_documents( &self, filter: impl Into<Option<Document>>, options: impl Into<Option<CountOptions>> ) -> Result<u64>

Gets the number of documents matching filter.

Note that this method returns an accurate count.

source

pub async fn count_documents_with_session( &self, filter: impl Into<Option<Document>>, options: impl Into<Option<CountOptions>>, session: &mut ClientSession ) -> Result<u64>

Gets the number of documents matching filter using the provided ClientSession.

Note that this method returns an accurate count.

source

pub async fn create_index( &self, index: IndexModel, options: impl Into<Option<CreateIndexOptions>> ) -> Result<CreateIndexResult>

Creates the given index on this collection.

source

pub async fn create_index_with_session( &self, index: IndexModel, options: impl Into<Option<CreateIndexOptions>>, session: &mut ClientSession ) -> Result<CreateIndexResult>

Creates the given index on this collection using the provided ClientSession.

source

pub async fn create_indexes( &self, indexes: impl IntoIterator<Item = IndexModel>, options: impl Into<Option<CreateIndexOptions>> ) -> Result<CreateIndexesResult>

Creates the given indexes on this collection.

source

pub async fn create_indexes_with_session( &self, indexes: impl IntoIterator<Item = IndexModel>, options: impl Into<Option<CreateIndexOptions>>, session: &mut ClientSession ) -> Result<CreateIndexesResult>

Creates the given indexes on this collection using the provided ClientSession.

source

pub async fn delete_many( &self, query: Document, options: impl Into<Option<DeleteOptions>> ) -> Result<DeleteResult>

Deletes all documents stored in the collection matching query.

source

pub async fn delete_many_with_session( &self, query: Document, options: impl Into<Option<DeleteOptions>>, session: &mut ClientSession ) -> Result<DeleteResult>

Deletes all documents stored in the collection matching query using the provided ClientSession.

source

pub async fn delete_one( &self, query: Document, options: impl Into<Option<DeleteOptions>> ) -> Result<DeleteResult>

Deletes up to one document found matching query.

This operation will retry once upon failure if the connection and encountered error support retryability. See the documentation here for more information on retryable writes.

source

pub async fn delete_one_with_session( &self, query: Document, options: impl Into<Option<DeleteOptions>>, session: &mut ClientSession ) -> Result<DeleteResult>

Deletes up to one document found matching query using the provided ClientSession.

This operation will retry once upon failure if the connection and encountered error support retryability. See the documentation here for more information on retryable writes.

source

pub async fn distinct( &self, field_name: impl AsRef<str>, filter: impl Into<Option<Document>>, options: impl Into<Option<DistinctOptions>> ) -> Result<Vec<Bson>>

Finds the distinct values of the field specified by field_name across the collection.

source

pub async fn distinct_with_session( &self, field_name: impl AsRef<str>, filter: impl Into<Option<Document>>, options: impl Into<Option<DistinctOptions>>, session: &mut ClientSession ) -> Result<Vec<Bson>>

Finds the distinct values of the field specified by field_name across the collection using the provided ClientSession.

source

pub async fn drop_index( &self, name: impl AsRef<str>, options: impl Into<Option<DropIndexOptions>> ) -> Result<()>

Drops the index specified by name from this collection.

source

pub async fn drop_index_with_session( &self, name: impl AsRef<str>, options: impl Into<Option<DropIndexOptions>>, session: &mut ClientSession ) -> Result<()>

Drops the index specified by name from this collection using the provided ClientSession.

source

pub async fn drop_indexes( &self, options: impl Into<Option<DropIndexOptions>> ) -> Result<()>

Drops all indexes associated with this collection.

source

pub async fn drop_indexes_with_session( &self, options: impl Into<Option<DropIndexOptions>>, session: &mut ClientSession ) -> Result<()>

Drops all indexes associated with this collection using the provided ClientSession.

source

pub async fn list_indexes( &self, options: impl Into<Option<ListIndexesOptions>> ) -> Result<Cursor<IndexModel>>

Lists all indexes on this collection.

source

pub async fn list_indexes_with_session( &self, options: impl Into<Option<ListIndexesOptions>>, session: &mut ClientSession ) -> Result<SessionCursor<IndexModel>>

Lists all indexes on this collection using the provided ClientSession.

source

pub async fn list_index_names(&self) -> Result<Vec<String>>

Gets the names of all indexes on the collection.

source

pub async fn list_index_names_with_session( &self, session: &mut ClientSession ) -> Result<Vec<String>>

Gets the names of all indexes on the collection using the provided ClientSession.

source

pub async fn update_many( &self, query: Document, update: impl Into<UpdateModifications>, options: impl Into<Option<UpdateOptions>> ) -> Result<UpdateResult>

Updates all documents matching query in the collection.

Both Document and Vec<Document> implement Into<UpdateModifications>, so either can be passed in place of constructing the enum case. Note: pipeline updates are only supported in MongoDB 4.2+. See the official MongoDB documentation for more information on specifying updates.

source

pub async fn update_many_with_session( &self, query: Document, update: impl Into<UpdateModifications>, options: impl Into<Option<UpdateOptions>>, session: &mut ClientSession ) -> Result<UpdateResult>

Updates all documents matching query in the collection using the provided ClientSession.

Both Document and Vec<Document> implement Into<UpdateModifications>, so either can be passed in place of constructing the enum case. Note: pipeline updates are only supported in MongoDB 4.2+. See the official MongoDB documentation for more information on specifying updates.

source

pub async fn update_one( &self, query: Document, update: impl Into<UpdateModifications>, options: impl Into<Option<UpdateOptions>> ) -> Result<UpdateResult>

Updates up to one document matching query in the collection.

Both Document and Vec<Document> implement Into<UpdateModifications>, so either can be passed in place of constructing the enum case. Note: pipeline updates are only supported in MongoDB 4.2+. See the official MongoDB documentation for more information on specifying updates.

This operation will retry once upon failure if the connection and encountered error support retryability. See the documentation here for more information on retryable writes.

source

pub async fn update_one_with_session( &self, query: Document, update: impl Into<UpdateModifications>, options: impl Into<Option<UpdateOptions>>, session: &mut ClientSession ) -> Result<UpdateResult>

Updates up to one document matching query in the collection using the provided ClientSession.

Both Document and Vec<Document> implement Into<UpdateModifications>, so either can be passed in place of constructing the enum case. Note: pipeline updates are only supported in MongoDB 4.2+. See the official MongoDB documentation for more information on specifying updates.

This operation will retry once upon failure if the connection and encountered error support retryability. See the documentation here for more information on retryable writes.

source

pub async fn watch( &self, pipeline: impl IntoIterator<Item = Document>, options: impl Into<Option<ChangeStreamOptions>> ) -> Result<ChangeStream<ChangeStreamEvent<T>>>

Starts a new ChangeStream that receives events for all changes in this collection. A ChangeStream cannot be started on system collections.

See the documentation here on change streams.

Change streams require either a “majority” read concern or no read concern. Anything else will cause a server error.

Also note that using a $project stage to remove any of the _id, operationType or ns fields will cause an error. The driver requires these fields to support resumability. For more information on resumability, see the documentation for ChangeStream

If the pipeline alters the structure of the returned events, the parsed type will need to be changed via ChangeStream::with_type.

source

pub async fn watch_with_session( &self, pipeline: impl IntoIterator<Item = Document>, options: impl Into<Option<ChangeStreamOptions>>, session: &mut ClientSession ) -> Result<SessionChangeStream<ChangeStreamEvent<T>>>

Starts a new SessionChangeStream that receives events for all changes in this collection using the provided ClientSession. See Client::watch for more information.

source

pub async fn find( &self, filter: impl Into<Option<Document>>, options: impl Into<Option<FindOptions>> ) -> Result<Cursor<T>>

Finds the documents in the collection matching filter.

source

pub async fn find_with_session( &self, filter: impl Into<Option<Document>>, options: impl Into<Option<FindOptions>>, session: &mut ClientSession ) -> Result<SessionCursor<T>>

Finds the documents in the collection matching filter using the provided ClientSession.

source§

impl<T> Collection<T>

source

pub async fn find_one( &self, filter: impl Into<Option<Document>>, options: impl Into<Option<FindOneOptions>> ) -> Result<Option<T>>

Finds a single document in the collection matching filter.

source

pub async fn find_one_with_session( &self, filter: impl Into<Option<Document>>, options: impl Into<Option<FindOneOptions>>, session: &mut ClientSession ) -> Result<Option<T>>

Finds a single document in the collection matching filter using the provided ClientSession.

source§

impl<T> Collection<T>

source

pub async fn find_one_and_delete( &self, filter: Document, options: impl Into<Option<FindOneAndDeleteOptions>> ) -> Result<Option<T>>

Atomically finds up to one document in the collection matching filter and deletes it.

This operation will retry once upon failure if the connection and encountered error support retryability. See the documentation here for more information on retryable writes.

source

pub async fn find_one_and_delete_with_session( &self, filter: Document, options: impl Into<Option<FindOneAndDeleteOptions>>, session: &mut ClientSession ) -> Result<Option<T>>

Atomically finds up to one document in the collection matching filter and deletes it using the provided ClientSession.

This operation will retry once upon failure if the connection and encountered error support retryability. See the documentation here for more information on retryable writes.

source

pub async fn find_one_and_update( &self, filter: Document, update: impl Into<UpdateModifications>, options: impl Into<Option<FindOneAndUpdateOptions>> ) -> Result<Option<T>>

Atomically finds up to one document in the collection matching filter and updates it. Both Document and Vec<Document> implement Into<UpdateModifications>, so either can be passed in place of constructing the enum case. Note: pipeline updates are only supported in MongoDB 4.2+.

This operation will retry once upon failure if the connection and encountered error support retryability. See the documentation here for more information on retryable writes.

source

pub async fn find_one_and_update_with_session( &self, filter: Document, update: impl Into<UpdateModifications>, options: impl Into<Option<FindOneAndUpdateOptions>>, session: &mut ClientSession ) -> Result<Option<T>>

Atomically finds up to one document in the collection matching filter and updates it using the provided ClientSession. Both Document and Vec<Document> implement Into<UpdateModifications>, so either can be passed in place of constructing the enum case. Note: pipeline updates are only supported in MongoDB 4.2+.

This operation will retry once upon failure if the connection and encountered error support retryability. See the documentation here for more information on retryable writes.

source§

impl<T> Collection<T>

source

pub async fn find_one_and_replace( &self, filter: Document, replacement: impl Borrow<T>, options: impl Into<Option<FindOneAndReplaceOptions>> ) -> Result<Option<T>>

Atomically finds up to one document in the collection matching filter and replaces it with replacement.

This operation will retry once upon failure if the connection and encountered error support retryability. See the documentation here for more information on retryable writes.

source

pub async fn find_one_and_replace_with_session( &self, filter: Document, replacement: impl Borrow<T>, options: impl Into<Option<FindOneAndReplaceOptions>>, session: &mut ClientSession ) -> Result<Option<T>>

Atomically finds up to one document in the collection matching filter and replaces it with replacement using the provided ClientSession.

This operation will retry once upon failure if the connection and encountered error support retryability. See the documentation here for more information on retryable writes.

source§

impl<T> Collection<T>
where T: Serialize,

source

pub async fn insert_many( &self, docs: impl IntoIterator<Item = impl Borrow<T>>, options: impl Into<Option<InsertManyOptions>> ) -> Result<InsertManyResult>

Inserts the data in docs into the collection.

Note that this method accepts both owned and borrowed values, so the input documents do not need to be cloned in order to be passed in.

This operation will retry once upon failure if the connection and encountered error support retryability. See the documentation here for more information on retryable writes.

source

pub async fn insert_many_with_session( &self, docs: impl IntoIterator<Item = impl Borrow<T>>, options: impl Into<Option<InsertManyOptions>>, session: &mut ClientSession ) -> Result<InsertManyResult>

Inserts the data in docs into the collection using the provided ClientSession.

Note that this method accepts both owned and borrowed values, so the input documents do not need to be cloned in order to be passed in.

This operation will retry once upon failure if the connection and encountered error support retryability. See the documentation here for more information on retryable writes.

source

pub async fn insert_one( &self, doc: impl Borrow<T>, options: impl Into<Option<InsertOneOptions>> ) -> Result<InsertOneResult>

Inserts doc into the collection.

Note that either an owned or borrowed value can be inserted here, so the input document does not need to be cloned to be passed in.

This operation will retry once upon failure if the connection and encountered error support retryability. See the documentation here for more information on retryable writes.

source

pub async fn insert_one_with_session( &self, doc: impl Borrow<T>, options: impl Into<Option<InsertOneOptions>>, session: &mut ClientSession ) -> Result<InsertOneResult>

Inserts doc into the collection using the provided ClientSession.

Note that either an owned or borrowed value can be inserted here, so the input document does not need to be cloned to be passed in.

This operation will retry once upon failure if the connection and encountered error support retryability. See the documentation here for more information on retryable writes.

source

pub async fn replace_one( &self, query: Document, replacement: impl Borrow<T>, options: impl Into<Option<ReplaceOptions>> ) -> Result<UpdateResult>

Replaces up to one document matching query in the collection with replacement.

This operation will retry once upon failure if the connection and encountered error support retryability. See the documentation here for more information on retryable writes.

source

pub async fn replace_one_with_session( &self, query: Document, replacement: impl Borrow<T>, options: impl Into<Option<ReplaceOptions>>, session: &mut ClientSession ) -> Result<UpdateResult>

Replaces up to one document matching query in the collection with replacement using the provided ClientSession.

This operation will retry once upon failure if the connection and encountered error support retryability. See the documentation here for more information on retryable writes.

source§

impl<T> Collection<T>

source

pub async fn create_search_index( &self, model: SearchIndexModel, options: impl Into<Option<CreateSearchIndexOptions>> ) -> Result<String>

Convenience method for creating a single search index.

source

pub async fn create_search_indexes( &self, models: impl IntoIterator<Item = SearchIndexModel>, _options: impl Into<Option<CreateSearchIndexOptions>> ) -> Result<Vec<String>>

Creates multiple search indexes on the collection.

source

pub async fn update_search_index( &self, name: impl AsRef<str>, definition: Document, _options: impl Into<Option<UpdateSearchIndexOptions>> ) -> Result<()>

Updates the search index with the given name to use the provided definition.

source

pub async fn drop_search_index( &self, name: impl AsRef<str>, _options: impl Into<Option<DropSearchIndexOptions>> ) -> Result<()>

Drops the search index with the given name.

source

pub async fn list_search_indexes( &self, name: impl Into<Option<&str>>, aggregation_options: impl Into<Option<AggregateOptions>>, _list_index_options: impl Into<Option<ListSearchIndexOptions>> ) -> Result<Cursor<Document>>

Gets index information for one or more search indexes in the collection.

If name is not specified, information for all indexes on the specified collection will be returned.

Trait Implementations§

source§

impl<T> Clone for Collection<T>

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<T: Debug> Debug for Collection<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<T> Freeze for Collection<T>

§

impl<T> !RefUnwindSafe for Collection<T>

§

impl<T> Send for Collection<T>
where T: Send,

§

impl<T> Sync for Collection<T>
where T: Sync,

§

impl<T> Unpin for Collection<T>
where T: Unpin,

§

impl<T> !UnwindSafe for Collection<T>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> Conv for T

source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
source§

impl<T> FmtForward for T

source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Pipe for T
where T: ?Sized,

source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows 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
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows 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
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
source§

impl<T> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> Tap for T

source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .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
where Self: BorrowMut<B>, B: ?Sized,

Calls .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
where Self: AsRef<R>, R: ?Sized,

Calls .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
where Self: AsMut<R>, R: ?Sized,

Calls .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
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> TryConv for T

source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more