Skip to main content

Shell

Struct Shell 

Source
pub struct Shell<SE: ShellExtensions = DefaultShellExtensions> { /* private fields */ }
Expand description

Represents an instance of a shell.

§Type Parameters

  • SE - The shell extensions implementation to use. These extensions are statically injected into the shell at compile time to provide custom behavior. When unspecified, defaults to DefaultShellExtensions, which provide standard behavior.

Implementations§

Source§

impl Shell

Source

pub fn builder() -> ShellBuilder<DefaultShellExtensions, Empty>

Create an instance of Shell using the builder syntax

Source

pub fn builder_with_extensions<SE: ShellExtensions>() -> ShellBuilder<SE, Empty>

Create an instance of Shell using the builder syntax, with custom extensions.

Source§

impl<SE: ShellExtensions> Shell<SE>

Source

pub fn register_builtin<S: Into<String>>( &mut self, name: S, registration: Registration<SE>, )

Register a builtin to the shell’s environment, replacing any existing registration with the same name.

§Arguments
  • name - The in-shell name of the builtin.
  • registration - The registration handle for the builtin.
Source

pub fn register_builtin_if_unset<S: Into<String>>( &mut self, name: S, registration: Registration<SE>, )

Register a builtin only if no builtin with that name is already registered.

§Arguments
  • name - The in-shell name of the builtin.
  • registration - The registration handle for the builtin.
Source

pub fn builtin_mut(&mut self, name: &str) -> Option<&mut Registration<SE>>

Tries to retrieve a mutable reference to an existing builtin registration. Returns None if no such registration exists.

§Arguments
  • name - The name of the builtin to lookup.
Source

pub const fn builtins(&self) -> &HashMap<String, Registration<SE>>

Returns the registered builtins for the shell.

Source§

impl<SE: ShellExtensions> Shell<SE>

Source

pub fn in_sourced_script(&self) -> bool

Returns whether or not the shell is actively executing in a sourced script.

Source

pub fn in_function(&self) -> bool

Returns whether or not the shell is actively executing in a shell function.

Source

pub fn start_interactive_session(&mut self) -> Result<(), Error>

Updates the shell’s internal tracking state to reflect that a new interactive session is being started.

Source

pub fn end_interactive_session(&mut self) -> Result<(), Error>

Updates the shell’s internal tracking state to reflect that the current interactive session is ending.

Source

pub fn start_command_string_mode(&mut self)

Updates the shell’s internal tracking state to reflect that command string mode is being started.

Source

pub fn end_command_string_mode(&mut self) -> Result<(), Error>

Updates the shell’s internal tracking state to reflect that command string mode is ending.

Source

pub fn current_shell_args(&self) -> &[String]

Returns the current positional arguments for the shell ($1 and beyond). Influenced by the current call stack.

Source

pub fn current_shell_args_mut(&mut self) -> &mut Vec<String>

Returns a mutable reference to current positional parameters for the shell ($1 and beyond).

Source§

impl<SE: ShellExtensions> Shell<SE>

Source

pub async fn complete( &mut self, input: &str, position: usize, ) -> Result<Completions, Error>

Generates command completions for the shell.

§Arguments
  • input - The input string to generate completions for.
  • position - The position in the input string to generate completions at.
Source§

impl<SE: ShellExtensions> Shell<SE>

Source

pub fn env_str(&self, name: &str) -> Option<Cow<'_, str>>

Tries to retrieve a variable from the shell’s environment, converting it into its string form.

§Arguments
  • name - The name of the variable to retrieve.
Source

pub fn env_var(&self, name: &str) -> Option<&ShellVariable>

Tries to retrieve a variable from the shell’s environment.

§Arguments
  • name - The name of the variable to retrieve.
Source

pub fn set_env_global( &mut self, name: &str, var: ShellVariable, ) -> Result<(), Error>

Tries to set a global variable in the shell’s environment.

§Arguments
  • name - The name of the variable to add.
  • var - The variable contents to add.
Source§

impl<SE: ShellExtensions> Shell<SE>

Source

pub fn default_exec_params(&self) -> ExecutionParameters

Returns the default execution parameters for this shell.

Source

