pub struct StackIoGuard<'a> { /* private fields */ }Methods from Deref<Target = Stack>§
pub fn with_env( &mut self, env_vars: &[Arc<EnvVars>], env_hidden: &Arc<HashMap<String, HashSet<EnvName>>>, )
Sourcepub fn get_var(&self, var_id: VarId, span: Span) -> Result<Value, ShellError>
pub fn get_var(&self, var_id: VarId, span: Span) -> Result<Value, ShellError>
Lookup a variable, erroring if it is not found
The passed-in span will be used to tag the value
Sourcepub fn get_var_with_origin(
&self,
var_id: VarId,
span: Span,
) -> Result<Value, ShellError>
pub fn get_var_with_origin( &self, var_id: VarId, span: Span, ) -> Result<Value, ShellError>
Lookup a variable, erroring if it is not found
While the passed-in span will be used for errors, the returned value has the span from where it was originally defined
Sourcepub fn get_config(&self, engine_state: &EngineState) -> Arc<Config>
pub fn get_config(&self, engine_state: &EngineState) -> Arc<Config>
Sourcepub fn update_config(
&mut self,
engine_state: &EngineState,
) -> Result<(), ShellError>
pub fn update_config( &mut self, engine_state: &EngineState, ) -> Result<(), ShellError>
Update the local config with the config stored in the config environment variable. Run
this after assigning to $env.config.
The config will be updated with successfully parsed values even if an error occurs.
pub fn add_var(&mut self, var_id: VarId, value: Value)
pub fn remove_var(&mut self, var_id: VarId)
pub fn add_env_var(&mut self, var: String, value: Value)
pub fn set_last_exit_code(&mut self, code: i32, span: Span)
pub fn set_last_error(&mut self, error: &ShellError)
pub fn last_overlay_name(&self) -> Result<String, ShellError>
Sourcepub fn captures_to_stack(&self, captures: Vec<(VarId, Value)>) -> Stack
pub fn captures_to_stack(&self, captures: Vec<(VarId, Value)>) -> Stack
Like [captures_to_stack_preserve_out_dest], but sets the new scope up to collect output into a Value.
Sourcepub fn captures_to_stack_preserve_out_dest(
&self,
captures: Vec<(VarId, Value)>,
) -> Stack
pub fn captures_to_stack_preserve_out_dest( &self, captures: Vec<(VarId, Value)>, ) -> Stack
Creates a derived stack for a new scope, with the given captures.
pub fn gather_captures( &self, engine_state: &EngineState, captures: &[(VarId, Span)], ) -> Stack
Sourcepub fn get_env_vars(&self, engine_state: &EngineState) -> HashMap<String, Value>
pub fn get_env_vars(&self, engine_state: &EngineState) -> HashMap<String, Value>
Flatten the env var scope frames into one frame
Sourcepub fn get_stack_env_vars(&self) -> HashMap<String, Value>
pub fn get_stack_env_vars(&self) -> HashMap<String, Value>
Get flattened environment variables only from the stack
Sourcepub fn get_stack_overlay_env_vars(
&self,
overlay_name: &str,
) -> HashMap<String, Value>
pub fn get_stack_overlay_env_vars( &self, overlay_name: &str, ) -> HashMap<String, Value>
Get flattened environment variables only from the stack and one overlay
Get hidden envs, but without envs defined previously in excluded_overlay_name.
Sourcepub fn get_env_var_names(&self, engine_state: &EngineState) -> HashSet<String>
pub fn get_env_var_names(&self, engine_state: &EngineState) -> HashSet<String>
Same as get_env_vars, but returns only the names as a HashSet
pub fn get_env_var<'a>( &'a self, engine_state: &'a EngineState, name: &str, ) -> Option<&'a Value>
pub fn has_env_var(&self, engine_state: &EngineState, name: &str) -> bool
Sourcepub fn remove_env_var(&mut self, engine_state: &EngineState, name: &str) -> bool
pub fn remove_env_var(&mut self, engine_state: &EngineState, name: &str) -> bool
Removes name from the stack. If it was not on the stack and lives in engine_state,
marks it hidden in env_hidden. Returns true if the variable was found and removed.
Use this for temporary bookkeeping removals (e.g. FILE_PWD, canary variables) where
the goal is to clean up a stack-level value without necessarily hiding the engine-state
baseline. Use Self::hide_env_var when the intent is to make the variable invisible
to subsequent lookups (e.g. hide-env).
Sourcepub fn hide_env_var(&mut self, engine_state: &EngineState, name: &str) -> bool
pub fn hide_env_var(&mut self, engine_state: &EngineState, name: &str) -> bool
Hides name so it is no longer visible to subsequent lookups. Removes it from the stack
and, if no stack shadowing remains, also marks the engine_state baseline as hidden in
env_hidden. Returns true if the variable was found.
This is the correct method for hide-env and redirect_env; it ensures that a variable
set in engine_state (from a previous REPL merge) cannot be seen after hiding even when a
stack-level override (e.g. an empty-string assignment) was present at hide time.
pub fn has_env_overlay(&self, name: &str, engine_state: &EngineState) -> bool
pub fn is_overlay_active(&self, name: &str) -> bool
pub fn add_overlay(&mut self, name: String)
pub fn remove_overlay(&mut self, name: &str)
Sourcepub fn stdout(&self) -> &OutDest
pub fn stdout(&self) -> &OutDest
Returns the OutDest to use for the current command’s stdout.
This will be the pipe redirection if one is set,
otherwise it will be the current file redirection,
otherwise it will be the process’s stdout indicated by OutDest::Inherit.
Sourcepub fn stderr(&self) -> &OutDest
pub fn stderr(&self) -> &OutDest
Returns the OutDest to use for the current command’s stderr.
This will be the pipe redirection if one is set,
otherwise it will be the current file redirection,
otherwise it will be the process’s stderr indicated by OutDest::Inherit.
Sourcepub fn pipe_stdout(&self) -> Option<&OutDest>
pub fn pipe_stdout(&self) -> Option<&OutDest>
Returns the OutDest of the pipe redirection applied to the current command’s stdout.
Sourcepub fn pipe_stderr(&self) -> Option<&OutDest>
pub fn pipe_stderr(&self) -> Option<&OutDest>
Returns the OutDest of the pipe redirection applied to the current command’s stderr.
Sourcepub fn start_collect_value(&mut self) -> StackCollectValueGuard<'_>
pub fn start_collect_value(&mut self) -> StackCollectValueGuard<'_>
Temporarily set the pipe stdout redirection to OutDest::Value.
This is used before evaluating an expression into a Value.
Sourcepub fn use_call_arg_out_dest(&mut self) -> StackCallArgGuard<'_>
pub fn use_call_arg_out_dest(&mut self) -> StackCallArgGuard<'_>
Temporarily use the output redirections in the parent scope.
This is used before evaluating an argument to a call.
Sourcepub fn push_redirection(
&mut self,
stdout: Option<Redirection>,
stderr: Option<Redirection>,
) -> StackIoGuard<'_>
pub fn push_redirection( &mut self, stdout: Option<Redirection>, stderr: Option<Redirection>, ) -> StackIoGuard<'_>
Temporarily apply redirections to stdout and/or stderr.
Trait Implementations§
Source§impl Deref for StackIoGuard<'_>
impl Deref for StackIoGuard<'_>
Source§impl DerefMut for StackIoGuard<'_>
impl DerefMut for StackIoGuard<'_>
Source§impl Drop for StackIoGuard<'_>
impl Drop for StackIoGuard<'_>
Auto Trait Implementations§
impl<'a> Freeze for StackIoGuard<'a>
impl<'a> !RefUnwindSafe for StackIoGuard<'a>
impl<'a> Send for StackIoGuard<'a>
impl<'a> Sync for StackIoGuard<'a>
impl<'a> Unpin for StackIoGuard<'a>
impl<'a> UnsafeUnpin for StackIoGuard<'a>
impl<'a> !UnwindSafe for StackIoGuard<'a>
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> 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> IntoSpanned for T
impl<T> IntoSpanned for T
Source§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more