pub struct EnvConfig<A, FM, L, V, EX, WD, B, N, ERR> {
pub interactive: bool,
pub args_env: A,
pub file_desc_manager_env: FM,
pub last_status_env: L,
pub var_env: V,
pub exec_env: EX,
pub working_dir_env: WD,
pub builtin_env: B,
pub fn_name: PhantomData<N>,
pub fn_error: PhantomData<ERR>,
}Expand description
A struct for configuring a new Env instance.
It implements Default (via DefaultEnvConfig alias) so it is possible
to selectively override certain environment modules while retaining the rest
of the default implementations.
let env = Env::with_config(EnvConfig {
args_env: ArgsEnv::with_name(Arc::new(String::from("my_shell"))),
.. DefaultEnvConfig::new().expect("failed to create config")
});
assert_eq!(**env.name(), "my_shell");Fields§
§interactive: boolSpecify if the environment is running in interactive mode.
args_env: AAn implementation of ArgumentsEnvironment and possibly SetArgumentsEnvironment.
file_desc_manager_env: FMAn implementation of FileDescManagerEnvironment.
last_status_env: LAn implementation of LastStatusEnvironment.
var_env: VAn implementation of VariableEnvironment, UnsetVariableEnvironment, and
ExportedVariableEnvironment.
exec_env: EXAn implementation of ExecutableEnvironment.
working_dir_env: WDAn implementation of WorkingDirectoryEnvironment.
builtin_env: BAn implementation of BuiltinEnvironment.
fn_name: PhantomData<N>A marker to indicate the type used for function names.
fn_error: PhantomData<ERR>A marker to indicate the type used for function errors.
Implementations§
Source§impl<A, FM, L, V, EX, WD, B, N, ERR> EnvConfig<A, FM, L, V, EX, WD, B, N, ERR>
impl<A, FM, L, V, EX, WD, B, N, ERR> EnvConfig<A, FM, L, V, EX, WD, B, N, ERR>
Sourcepub fn change_args_env<T>(
self,
args_env: T,
) -> EnvConfig<T, FM, L, V, EX, WD, B, N, ERR>
pub fn change_args_env<T>( self, args_env: T, ) -> EnvConfig<T, FM, L, V, EX, WD, B, N, ERR>
Change the type of the args_env instance.
Sourcepub fn change_file_desc_manager_env<T>(
self,
file_desc_manager_env: T,
) -> EnvConfig<A, T, L, V, EX, WD, B, N, ERR>
pub fn change_file_desc_manager_env<T>( self, file_desc_manager_env: T, ) -> EnvConfig<A, T, L, V, EX, WD, B, N, ERR>
Change the type of the file_desc_manager_env instance.
Sourcepub fn change_last_status_env<T>(
self,
last_status_env: T,
) -> EnvConfig<A, FM, T, V, EX, WD, B, N, ERR>
pub fn change_last_status_env<T>( self, last_status_env: T, ) -> EnvConfig<A, FM, T, V, EX, WD, B, N, ERR>
Change the type of the last_status_env instance.
Sourcepub fn change_var_env<T>(
self,
var_env: T,
) -> EnvConfig<A, FM, L, T, EX, WD, B, N, ERR>
pub fn change_var_env<T>( self, var_env: T, ) -> EnvConfig<A, FM, L, T, EX, WD, B, N, ERR>
Change the type of the var_env instance.
Sourcepub fn change_exec_env<T>(
self,
exec_env: T,
) -> EnvConfig<A, FM, L, V, T, WD, B, N, ERR>
pub fn change_exec_env<T>( self, exec_env: T, ) -> EnvConfig<A, FM, L, V, T, WD, B, N, ERR>
Change the type of the exec_env instance.
Sourcepub fn change_working_dir_env<T>(
self,
working_dir_env: T,
) -> EnvConfig<A, FM, L, V, EX, T, B, N, ERR>
pub fn change_working_dir_env<T>( self, working_dir_env: T, ) -> EnvConfig<A, FM, L, V, EX, T, B, N, ERR>
Change the type of the working_dir_env instance.
Sourcepub fn change_builtin_env<T>(
self,
builtin_env: T,
) -> EnvConfig<A, FM, L, V, EX, WD, T, N, ERR>
pub fn change_builtin_env<T>( self, builtin_env: T, ) -> EnvConfig<A, FM, L, V, EX, WD, T, N, ERR>
Change the type of the builtin_env instance.
Sourcepub fn change_fn_name<T>(self) -> EnvConfig<A, FM, L, V, EX, WD, B, T, ERR>
pub fn change_fn_name<T>(self) -> EnvConfig<A, FM, L, V, EX, WD, B, T, ERR>
Change the type of the fn_name instance.
Sourcepub fn change_fn_error<T>(self) -> EnvConfig<A, FM, L, V, EX, WD, B, N, T>
pub fn change_fn_error<T>(self) -> EnvConfig<A, FM, L, V, EX, WD, B, N, T>
Change the type of the fn_error instance.