pub async fn source_script<S: Into<String>, P: AsRef<Path>, I: Iterator<Item = S>>( &mut self, path: P, args: I, params: &ExecutionParameters, ) -> Result<ExecutionResult, Error>

Source the given file as a shell script, returning the execution result.

§Arguments
  • path - The path to the file to source.
  • args - The arguments to pass to the script as positional parameters.
  • params - Execution parameters.
Source

pub async fn run_string<S: Into<String>>( &mut self, command: S, source_info: &SourceInfo, params: &ExecutionParameters, ) -> Result<ExecutionResult, Error>

Executes the given string as a shell program, returning the resulting exit status.

§Arguments
  • command - The command to execute.
  • source_info - Information about the source of the command text.
  • params - Execution parameters.
Source

pub async fn run_dash_c_command<S: Into<String>>( &mut self, command: S, ) -> Result<ExecutionResult, Error>

Executes the given command, provided to a shell executable on the command line (i.e., via -c).

It is expected that the shell will not be used for any further execution after this command; this function will perform any necessary shell exit handling.

§Arguments
  • command - The command to execute.
Source

pub async fn run_script<S: Into<String>, P: AsRef<Path>, I: Iterator<Item = S>>( &mut self, script_path: P, args: I, ) -> Result<ExecutionResult, Error>

Executes the given script file, returning the resulting exit status.

It is expected that the shell will not be used for any further execution after this command; this function will perform any necessary shell exit handling.

§Arguments
  • script_path - The path to the script file to execute.
  • args - The arguments to pass to the script as positional parameters.
Source

pub async fn run_program( &mut self, program: Program, params: &ExecutionParameters, ) -> Result<ExecutionResult, Error>

Executes the given parsed shell program, returning the resulting exit status.

§Arguments
  • program - The program to execute.
  • params - Execution parameters.
Source

pub fn eval_arithmetic(&mut self, expr: &ArithmeticExpr) -> Result<i64, Error>

Evaluate the given arithmetic expression, returning the result.

Source§

impl<SE: ShellExtensions> Shell<SE>

Source

pub fn ifs(&self) -> Cow<'_, str>

Returns the current value of the IFS variable, or the default value if it is not set.

Source

pub async fn basic_expand_string<S: AsRef<str>>( &mut self, params: &ExecutionParameters, s: S, ) -> Result<String, Error>

Applies basic shell expansion to the provided string.

§Arguments
  • s - The string to expand.
Source

pub async fn full_expand_and_split_string<S: AsRef<str>>( &mut self, params: &ExecutionParameters, s: S, ) -> Result<Vec<String>, Error>

Applies full shell expansion and field splitting to the provided string; returns a sequence of fields.

§Arguments
  • s - The string to expand and split.
Source§

impl<SE: ShellExtensions> Shell<SE>

Source

pub fn set_working_dir( &mut self, target_dir: impl AsRef<Path>, ) -> Result<(), Error>

Sets the shell’s current working directory to the given path.

§Arguments
  • target_dir - The path to set as the working directory.
Source

pub fn tilde_shorten(&self, s: String) -> String

Tilde-shortens the given string, replacing the user’s home directory with a tilde.

§Arguments
  • s - The string to shorten.
Source

pub fn find_executables_in_path<'a>( &'a self, filename: &'a str, ) -> impl Iterator<Item = PathBuf> + 'a

Finds executables in the shell’s current default PATH, matching the given glob pattern.

§Arguments
  • required_glob_pattern - The glob pattern to match against.
Source

pub fn find_executables_in_path_with_prefix( &self, filename_prefix: &str, case_insensitive: bool, ) -> impl Iterator<Item = PathBuf>

Finds executables in the shell’s current default PATH, with filenames matching the given prefix.

§Arguments
  • filename_prefix - The prefix to match against executable filenames.
Source

pub fn find_first_executable_in_path<S: AsRef<str>>( &self, candidate_name: S, ) -> Option<PathBuf>

Determines whether the given filename is the name of an executable in one of the directories in the shell’s current PATH. If found, returns the path.

§Arguments
  • candidate_name - The name of the file to look for.
Source

