Crate yash_env

source ·
Expand description

This crate defines the shell execution environment.

A shell execution environment, Env, is a collection of data that may affect or be affected by the execution of commands. The environment consists of application-managed parts and system-managed parts. Application-managed parts are implemented in pure Rust in this crate. Many application-managed parts like functions and variables can be manipulated independently of interactions with the underlying system. System-managed parts, on the other hand, depend on the underlying system. Attributes like the working directory and umask are managed by the system to be accessed only by interaction with the system interface.

The System trait is the interface to the system-managed parts. RealSystem provides an implementation for System that interacts with the underlying system. VirtualSystem is a dummy for simulating the system’s behavior without affecting the actual system.

Re-exports§

Modules§

  • Type definitions for built-in utilities.
  • Type definitions for functions.
  • Methods about passing source code to the parser.
  • Type definitions for I/O.
  • Type definitions for job management.
  • Type definitions for shell options
  • Working directory path handling
  • Type definitions for command execution.
  • Type definitions for signals
  • Runtime execution context stack
  • Utility for starting subshells
  • System and its implementors.
  • Signal and other event handling settings.
  • Items for shell variables

Structs§

  • Whole shell execution environment.