Skip to main content

DatabaseType

Enum DatabaseType 

Source
pub enum DatabaseType {
    Postgres(Postgres),
    SQLite(Sqlite),
}
Expand description

Database connection handle

Variants§

§

Postgres(Postgres)

Postgres database

§

SQLite(Sqlite)

Available on crate features sqlite only.

SQLite database

Implementations§

Source§

impl DatabaseType

Source

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 SQLite file cannot be created or opened, an error will result
  • If SQLite is 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
Source

pub async fn migrate(arg: &str, server_ca: Option<PathBuf>) -> Result<Self>

Available on crate feature admin only.

Get a database connection from a configuration string and perform a migration, if needed

§Errors
  • If there’s a connectivity issue to Postgres, an error will result
  • If the SQLite file cannot be created or opened, an error will result
  • If SQLite is 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
Source

pub async fn enable_vt_upload(&self) -> Result<()>

Available on crate feature vt only.

Set the flag allowing uploads to Virus Total.

§Errors

If there’s a connectivity issue to Postgres, an error will result

Source

pub async fn disable_vt_upload(&self) -> Result<()>

Available on crate feature vt only.

Set the flag preventing uploads to Virus Total.

§Errors

If there’s a connectivity issue to Postgres, an error will result

Source

pub async fn files_without_vt_records(&self, limit: u32) -> Result<Vec<String>>

Available on crate feature 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

Source

pub async fn store_vt_record( &self, results: &ScanResultAttributes, ) -> Result<()>

Available on crate feature 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

Source

pub async fn get_vt_stats(&self) -> Result<VtStats>

Available on crate feature 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

Available on crate feature yara only.

Add the Yara search to the database

§Errors

If there’s a connectivity issue to Postgres, an error will result

Source

pub async fn get_unfinished_yara_tasks(&self) -> Result<Vec<YaraTask>>

Available on crate feature yara only.

Get unfinished Yara tasks for processing.

§Errors

If there’s a connectivity issue to Postgres, an error will result

Source

pub async fn add_yara_match( &self, id: Uuid, rule_name: &str, file_sha256: &str, ) -> Result<()>

Available on crate feature yara only.

Add a Yara match to the database

§Errors

If there’s a connectivity issue to Postgres, an error will result

Source

pub async fn mark_yara_task_as_finished(&self, id: Uuid) -> Result<()>

Available on crate feature yara only.

Indicate that the Yara search task has finished

§Errors

If there’s a connectivity issue to Postgres, an error will result

Source

pub async fn yara_add_next_file_id(&self, id: Uuid, file_id: u64) -> Result<()>

Available on crate feature yara only.

Add the last file ID for the next iteration

§Errors

If there’s a connectivity issue to Postgres, an error will result

Source

pub async fn get_yara_results( &self, id: Uuid, user_id: u32, ) -> Result<YaraSearchResponse>

Available on crate feature yara only.

Get the Yara search results

§Errors

If there’s a connectivity issue to Postgres, an error will result

Source

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

Source

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
Source

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
Source

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
Source

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
Source

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
Source

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
Source

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

Source

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

Source

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

Source

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
Source

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
Source

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

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
Source

pub async fn cleanup(&self) -> Result<u64>

Delete old pagination searches

§Errors

An error would occur if the Postgres server couldn’t be reached.

Source

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
Source

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
Source

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

Source

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

Source

pub async fn migrate_check(&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.

Source

pub async fn set_name(&self, name: &str) -> Result<()>

Available on crate features admin only.

Set the instance name

§Errors

If there’s a connectivity issue to Postgres, an error will result

Source

pub async fn enable_compression(&self) -> Result<()>

Available on crate features admin only.

Set the compression flag

§Errors

If there’s a connectivity issue to Postgres, an error will result

Source

pub async fn disable_compression(&self) -> Result<()>

Available on crate features 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

Source

pub async fn enable_keep_unknown_files(&self) -> Result<()>

Available on crate features admin only.

Set the keep unknown files flag

§Errors

If there’s a connectivity issue to Postgres, an error will result

Source

pub async fn disable_keep_unknown_files(&self) -> Result<()>

Available on crate features 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

Source

pub async fn add_file_encryption_key(&self, key: &FileEncryption) -> Result<u32>

Available on crate features 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
Source

pub async fn get_encryption_key_names_ids( &self, ) -> Result<Vec<(u32, EncryptionOption)>>

Available on crate features admin only.

Get the key ID and algorithm names

§Errors

If there is a connectivity with Postgres, an error will result

Source

pub 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.

Create a user account, return the user ID.

§Errors

If there’s a connectivity issue to Postgres, an error will result

Source

pub async fn reset_api_keys(&self) -> Result<u64>

Available on crate features 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

Source

pub async fn set_password(&self, uname: &str, password: &str) -> Result<()>

Available on crate features 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
Source

pub async fn list_users(&self) -> Result<Vec<User>>

Available on crate features admin only.

Get the complete list of users

§Errors

If there’s a connectivity issue to Postgres, an error will result

Source

pub async fn group_id_from_name(&self, name: &str) -> Result<i32>

Available on crate features 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
Source

pub async fn edit_group( &self, gid: u32, name: &str, desc: &str, parent: Option<u32>, ) -> Result<()>

Available on crate features 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
Source

pub async fn list_groups(&self) -> Result<Vec<Group>>

Available on crate features admin only.

Get the complete list of groups

§Errors

If there’s a connectivity issue to Postgres, an error will result

Source

pub async fn add_user_to_group(&self, uid: u32, gid: u32) -> Result<()>

Available on crate features 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
Source

pub async fn add_group_to_source(&self, gid: u32, sid: u32) -> Result<()>

Available on crate features 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
Source

pub async fn create_group( &self, name: &str, description: &str, parent: Option<u32>, ) -> Result<u32>

Available on crate features 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
Source

pub async fn list_sources(&self) -> Result<Vec<Source>>

Available on crate features admin only.

Get the complete list of sources

§Errors

If there’s a connectivity issue to Postgres, an error will result

Source

pub 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.

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
Source

pub async fn edit_user( &self, uid: u32, uname: &str, fname: &str, lname: &str, email: &str, readonly: bool, ) -> Result<()>

Available on crate features 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
Source

pub async fn deactivate_user(&self, uid: u32) -> Result<()>

Available on crate features 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
Source

pub async fn file_types_counts(&self) -> Result<HashMap<String, u32>>

Available on crate features admin only.

File types and number of files per type

§Errors
  • If there’s a connectivity issue to Postgres, an error will result
Source

pub async fn create_label(&self, name: &str, parent: Option<u64>) -> Result<u64>

Available on crate features 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
Source

pub async fn edit_label( &self, id: u64, name: &str, parent: Option<u64>, ) -> Result<()>

Available on crate features 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
Source

pub async fn label_id_from_name(&self, name: &str) -> Result<u64>

Available on crate features 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
Source

pub async fn label_file(&self, file_id: u64, label_id: u64) -> Result<()>

Available on crate features 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§

Source§

impl Debug for DatabaseType

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

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<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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 more
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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

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> 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>,

Source§

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>,

Source§

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