pub fn find_first_executable_in_path_using_cache<S: AsRef<str>>( &mut self, candidate_name: S, ) -> Option<PathBuf>
where String: From<S>,

Uses the shell’s hash-based path cache to check whether the given filename is the name of an executable in one of the directories in the shell’s current PATH. If found, ensures the path is in the cache and returns it.

§Arguments
  • candidate_name - The name of the file to look for.
Source

pub fn absolute_path(&self, path: impl AsRef<Path>) -> PathBuf

Gets the absolute form of the given path.

§Arguments
  • path - The path to get the absolute form of.
Source

pub fn replace_open_files( &mut self, open_fds: impl Iterator<Item = (ShellFd, OpenFile)>, )

Replaces the shell’s currently configured open files with the given set. Typically only used by exec-like builtins.

§Arguments
  • open_files - The new set of open files to use.
Source§

impl<SE: ShellExtensions> Shell<SE>

Source

pub const fn funcs(&self) -> &FunctionEnv

Returns the function definition environment for this shell.

Source

pub const fn funcs_mut(&mut self) -> &mut FunctionEnv

Returns a mutable reference to the function definition environment for this shell.

Source

pub fn undefine_func(&mut self, name: &str) -> bool

Tries to undefine a function in the shell’s environment. Returns whether or not a definition was removed.

§Arguments
  • name - The name of the function to undefine.
Source

pub fn define_func( &mut self, name: impl Into<String>, definition: FunctionDefinition, source_info: &SourceInfo, )

Defines a function in the shell’s environment. If a function already exists with the given name, it is replaced with the new definition.

§Arguments
  • name - The name of the function to define.
  • definition - The function’s definition.
  • source_info - Source information for the function definition.
Source

pub fn func_mut(&mut self, name: &str) -> Option<&mut Registration>

Tries to return a mutable reference to the registration for a named function. Returns None if no such function was found.

§Arguments
  • name - The name of the function to lookup
Source

pub fn define_func_from_str( &mut self, name: impl Into<String>, body_text: &str, ) -> Result<(), Error>

Tries to define a function in the shell’s environment using the given string as its body.

§Arguments
  • name - The name of the function
  • body_text - The body of the function, expected to start with “()”.
Source

pub async fn invoke_function<N: AsRef<str>, I: IntoIterator<Item = A>, A: AsRef<str>>( &mut self, name: N, args: I, params: &ExecutionParameters, ) -> Result<u8, Error>

Invokes a function defined in this shell, returning the resulting exit status.

§Arguments
  • name - The name of the function to invoke.
  • args - The arguments to pass to the function.
  • params - Execution parameters to use for the invocation.
Source§

impl<SE: ShellExtensions> Shell<SE>

Source

pub fn history_file_path(&self) -> Option<PathBuf>

Returns the path to the history file used by the shell, if one is set.

Source

pub fn history_time_format(&self) -> Option<String>

Returns the path to the history file used by the shell, if one is set.

Source

pub fn save_history(&mut self) -> Result<(), Error>

Saves history back to any backing storage.

Source

pub fn add_to_history(&mut self, command: &str) -> Result<(), Error>

Adds a command to history.

Source§

impl<SE: ShellExtensions> Shell<SE>

Source

pub async fn load_config( &mut self, profile_behavior: &ProfileLoadBehavior, rc_behavior: &RcLoadBehavior, ) -> Result<(), Error>

Loads and executes standard shell configuration files (i.e., rc and profile).

§Arguments
  • profile_behavior - Behavior for loading profile files.
  • rc_behavior - Behavior for loading rc files.
Source§

impl<SE: ShellExtensions> Shell<SE>

Source

pub fn stdout(&self) -> impl Write + 'static

Returns a value that can be used to write to the shell’s currently configured standard output stream using write! et al.

Source

pub fn stderr(&self) -> impl Write + 'static

Returns a value that can be used to write to the shell’s currently configured standard error stream using write! et al.

Source

pub fn display_error( &self, file: &mut impl Write, err: &Error, ) -> Result<(), Error>

Displays the given error to the user, using the shell’s error display mechanisms.

§Arguments
  • file_table - The open file table to use for any file descriptor references.
  • err - The error to display.
Source§

