pub struct Repository<M: Model> { /* private fields */ }
Expand description
Associate a mongodb::Collection
and a specific Model
.
This type can safely be copied and passed around because std::sync::Arc
is used internally.
Underlying mongodb::Collection
can be retrieved at anytime with Repository::get_underlying
.
Implementations§
Source§impl<M: Model> Repository<M>
impl<M: Model> Repository<M>
Sourcepub fn new_with_options(db: Database, options: CollectionOptions) -> Self
pub fn new_with_options(db: Database, options: CollectionOptions) -> Self
Create a new repository with associated collection options (override Model::coll_options
).
Sourcepub fn collection_name(&self) -> &'static str
pub fn collection_name(&self) -> &'static str
Returns associated M::collection_name
.
Sourcepub fn get_underlying(&self) -> Collection<M>
pub fn get_underlying(&self) -> Collection<M>
Returns underlying mongodb::Collection
.
Sourcepub fn cast_model<OtherModel>(self) -> Repository<OtherModel>
pub fn cast_model<OtherModel>(self) -> Repository<OtherModel>
Convert this repository to use another Model
. Only compiles if both Model::CollConf
are identicals.
§Example
use mongodm::{ToRepository, Model, CollectionConfig};
use mongodm::mongo::bson::doc;
use mongodm::f;
use serde::{Serialize, Deserialize};
struct UserCollConf;
impl CollectionConfig for UserCollConf {
fn collection_name() -> &'static str {
"cast_model"
}
}
// Latest schema currently in use
#[derive(Serialize, Deserialize)]
struct User {
username: String,
last_seen: i64,
}
impl Model for User {
type CollConf = UserCollConf;
}
// Old schema
#[derive(Serialize, Deserialize)]
struct UserV1 {
name: String,
ls: i64,
}
// Versionned version of our `User`
#[derive(Serialize, Deserialize)]
#[serde(untagged)]
enum UserVersionned {
Last(User),
V1(UserV1),
}
impl Model for UserVersionned {
type CollConf = UserCollConf; // same as the non-versionned version
}
// We have some repository for `User`
let repo = db.repository::<User>();
// Assume the following document is stored: { "name": "Bernard", "ls": 1500 }
// Following query should fails because the schema doesn't match
let err = repo.find_one(doc!{ f!(name in UserV1): "Bernard" }, None).await.err().unwrap();
assert_eq!(err.to_string(), "missing field `username`"); // serde deserialization error
// We can get a repository for `UserVersionned` from our `Repository<User>`
// because `User::CollConf` == `UserVersionned::CollConf`
let repo_versionned = repo.cast_model::<UserVersionned>();
// Our versionned model should match with the document
let ret = repo_versionned.find_one(doc!{ f!(name in UserV1): "Bernard" }, None).await?;
match ret {
Some(UserVersionned::V1(UserV1 { name, ls: 1500 })) if name == "Bernard" => { /* success */ }
_ => panic!("Expected document was missing"),
}
Following code will fail to compile because CollectionConfig
doesn’t match.
use mongodm::{ToRepository, Model, CollectionConfig};
use serde::{Serialize, Deserialize};
struct ACollConf;
impl CollectionConfig for ACollConf {
fn collection_name() -> &'static str { "a" }
}
#[derive(Serialize, Deserialize)]
struct A;
impl Model for A {
type CollConf = ACollConf;
}
struct BCollConf;
impl CollectionConfig for BCollConf {
fn collection_name() -> &'static str { "B" }
}
#[derive(Serialize, Deserialize)]
struct B;
impl Model for B {
type CollConf = BCollConf;
}
// Doesn't compile because `A` and `B` doesn't share the same `CollectionConfig`.
db.repository::<A>().cast_model::<B>();
Sourcepub async fn bulk_update<V, U>(&self, updates: V) -> Result<BulkUpdateResult>
pub async fn bulk_update<V, U>(&self, updates: V) -> Result<BulkUpdateResult>
Apply multiple update operations in bulk.
This will be removed once support for bulk update is added to the official driver. see for tracking progress on this feature in the official driver.
§Example
use mongodm::prelude::*;
/* ... */
let db: mongodb::Database; /* exists */
let repository = db.repository::<User>();
/* ... */
let bulk_update_res = repository
.bulk_update(&vec![
&BulkUpdate {
query: doc! { f!(name in User): "Dane" },
update: doc! { Set: { f!(age in User): 12 } },
options: None,
},
&BulkUpdate {
query: doc! { f!(name in User): "David" },
update: doc! { Set: { f!(age in User): 30 } },
options: None,
},
])
.await
.unwrap();
assert_eq!(bulk_update_res.nb_affected, 2);
assert_eq!(bulk_update_res.nb_modified, 2);
Methods from Deref<Target = Collection<M>>§
Sourcepub fn aggregate(
&self,
pipeline: impl IntoIterator<Item = Document>,
) -> Aggregate<'_>
pub fn aggregate( &self, pipeline: impl IntoIterator<Item = Document>, ) -> Aggregate<'_>
Runs an aggregation operation.
See the documentation here for more information on aggregations.
await
will return Result<Cursor<Document>>
. If a ClientSession
was provided, the
returned cursor will be a SessionCursor
. If with_type
was
called, the returned cursor will be generic over the T
specified.
These methods can be chained before .await
to set options:
Sourcepub fn estimated_document_count(&self) -> EstimatedDocumentCount<'_>
pub fn estimated_document_count(&self) -> EstimatedDocumentCount<'_>
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.
await
will return Result<u64>
.
These methods can be chained before .await
to set options:
Sourcepub fn count_documents(&self, filter: Document) -> CountDocuments<'_>
pub fn count_documents(&self, filter: Document) -> CountDocuments<'_>
Sourcepub fn create_index(&self, index: IndexModel) -> CreateIndex<'_>
pub fn create_index(&self, index: IndexModel) -> CreateIndex<'_>
Creates the given index on this collection.
await
will return Result<CreateIndexResult>
.
These methods can be chained before .await
to set options:
Sourcepub fn create_indexes(
&self,
indexes: impl IntoIterator<Item = IndexModel>,
) -> CreateIndex<'_, Multiple>
pub fn create_indexes( &self, indexes: impl IntoIterator<Item = IndexModel>, ) -> CreateIndex<'_, Multiple>
Creates the given indexes on this collection.
await
will return Result<CreateIndexesResult>
.
These methods can be chained before .await
to set options:
Sourcepub fn delete_one(&self, query: Document) -> Delete<'_>
pub fn delete_one(&self, query: Document) -> Delete<'_>
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.
await
will return Result<DeleteResult>
.
These methods can be chained before .await
to set options:
Sourcepub fn delete_many(&self, query: Document) -> Delete<'_>
pub fn delete_many(&self, query: Document) -> Delete<'_>
Deletes all documents stored in the collection matching query
.
await
will return Result<DeleteResult>
.
These methods can be chained before .await
to set options:
Sourcepub fn distinct(
&self,
field_name: impl AsRef<str>,
filter: Document,
) -> Distinct<'_>
pub fn distinct( &self, field_name: impl AsRef<str>, filter: Document, ) -> Distinct<'_>
Sourcepub fn drop(&self) -> DropCollection<'_>
pub fn drop(&self) -> DropCollection<'_>
Drops the collection, deleting all data and indexes stored in it.
await
will return Result<()>
.
These methods can be chained before .await
to set options:
Sourcepub fn drop_index(&self, name: impl AsRef<str>) -> DropIndex<'_>
pub fn drop_index(&self, name: impl AsRef<str>) -> DropIndex<'_>
Drops the index specified by name
from this collection.
await
will return Result<()>
.
These methods can be chained before .await
to set options:
Sourcepub fn drop_indexes(&self) -> DropIndex<'_>
pub fn drop_indexes(&self) -> DropIndex<'_>
Drops all indexes associated with this collection.
await
will return Result<()>
.
These methods can be chained before .await
to set options:
Sourcepub fn find(&self, filter: Document) -> Find<'_, T>
pub fn find(&self, filter: Document) -> Find<'_, T>
Sourcepub fn find_one(&self, filter: Document) -> FindOne<'_, T>
pub fn find_one(&self, filter: Document) -> FindOne<'_, T>
Sourcepub fn find_one_and_delete(&self, filter: Document) -> FindOneAndDelete<'_, T>
pub fn find_one_and_delete(&self, filter: Document) -> FindOneAndDelete<'_, 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.
await
will return Result<Option<T>>
.
These methods can be chained before .await
to set options:
Sourcepub fn find_one_and_update(
&self,
filter: Document,
update: impl Into<UpdateModifications>,
) -> FindOneAndUpdate<'_, T>
pub fn find_one_and_update( &self, filter: Document, update: impl Into<UpdateModifications>, ) -> FindOneAndUpdate<'_, 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.
await
will return Result<Option<T>>
.
These methods can be chained before .await
to set options:
Sourcepub fn find_one_and_replace(
&self,
filter: Document,
replacement: impl Borrow<T>,
) -> FindOneAndReplace<'_, T>
pub fn find_one_and_replace( &self, filter: Document, replacement: impl Borrow<T>, ) -> FindOneAndReplace<'_, 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.
await
will return Result<Option<T>>
.
These methods can be chained before .await
to set options:
Sourcepub fn insert_many(
&self,
docs: impl IntoIterator<Item = impl Borrow<T>>,
) -> InsertMany<'_>
pub fn insert_many( &self, docs: impl IntoIterator<Item = impl Borrow<T>>, ) -> InsertMany<'_>
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.
await
will return Result<InsertManyResult>
.
These methods can be chained before .await
to set options:
Sourcepub fn insert_one(&self, doc: impl Borrow<T>) -> InsertOne<'_>
pub fn insert_one(&self, doc: impl Borrow<T>) -> InsertOne<'_>
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.
await
will return Result<InsertOneResult>
.
These methods can be chained before .await
to set options:
Sourcepub fn list_indexes(&self) -> ListIndexes<'_>
pub fn list_indexes(&self) -> ListIndexes<'_>
Lists all indexes on this collection.
await
will return Result<Cursor<IndexModel>>
(or
Result<SessionCursor<IndexModel>>
if a ClientSession
is provided).
These methods can be chained before .await
to set options:
Sourcepub fn list_index_names(&self) -> ListIndexes<'_, ListNames>
pub fn list_index_names(&self) -> ListIndexes<'_, ListNames>
Sourcepub fn replace_one(
&self,
query: Document,
replacement: impl Borrow<T>,
) -> ReplaceOne<'_>
pub fn replace_one( &self, query: Document, replacement: impl Borrow<T>, ) -> ReplaceOne<'_>
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.
await
will return Result<UpdateResult>
.
These methods can be chained before .await
to set options:
Sourcepub fn create_search_indexes(
&self,
models: impl IntoIterator<Item = SearchIndexModel>,
) -> CreateSearchIndex<'_, Multiple>
pub fn create_search_indexes( &self, models: impl IntoIterator<Item = SearchIndexModel>, ) -> CreateSearchIndex<'_, Multiple>
Sourcepub fn create_search_index(
&self,
model: SearchIndexModel,
) -> CreateSearchIndex<'_, Single>
pub fn create_search_index( &self, model: SearchIndexModel, ) -> CreateSearchIndex<'_, Single>
Sourcepub fn update_search_index(
&self,
name: impl Into<String>,
definition: Document,
) -> UpdateSearchIndex<'_>
pub fn update_search_index( &self, name: impl Into<String>, definition: Document, ) -> UpdateSearchIndex<'_>
Updates the search index with the given name to use the provided definition.
await
will return [Result<()>
].
These methods can be chained before .await
to set options:
Sourcepub fn drop_search_index(&self, name: impl Into<String>) -> DropSearchIndex<'_>
pub fn drop_search_index(&self, name: impl Into<String>) -> DropSearchIndex<'_>
Drops the search index with the given name.
await
will return [Result<()>
].
These methods can be chained before .await
to set options:
Sourcepub fn list_search_indexes(&self) -> ListSearchIndexes<'_>
pub fn list_search_indexes(&self) -> ListSearchIndexes<'_>
Sourcepub fn update_many(
&self,
query: Document,
update: impl Into<UpdateModifications>,
) -> Update<'_>
pub fn update_many( &self, query: Document, update: impl Into<UpdateModifications>, ) -> Update<'_>
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.
await
will return Result<UpdateResult>
.
These methods can be chained before .await
to set options:
Sourcepub fn update_one(
&self,
query: Document,
update: impl Into<UpdateModifications>,
) -> Update<'_>
pub fn update_one( &self, query: Document, update: impl Into<UpdateModifications>, ) -> Update<'_>
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.
await
will return Result<UpdateResult>
.
These methods can be chained before .await
to set options:
Sourcepub fn watch(&self) -> Watch<'_, T>
pub fn watch(&self) -> Watch<'_, 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.
await
will return Result<ChangeStream<ChangeStreamEvent<T>>>
or
Result<SessionChangeStream<ChangeStreamEvent<T>>>
if a
ClientSession
has been provided.
These methods can be chained before .await
to set options:
Sourcepub fn insert_one_model(
&self,
document: impl Borrow<T>,
) -> Result<InsertOneModel, Error>
pub fn insert_one_model( &self, document: impl Borrow<T>, ) -> Result<InsertOneModel, Error>
Constructs an InsertOneModel
with this collection’s namespace by serializing the
provided value into a Document
. Returns an error if serialization fails.
Note that the returned value must be provided to bulk_write
for the insert to be performed.
Sourcepub fn replace_one_model(
&self,
filter: Document,
replacement: impl Borrow<T>,
) -> Result<ReplaceOneModel, Error>
pub fn replace_one_model( &self, filter: Document, replacement: impl Borrow<T>, ) -> Result<ReplaceOneModel, Error>
Constructs a ReplaceOneModel
with this collection’s namespace by serializing the
provided value into a Document
. Returns an error if serialization fails.
Note that the returned value must be provided to bulk_write
for the replace to be performed.
Sourcepub fn clone_with_type<U>(&self) -> Collection<U>
pub fn clone_with_type<U>(&self) -> Collection<U>
Gets a clone of the Collection
with a different type U
.
Sourcepub fn namespace(&self) -> Namespace
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”.
Sourcepub fn selection_criteria(&self) -> Option<&SelectionCriteria>
pub fn selection_criteria(&self) -> Option<&SelectionCriteria>
Gets the selection criteria of the Collection
.
Sourcepub fn read_concern(&self) -> Option<&ReadConcern>
pub fn read_concern(&self) -> Option<&ReadConcern>
Gets the read concern of the Collection
.
Sourcepub fn write_concern(&self) -> Option<&WriteConcern>
pub fn write_concern(&self) -> Option<&WriteConcern>
Gets the write concern of the Collection
.
Trait Implementations§
Source§impl<M: Model> Clone for Repository<M>
impl<M: Model> Clone for Repository<M>
Source§impl<M: Model> Deref for Repository<M>
impl<M: Model> Deref for Repository<M>
Source§type Target = Collection<M>
type Target = Collection<M>
Source§fn deref(&self) -> &Collection<M>
fn deref(&self) -> &Collection<M>
Auto Trait Implementations§
impl<M> Freeze for Repository<M>
impl<M> !RefUnwindSafe for Repository<M>
impl<M> Send for Repository<M>
impl<M> Sync for Repository<M>
impl<M> Unpin for Repository<M>
impl<M> !UnwindSafe for Repository<M>
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> 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> 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> 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.