summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/compose/environment.rs25
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(),