impl<SE: ShellExtensions> Shell<SE>

Source

pub fn check_for_completed_jobs(&mut self) -> Result<(), Error>

Checks for completed jobs in the shell, reporting any changes found.

Source§

impl<SE: ShellExtensions> Shell<SE>

Source

pub fn parse<R: Read>(&self, reader: R) -> Result<Program, ParseError>

Parses the given reader as a shell program, returning the resulting Abstract Syntax Tree for the program.

Source

pub fn parse_string<S: Into<String>>(&self, s: S) -> Result<Program, ParseError>

Parses the given string as a shell program, returning the resulting Abstract Syntax Tree for the program.

§Arguments
  • s - The string to parse as a program.
Source

pub const fn parser_options(&self) -> ParserOptions

Returns the options that should be used for parsing shell programs; reflects the current configuration state of the shell and may change over time.

Source§

impl<SE: ShellExtensions> Shell<SE>

Source

pub async fn compose_precmd_prompt(&mut self) -> Result<String, Error>

Composes the shell’s post-input, pre-command prompt, applying all appropriate expansions.

Source

pub async fn compose_prompt(&mut self) -> Result<String, Error>

Composes the shell’s prompt, applying all appropriate expansions.

Source

pub async fn compose_alt_side_prompt(&mut self) -> Result<String, Error>

Composes the shell’s alternate-side prompt, applying all appropriate expansions.

Source

pub async fn compose_continuation_prompt(&mut self) -> Result<String, Error>

Composes the shell’s continuation prompt.

Source§

impl<SE: ShellExtensions> Shell<SE>

Source

pub fn set_edit_buffer( &mut self, contents: String, cursor: usize, ) -> Result<(), Error>

Updates the shell state to reflect the given edit buffer contents.

§Arguments
  • contents - The contents of the edit buffer.
  • cursor - The cursor position in the edit buffer.
Source

pub fn pop_edit_buffer(&mut self) -> Result<Option<(String, usize)>, Error>

Returns the contents of the shell’s edit buffer, if any. The buffer state is cleared from the shell.

Source§

impl<SE: ShellExtensions> Shell<SE>

Source

pub async fn on_exit(&mut self) -> Result<(), Error>

Runs any exit steps for the shell.

This currently includes invoking the EXIT trap handler, if any.

Source§

impl<SE: ShellExtensions> Shell<SE>

Source

pub fn increment_interactive_line_offset(&mut self, delta: usize)

Increments the interactive line offset in the shell by the indicated number of lines.

§Arguments
  • delta - The number of lines to increment the current line offset by.
Source

pub fn set_current_cmd(&mut self, cmd: &impl Node)

Updates the currently executing command in the shell.

Source

pub const fn apply_errexit_if_enabled(&self, result: &mut ExecutionResult)

Applies errexit semantics to a result if enabled and appropriate. This should be called at “statement boundaries” where errexit should be checked.

§Arguments
  • result - The execution result to potentially modify.
Source

pub fn is_keyword(&self, s: &str) -> bool

Checks if the given string is a keyword reserved in this shell.

§Arguments
  • s - The string to check.
Source§

impl<SE: ShellExtensions> Shell<SE>

Source

pub fn is_subshell(&self) -> bool

Returns whether or not this shell is a subshell.

Source

pub fn last_stopwatch_time(&self) -> SystemTime

Returns the last “SECONDS” captured time.

Source

pub fn last_stopwatch_offset(&self) -> u32

Returns the last “SECONDS” offset requested.

Source

pub fn env(&self) -> &ShellEnvironment

Returns the shell environment containing variables.

Source

pub fn env_mut(&mut self) -> &mut ShellEnvironment

Returns a mutable reference to the shell environment.

Source

pub fn options(&self) -> &RuntimeOptions

Returns the shell’s runtime options.

Source

pub fn options_mut(&mut self) -> &mut RuntimeOptions

Returns a mutable reference to the shell’s runtime options.

Source

pub fn aliases(&self) -> &HashMap<String, String>

Returns the shell’s aliases.

Source

pub fn aliases_mut(&mut self) -> &mut HashMap<String, String>

Returns a mutable reference to the shell’s aliases.

