[−][src]Function shellfn_core::execute_iter_result_result
pub fn execute_iter_result_result<T, TArg, TEnvKey, TEnvVal, TOuterError, TInnerError>(
cmd: impl AsRef<OsStr>,
args: impl IntoIterator<Item = TArg>,
envs: impl IntoIterator<Item = (TEnvKey, TEnvVal)>
) -> Result<impl Iterator<Item = Result<T, TInnerError>>, TOuterError> where
T: FromStr,
TArg: AsRef<OsStr>,
TEnvKey: AsRef<OsStr>,
TEnvVal: AsRef<OsStr>,
<T as FromStr>::Err: StdError,
TOuterError: From<Error<<T as FromStr>::Err>>,
TInnerError: From<Error<<T as FromStr>::Err>>,
Executes command with args and environment variables, parses output line by line
- On invalid command: return error
- On error exit code: break iterator
- On parsing failure: yield error item
- Possible errors: ProcessNotSpawned, StdoutUnreadable (item error), ParsingError (item error)
Designed for
use shellfn::shell; use std::error::Error; #[shell] fn command() -> Result<impl Iterator<Item = Result<u32, Box<Error + 'static>>>, Box<Error>> { "echo 1; echo 2; echo 3" } assert_eq!(vec![1, 2, 3], command().unwrap().map(Result::unwrap).collect::<Vec<_>>())