diff options
Diffstat (limited to 'src/compose')
-rw-r--r-- | src/compose/environment.rs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/compose/environment.rs b/src/compose/environment.rs index 7107d57..ea6d070 100644 --- a/src/compose/environment.rs +++ b/src/compose/environment.rs @@ -1,5 +1,29 @@ use std::collections::HashMap; +/// Record the shell state +/// +/// The [Environment] struct keeps track of various fields, all relating to the +/// shell state. The environment is the first thing setup at the beginning of +/// the shell, and is maintained throughout the lifetime of the process. +/// +/// Both [crate::Poem]::read() and [crate::Poem]::recite() rely on this struct +/// for various functions and features. +/// +/// # Fields +/// aliases - A table of aliases, set by the user using the built-in 'alias' +/// bins - A lookup table for +x files, constructed from the $PATH +/// cs - Indication of callstack level, helpful for recursively dealing with +/// aliases +/// +/// # Examples +/// ``` +/// fn main() -> Result<(), io::Error> { +/// let mut env = compose::env(); +/// let poem = Poem::read("alias", &mut env)?; +/// poem.recite(&mut env)?; +/// () +/// } +/// ``` pub struct Environment { pub aliases: HashMap<String, String>, pub bins: Vec<String>, @@ -7,6 +31,7 @@ pub struct Environment { } impl Environment { + /// Initialize an [Environment] struct with the default values pub fn new() -> Self { Environment { aliases: HashMap::new(), |