Source

pub fn jobs(&self) -> &JobManager

Returns the shell’s job manager.

Source

pub fn jobs_mut(&mut self) -> &mut JobManager

Returns a mutable reference to the shell’s job manager.

Source

pub fn traps(&self) -> &TrapHandlerConfig

Returns the shell’s trap handler configuration.

Source

pub fn traps_mut(&mut self) -> &mut TrapHandlerConfig

Returns a mutable reference to the shell’s trap handler configuration.

Source

pub fn directory_stack(&self) -> &[PathBuf]

Returns the shell’s directory stack.

Source

pub fn directory_stack_mut(&mut self) -> &mut Vec<PathBuf>

Returns a mutable reference to the shell’s directory stack.

Source

pub fn last_pipeline_statuses(&self) -> &[u8]

Returns the statuses of commands in the last pipeline.

Source

pub fn last_pipeline_statuses_mut(&mut self) -> &mut Vec<u8>

Returns a mutable reference to the statuses of commands in the last pipeline.

Source

pub fn program_location_cache(&self) -> &PathCache

Returns the shell’s program location cache.

Source

pub fn program_location_cache_mut(&mut self) -> &mut PathCache

Returns a mutable reference to the shell’s program location cache.

Source

pub fn completion_config(&self) -> &Config

Returns the shell’s completion configuration.

Source

pub fn completion_config_mut(&mut self) -> &mut Config

Returns a mutable reference to the shell’s completion configuration.

Source

pub fn open_files(&self) -> &OpenFiles

Returns the shell’s open files.

Source

pub fn open_files_mut(&mut self) -> &mut OpenFiles

Returns a mutable reference to the shell’s open files.

Source

pub fn current_shell_name(&self) -> Option<Cow<'_, str>>

Returns the current name of the shell ($0). Influenced by the current call stack.

Source

pub fn depth(&self) -> usize

Returns the current subshell depth; 0 is returned if this shell is not a subshell.

Source

pub fn call_stack(&self) -> &CallStack

Returns the call stack for the shell.

Source

pub fn history(&self) -> Option<&History>

Returns the shell’s history, if it exists.

Source

pub fn history_mut(&mut self) -> Option<&mut History>

Returns a mutable reference to the shell’s history, if it exists.

Source

pub fn version(&self) -> Option<&str>

Returns the shell’s official version string (if available).

Source

pub fn last_exit_status(&self) -> u8

Returns the exit status of the last command executed in this shell.

Source

pub fn set_last_exit_status(&mut self, status: u8)

Updates the last exit status.

Source

pub fn key_bindings(&self) -> Option<&Arc<Mutex<dyn KeyBindings>>>

Returns the key bindings helper for the shell.

Source

pub fn set_key_bindings( &mut self, key_bindings: Option<Arc<Mutex<dyn KeyBindings>>>, )

Sets the key bindings helper for the shell.

Source

pub fn working_dir(&self) -> &Path

Returns the shell’s current working directory.

Source

pub fn product_display_str(&self) -> Option<&str>

Returns the product display name for this shell.

Trait Implementations§

Source§

impl<SE: ShellExtensions> AsMut<Shell<SE>> for Shell<SE>

Source§

fn as_mut(&mut self) -> &mut Self

Converts this type into a mutable reference of the (usually inferred) input type.
Source§

impl<SE: ShellExtensions> AsRef<Shell<SE>> for Shell<SE>

Source§

fn as_ref(&self) -> &Self

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl<SE: ShellExtensions> Clone for Shell<SE>

Source§

fn clone(&self) -> Self

Returns a duplicate 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<SE: ShellExtensions> Default for Shell<SE>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<SE: ShellExtensions> ShellState for Shell<SE>

Source§

fn is_subshell(&self) -> bool

Returns whether or not this shell is a subshell.

Source§

fn last_stopwatch_time(&self) -> SystemTime

Returns the last “SECONDS” captured time.

Source§

fn last_stopwatch_offset(&self) -> u32

Returns the last “SECONDS” offset requested.

Source§

fn env(&self) -> &ShellEnvironment

Returns the shell environment containing variables.

Source§

fn env_mut(&mut self) -> &mut ShellEnvironment

