use super::*; use std::marker::PhantomData; #[derive(Debug)] pub(crate) struct IgnoreErrors> { _s: PhantomData, expr: E, } impl> IgnoreErrors { pub(crate) fn new(expr: E) -> Self { Self { _s: PhantomData, expr, } } } impl> Expression for IgnoreErrors { fn write_shell(&self, writer: &mut impl std::fmt::Write) -> std::fmt::Result { self.expr.write_shell(writer)?; Ok(()) } } impl> Expression for IgnoreErrors { fn write_shell(&self, writer: &mut impl std::fmt::Write) -> std::fmt::Result { self.expr.write_shell(writer)?; Ok(()) } } impl> Expression for IgnoreErrors { fn write_shell(&self, writer: &mut impl std::fmt::Write) -> std::fmt::Result { self.expr.write_shell(writer)?; Ok(()) } } impl> Expression for IgnoreErrors { fn write_shell(&self, writer: &mut impl std::fmt::Write) -> std::fmt::Result { write!(writer, r#"$($_tmp_err_action = $ErrorActionPreference;"#)?; write!(writer, r#"$ErrorActionPreference = "Continue";"#)?; self.expr.write_shell(writer)?; write!(writer, ";")?; write!(writer, r#"$ErrorActionPreference = $_tmp_err_action)"#)?; Ok(()) } }