subst

Shell-like variable substitution for strings and byte strings.

Features

Variable names can consist of alphanumeric characters and underscores. They are allowed to start with numbers.

Examples

The substitute() function can be used to perform substitution on a &str. The variables can either be a HashMap or a BTreeMap.

rust let mut variables = HashMap::new(); variables.insert("name", "world"); assert_eq!(subst::substitute("Hello $name!", &variables)?, "Hello world!");

The variables can also be taken directly from the environment with the Env map.

rust assert_eq!( subst::substitute("$XDG_CONFIG_HOME/my-app/config.toml", &subst::Env)?, "/home/user/.config/my-app/config.toml", );

Substitution can also be done on byte strings using the substitute_bytes() function.

rust let mut variables = HashMap::new(); variables.insert("name", b"world"); assert_eq!(subst::substitute_bytes(b"Hello $name!", &variables)?, b"Hello world!");