Returns a mutable reference to the shell environment.

Source§

fn options(&self) -> &RuntimeOptions

Returns the shell’s runtime options.

Source§

fn options_mut(&mut self) -> &mut RuntimeOptions

Returns a mutable reference to the shell’s runtime options.

Source§

fn aliases(&self) -> &HashMap<String, String>

Returns the shell’s aliases.

Source§

fn aliases_mut(&mut self) -> &mut HashMap<String, String>

Returns a mutable reference to the shell’s aliases.

Source§

fn jobs(&self) -> &JobManager

Returns the shell’s job manager.

Source§

fn jobs_mut(&mut self) -> &mut JobManager

Returns a mutable reference to the shell’s job manager.

Source§

fn traps(&self) -> &TrapHandlerConfig

Returns the shell’s trap handler configuration.

Source§

fn traps_mut(&mut self) -> &mut TrapHandlerConfig

Returns a mutable reference to the shell’s trap handler configuration.

Source§

fn directory_stack(&self) -> &[PathBuf]

Returns the shell’s directory stack.

Source§

fn directory_stack_mut(&mut self) -> &mut Vec<PathBuf>

Returns a mutable reference to the shell’s directory stack.

Source§

fn last_pipeline_statuses(&self) -> &[u8]

Returns the statuses of commands in the last pipeline.

Source§

fn last_pipeline_statuses_mut(&mut self) -> &mut Vec<u8>

Returns a mutable reference to the statuses of commands in the last pipeline.

Source§

fn program_location_cache(&self) -> &PathCache

Returns the shell’s program location cache.

Source§

fn program_location_cache_mut(&mut self) -> &mut PathCache

Returns a mutable reference to the shell’s program location cache.

Source§

fn completion_config(&self) -> &Config

Returns the shell’s completion configuration.

Source§

fn completion_config_mut(&mut self) -> &mut Config

Returns a mutable reference to the shell’s completion configuration.

Source§

fn open_files(&self) -> &OpenFiles

Returns the shell’s open files.

Source§

fn open_files_mut(&mut self) -> &mut OpenFiles

Returns a mutable reference to the shell’s open files.

Source§

fn current_shell_name(&self) -> Option<Cow<'_, str>>

Returns the current name of the shell ($0). Influenced by the current call stack.

Source§

fn depth(&self) -> usize

Returns the current subshell depth; 0 is returned if this shell is not a subshell.

Source§

fn call_stack(&self) -> &CallStack

Returns the call stack for the shell.

Source§

fn history(&self) -> Option<&History>

Returns the shell’s history, if it exists.

Source§

fn history_mut(&mut self) -> Option<&mut History>

Returns a mutable reference to the shell’s history, if it exists.

Source§

fn version(&self) -> Option<&str>

Returns the shell’s official version string (if available).

Source§

fn last_exit_status(&self) -> u8

Returns the exit status of the last command executed in this shell.

Source§

fn set_last_exit_status(&mut self, status: u8)

Updates the last exit status.

Source§

fn key_bindings(&self) -> Option<&Arc<Mutex<dyn KeyBindings>>>

Returns the key bindings helper for the shell.

Source§

fn set_key_bindings( &mut self, key_bindings: Option<Arc<Mutex<dyn KeyBindings>>>, )

Sets the key bindings helper for the shell.

Source§

fn working_dir(&self) -> &Path

Returns the shell’s current working directory.

Source§

fn working_dir_mut(&mut self) -> &mut PathBuf

Returns a mutable reference to the shell’s current working directory. This is only accessible within the crate.

Source§

fn product_display_str(&self) -> Option<&str>

Returns the product display name for this shell.

Auto Trait Implementations§

§

impl<SE> Freeze for Shell<SE>

§

impl<SE = ShellExtensionsImpl> !RefUnwindSafe for Shell<SE>

§

impl<SE> Send for Shell<SE>

§

impl<SE> Sync for Shell<SE>

§

impl<SE> Unpin for Shell<SE>

§

impl<SE> UnsafeUnpin for Shell<SE>

§

impl<SE = ShellExtensionsImpl> !UnwindSafe for Shell<SE>

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

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