pub enum DatabaseType {
Postgres(Postgres),
SQLite(Sqlite),
}Expand description
Database connection handle
Variants§
Postgres(Postgres)
Postgres database
SQLite(Sqlite)
sqlite only.SQLite database
Implementations§
Source§impl DatabaseType
impl DatabaseType
Sourcepub async fn from_string(arg: &str, server_ca: Option<PathBuf>) -> Result<Self>
pub async fn from_string(arg: &str, server_ca: Option<PathBuf>) -> Result<Self>
Get a database connection from a configuration string
§Errors
- If there’s a connectivity issue to Postgres, an error will result
- If the
SQLitefile cannot be created or opened, an error will result - If
SQLiteis the type but Malware DB wasn’t compiled with the sqlite feature, an error will result - If the format or database type isn’t known, an error will result
Sourcepub async fn enable_vt_upload(&self) -> Result<()>
Available on crate feature vt only.
pub async fn enable_vt_upload(&self) -> Result<()>
vt only.Set the flag allowing uploads to Virus Total.
§Errors
If there’s a connectivity issue to Postgres, an error will result
Sourcepub async fn disable_vt_upload(&self) -> Result<()>
Available on crate feature vt only.
pub async fn disable_vt_upload(&self) -> Result<()>
vt only.Set the flag preventing uploads to Virus Total.
§Errors
If there’s a connectivity issue to Postgres, an error will result
Sourcepub async fn files_without_vt_records(&self, limit: u32) -> Result<Vec<String>>
Available on crate feature vt only.
pub async fn files_without_vt_records(&self, limit: u32) -> Result<Vec<String>>
vt only.Get the SHA-256 hashes of the files which don’t have VT records
§Errors
If there’s a connectivity issue to Postgres, an error will result
Sourcepub async fn store_vt_record(
&self,
results: &ScanResultAttributes,
) -> Result<()>
Available on crate feature vt only.
pub async fn store_vt_record( &self, results: &ScanResultAttributes, ) -> Result<()>
vt only.Store the VT results: AV hits and detailed report, or lack of any AV hits
§Errors
If there’s a connectivity issue to Postgres, an error will result
Sourcepub async fn get_vt_stats(&self) -> Result<VtStats>
Available on crate feature vt only.
pub async fn get_vt_stats(&self) -> Result<VtStats>
vt only.Quick statistics regarding the data contained for VT information for our samples
§Errors
If there’s a connectivity issue to Postgres, an error will result
Sourcepub async fn add_yara_search(
&self,
uid: u32,
yara_string: &str,
yara_bytes: &[u8],
) -> Result<Uuid>
Available on crate feature yara only.
pub async fn add_yara_search( &self, uid: u32, yara_string: &str, yara_bytes: &[u8], ) -> Result<Uuid>
yara only.Add the Yara search to the database
§Errors
If there’s a connectivity issue to Postgres, an error will result
Sourcepub async fn get_unfinished_yara_tasks(&self) -> Result<Vec<YaraTask>>
Available on crate feature yara only.
pub async fn get_unfinished_yara_tasks(&self) -> Result<Vec<YaraTask>>
yara only.Get unfinished Yara tasks for processing.
§Errors
If there’s a connectivity issue to Postgres, an error will result
Sourcepub async fn add_yara_match(
&self,
id: Uuid,
rule_name: &str,
file_sha256: &str,
) -> Result<()>
Available on crate feature yara only.
pub async fn add_yara_match( &self, id: Uuid, rule_name: &str, file_sha256: &str, ) -> Result<()>
yara only.Add a Yara match to the database
§Errors
If there’s a connectivity issue to Postgres, an error will result
Sourcepub async fn mark_yara_task_as_finished(&self, id: Uuid) -> Result<()>
Available on crate feature yara only.
pub async fn mark_yara_task_as_finished(&self, id: Uuid) -> Result<()>
yara only.Indicate that the Yara search task has finished
§Errors
If there’s a connectivity issue to Postgres, an error will result
Sourcepub async fn yara_add_next_file_id(&self, id: Uuid, file_id: u64) -> Result<()>
Available on crate feature yara only.
pub async fn yara_add_next_file_id(&self, id: Uuid, file_id: u64) -> Result<()>
yara only.Add the last file ID for the next iteration
§Errors
If there’s a connectivity issue to Postgres, an error will result
Sourcepub async fn get_yara_results(
&self,
id: Uuid,
user_id: u32,
) -> Result<YaraSearchResponse>
Available on crate feature yara only.
pub async fn get_yara_results( &self, id: Uuid, user_id: u32, ) -> Result<YaraSearchResponse>
yara only.Get the Yara search results
§Errors
If there’s a connectivity issue to Postgres, an error will result
Sourcepub async fn get_config(&self) -> Result<MDBConfig>
pub async fn get_config(&self) -> Result<MDBConfig>
Get the configuration which is stored in the database
§Errors
If there’s a connectivity issue to Postgres, an error will result
Sourcepub async fn authenticate(&self, uname: &str, password: &str) -> Result<String>
pub async fn authenticate(&self, uname: &str, password: &str) -> Result<String>
Check user credentials, return the API key. Generate if it doesn’t exist.
§Errors
- If there’s a connectivity issue to Postgres, an error will result
- If the username and/or password aren’t correct, an error will result
Sourcepub async fn get_uid(&self, apikey: &str) -> Result<u32>
pub async fn get_uid(&self, apikey: &str) -> Result<u32>
Get the user’s ID from their API key
§Errors
- If there’s a connectivity issue to Postgres, an error will result
- If the api key isn’t valid, an error will result
Sourcepub async fn db_info(&self) -> Result<DatabaseInformation>
pub async fn db_info(&self) -> Result<DatabaseInformation>
Retrieve information about the database
§Errors
- If there’s a connectivity issue to Postgres, an error will result
Sourcepub async fn get_user_info(&self, uid: u32) -> Result<GetUserInfoResponse>
pub async fn get_user_info(&self, uid: u32) -> Result<GetUserInfoResponse>
Retrieve the names of the groups and sources the user is part of and has access to
§Errors
- If there’s a connectivity issue to Postgres, an error will result
- If the user ID isn’t valid, an error will result
Sourcepub async fn get_user_sources(&self, uid: u32) -> Result<Sources>
pub async fn get_user_sources(&self, uid: u32) -> Result<Sources>
Retrieve the source information available to the specified user
§Errors
- If there’s a connectivity issue to Postgres, an error will result
- If the user ID isn’t valid, an error will result
Sourcepub async fn reset_own_api_key(&self, uid: u32) -> Result<()>
pub async fn reset_own_api_key(&self, uid: u32) -> Result<()>
Let the user clear their own API key to log out from all systems
§Errors
- If there’s a connectivity issue to Postgres, an error will result
- If the user ID isn’t valid, an error will result
Sourcepub async fn get_known_data_types(&self) -> Result<Vec<FileType>>
pub async fn get_known_data_types(&self) -> Result<Vec<FileType>>
Retrieve the supported data type information
§Errors
If there’s a connectivity issue to Postgres, an error will result
Sourcepub async fn get_labels(&self) -> Result<Labels>
pub async fn get_labels(&self) -> Result<Labels>
Get all labels from Malware DB
§Errors
If there’s a connectivity issue to Postgres, an error will result
Sourcepub async fn get_type_id_for_bytes(&self, data: &[u8]) -> Result<u32>
pub async fn get_type_id_for_bytes(&self, data: &[u8]) -> Result<u32>
Get the corresponding type ID for a buffer representing a file
§Errors
If there’s a connectivity issue to Postgres, an error will result
Sourcepub async fn allowed_user_source(&self, uid: u32, sid: u32) -> Result<bool>
pub async fn allowed_user_source(&self, uid: u32, sid: u32) -> Result<bool>
Check that a user has been granted access data for the specific source
§Errors
- If there’s a connectivity issue to Postgres, an error will result
- If the user or source ID(s) aren’t valid, an error will result
Sourcepub async fn user_is_admin(&self, uid: u32) -> Result<bool>
pub async fn user_is_admin(&self, uid: u32) -> Result<bool>
Check to see if the user is an administrator. The user must be a member of the admin group (group ID 0), or a one group below (a group with the parent group id of 0).
§Errors
- If there’s a connectivity issue to Postgres, an error will result
- If the user ID isn’t valid, an error will result
Sourcepub async fn add_file(
&self,
meta: &FileMetadata,
known_type: KnownType<'_>,
uid: u32,
sid: u32,
ftype: u32,
parent: Option<u64>,
) -> Result<FileAddedResult>
pub async fn add_file( &self, meta: &FileMetadata, known_type: KnownType<'_>, uid: u32, sid: u32, ftype: u32, parent: Option<u64>, ) -> Result<FileAddedResult>
Add a file’s metadata to the database, returning true if this is a new entry
§Errors
- If there’s a connectivity issue to Postgres, an error will result
- If the source doesn’t exist or the user isn’t part of a member group, an error will result
Sourcepub async fn partial_search(
&self,
uid: u32,
search: SearchRequest,
) -> Result<SearchResponse>
pub async fn partial_search( &self, uid: u32, search: SearchRequest, ) -> Result<SearchResponse>
Search for allowed samples based on partial search and/or file name
§Errors
- If there’s a connectivity issue to Postgres, an error will result
Sourcepub async fn cleanup(&self) -> Result<u64>
pub async fn cleanup(&self) -> Result<u64>
Delete old pagination searches
§Errors
An error would occur if the Postgres server couldn’t be reached.
Sourcepub async fn retrieve_sample(&self, uid: u32, hash: &HashType) -> Result<String>
pub async fn retrieve_sample(&self, uid: u32, hash: &HashType) -> Result<String>
Retrieve the SHA-256 hash of the sample while checking that the user is permitted to access to it
§Errors
- If there’s a connectivity issue to Postgres, an error will result
- If the file doesn’t exist or the user isn’t allowed access, an error will result
Sourcepub async fn get_sample_report(
&self,
uid: u32,
hash: &HashType,
) -> Result<Report>
pub async fn get_sample_report( &self, uid: u32, hash: &HashType, ) -> Result<Report>
Retrieve a report for a given sample, if allowed.
§Errors
- If there’s a connectivity issue to Postgres, an error will result
- If the file doesn’t exist or the user isn’t allowed access, an error will result
Sourcepub async fn find_similar_samples(
&self,
uid: u32,
sim: &[(SimilarityHashType, String)],
) -> Result<Vec<SimilarSample>>
pub async fn find_similar_samples( &self, uid: u32, sim: &[(SimilarityHashType, String)], ) -> Result<Vec<SimilarSample>>
Given a collection of similarity hashes, find samples which are similar.
§Errors
If there’s a connectivity issue to Postgres, an error will result
Sourcepub async fn user_allowed_files_by_sha256(
&self,
uid: u32,
next: Option<u64>,
) -> Result<(Vec<String>, u64)>
pub async fn user_allowed_files_by_sha256( &self, uid: u32, next: Option<u64>, ) -> Result<(Vec<String>, u64)>
For a given user ID, return the file hashes the person is allowed to know about and the last
file ID, which can be provided as next to get the next batch of hashes.
§Errors
If there’s a connectivity issue to Postgres, an error will result
Sourcepub async fn migrate(&self, action: Migration) -> Result<()>
pub async fn migrate(&self, action: Migration) -> Result<()>
Checks if a migration is needed, erroring if action is to check and the schema has changed.
§Errors
If there’s a connectivity issue to Postgres, an error will result; if a migration is needed and not an administrative action, an error results.
Sourcepub async fn enable_compression(&self) -> Result<()>
Available on crate features admin only.
pub async fn enable_compression(&self) -> Result<()>
admin only.Sourcepub async fn disable_compression(&self) -> Result<()>
Available on crate features admin only.
pub async fn disable_compression(&self) -> Result<()>
admin only.Unset the compression flag, does not go and decompress files already compressed!
§Errors
If there’s a connectivity issue to Postgres, an error will result
Sourcepub async fn enable_keep_unknown_files(&self) -> Result<()>
Available on crate features admin only.
pub async fn enable_keep_unknown_files(&self) -> Result<()>
admin only.Set the keep unknown files flag
§Errors
If there’s a connectivity issue to Postgres, an error will result
Sourcepub async fn disable_keep_unknown_files(&self) -> Result<()>
Available on crate features admin only.
pub async fn disable_keep_unknown_files(&self) -> Result<()>
admin only.Unset the keep unknown files flag, does not go and remove unknown files!
§Errors
If there’s a connectivity issue to Postgres, an error will result
Sourcepub async fn add_file_encryption_key(&self, key: &FileEncryption) -> Result<u32>
Available on crate features admin only.
pub async fn add_file_encryption_key(&self, key: &FileEncryption) -> Result<u32>
admin only.Add an encryption key to the database, set it as the default, and return the key ID
§Errors
- If there is a connectivity with Postgres, an error will result
Sourcepub async fn get_encryption_key_names_ids(
&self,
) -> Result<Vec<(u32, EncryptionOption)>>
Available on crate features admin only.
pub async fn get_encryption_key_names_ids( &self, ) -> Result<Vec<(u32, EncryptionOption)>>
admin only.Get the key ID and algorithm names
§Errors
If there is a connectivity with Postgres, an error will result
Sourcepub async fn create_user(
&self,
uname: &str,
fname: &str,
lname: &str,
email: &str,
password: Option<String>,
organisation: Option<&String>,
readonly: bool,
) -> Result<u32>
Available on crate features admin only.
pub async fn create_user( &self, uname: &str, fname: &str, lname: &str, email: &str, password: Option<String>, organisation: Option<&String>, readonly: bool, ) -> Result<u32>
admin only.Create a user account, return the user ID.
§Errors
If there’s a connectivity issue to Postgres, an error will result
Sourcepub async fn reset_api_keys(&self) -> Result<u64>
Available on crate features admin only.
pub async fn reset_api_keys(&self) -> Result<u64>
admin only.Clear all API keys, either in case of suspected activity, or part of policy
§Errors
If there’s a connectivity issue to Postgres, an error will result
Sourcepub async fn set_password(&self, uname: &str, password: &str) -> Result<()>
Available on crate features admin only.
pub async fn set_password(&self, uname: &str, password: &str) -> Result<()>
admin only.Set a user’s password
§Errors
- If there’s a connectivity issue to Postgres, an error will result
- If the user doesn’t exist, an error will result
Sourcepub async fn list_users(&self) -> Result<Vec<User>>
Available on crate features admin only.
pub async fn list_users(&self) -> Result<Vec<User>>
admin only.Get the complete list of users
§Errors
If there’s a connectivity issue to Postgres, an error will result
Sourcepub async fn group_id_from_name(&self, name: &str) -> Result<i32>
Available on crate features admin only.
pub async fn group_id_from_name(&self, name: &str) -> Result<i32>
admin only.Get the ID of a group from name
§Errors
- If there’s a connectivity issue to Postgres, an error will result
- If the group name isn’t valid, an error will result
Sourcepub async fn edit_group(
&self,
gid: u32,
name: &str,
desc: &str,
parent: Option<u32>,
) -> Result<()>
Available on crate features admin only.
pub async fn edit_group( &self, gid: u32, name: &str, desc: &str, parent: Option<u32>, ) -> Result<()>
admin only.Update the record for a group
§Errors
- If there’s a connectivity issue to Postgres, an error will result
- If the group doesn’t exist, an error will result
Sourcepub async fn list_groups(&self) -> Result<Vec<Group>>
Available on crate features admin only.
pub async fn list_groups(&self) -> Result<Vec<Group>>
admin only.Get the complete list of groups
§Errors
If there’s a connectivity issue to Postgres, an error will result
Sourcepub async fn add_user_to_group(&self, uid: u32, gid: u32) -> Result<()>
Available on crate features admin only.
pub async fn add_user_to_group(&self, uid: u32, gid: u32) -> Result<()>
admin only.Grant a user membership to a group, both by id.
§Errors
- If there’s a connectivity issue to Postgres, an error will result
- If the user or group doesn’t exist, an error will result
Sourcepub async fn add_group_to_source(&self, gid: u32, sid: u32) -> Result<()>
Available on crate features admin only.
pub async fn add_group_to_source(&self, gid: u32, sid: u32) -> Result<()>
admin only.Grand a group access to a source, both by id.
§Errors
- If there’s a connectivity issue to Postgres, an error will result
- If the group or source doesn’t exist, an error will result
Sourcepub async fn create_group(
&self,
name: &str,
description: &str,
parent: Option<u32>,
) -> Result<u32>
Available on crate features admin only.
pub async fn create_group( &self, name: &str, description: &str, parent: Option<u32>, ) -> Result<u32>
admin only.Create a new group, returning the group ID
§Errors
- If there’s a connectivity issue to Postgres, an error will result
- If the group name is already taken, an error will result
Sourcepub async fn list_sources(&self) -> Result<Vec<Source>>
Available on crate features admin only.
pub async fn list_sources(&self) -> Result<Vec<Source>>
admin only.Get the complete list of sources
§Errors
If there’s a connectivity issue to Postgres, an error will result
Sourcepub async fn create_source(
&self,
name: &str,
description: Option<&str>,
url: Option<&str>,
date: DateTime<Local>,
releasable: bool,
malicious: Option<bool>,
) -> Result<u32>
Available on crate features admin only.
pub async fn create_source( &self, name: &str, description: Option<&str>, url: Option<&str>, date: DateTime<Local>, releasable: bool, malicious: Option<bool>, ) -> Result<u32>
admin only.Create a source, returning the source ID
§Errors
- If there’s a connectivity issue to Postgres, an error will result
- If the source already exists, an error will result
Sourcepub async fn edit_user(
&self,
uid: u32,
uname: &str,
fname: &str,
lname: &str,
email: &str,
readonly: bool,
) -> Result<()>
Available on crate features admin only.
pub async fn edit_user( &self, uid: u32, uname: &str, fname: &str, lname: &str, email: &str, readonly: bool, ) -> Result<()>
admin only.Edit a user account setting the specified field values, primarily used by the Admin gui
§Errors
- If there’s a connectivity issue to Postgres, an error will result
- If the user isn’t valid, an error will result
Sourcepub async fn deactivate_user(&self, uid: u32) -> Result<()>
Available on crate features admin only.
pub async fn deactivate_user(&self, uid: u32) -> Result<()>
admin only.Deactivate, but don’t delete, a user’s account
§Errors
- If there’s a connectivity issue to Postgres, an error will result
- If the user ID isn’t valid, an error will result
Sourcepub async fn file_types_counts(&self) -> Result<HashMap<String, u32>>
Available on crate features admin only.
pub async fn file_types_counts(&self) -> Result<HashMap<String, u32>>
admin only.File types and number of files per type
§Errors
- If there’s a connectivity issue to Postgres, an error will result
Sourcepub async fn create_label(&self, name: &str, parent: Option<u64>) -> Result<u64>
Available on crate features admin only.
pub async fn create_label(&self, name: &str, parent: Option<u64>) -> Result<u64>
admin only.Create a new label, returning the label ID
§Errors
- If there’s a connectivity issue to Postgres, an error will result
- If the parent label doesn’t exist, an error will result
- If the label name already exists, an error will result
Sourcepub async fn edit_label(
&self,
id: u64,
name: &str,
parent: Option<u64>,
) -> Result<()>
Available on crate features admin only.
pub async fn edit_label( &self, id: u64, name: &str, parent: Option<u64>, ) -> Result<()>
admin only.Edit a label name or parent
§Errors
- If there’s a connectivity issue to Postgres, an error will result
- If the parent label doesn’t exist, an error will result
- If the label name already exists, an error will result
Sourcepub async fn label_id_from_name(&self, name: &str) -> Result<u64>
Available on crate features admin only.
pub async fn label_id_from_name(&self, name: &str) -> Result<u64>
admin only.Return the ID for a given label name
§Errors
- If there’s a connectivity issue to Postgres, an error will result
- If the label ID is invalid, an error will result
Sourcepub async fn label_file(&self, file_id: u64, label_id: u64) -> Result<()>
Available on crate features admin only.
pub async fn label_file(&self, file_id: u64, label_id: u64) -> Result<()>
admin only.Associate an existing label by its IDs with a file.
§Errors
- Incorrect IDs will result in an error
- If the file already has the given label associated
- If there is a network or connection issue with Postgres
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for DatabaseType
impl !RefUnwindSafe for DatabaseType
impl Send for DatabaseType
impl Sync for DatabaseType
impl Unpin for DatabaseType
impl !UnwindSafe for DatabaseType
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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> 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> 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 moreSource§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> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt 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.