* Don't show desktop notification on error (if `skip_notify = true`) (#275) * Use ─ (U+2500) to draw borders (#282) * Adds Pclinuxos support (#283) * Add Devkitpro Pacman support (#291) * Added support for Neovim package manager lazy.nvim (#293) * Added support for lazy.nvim From https://github.com/folke/lazy.nvim Authored-by: Jacob Lane Ledbetter <jledbetter460@gmail.com> * Make garuda-update update AUR packages by default (#296) * fix(#298): Don't throw error if no Helm repository found (#305) * Skip .NET when `dotnet tool list` is not successful (#302) * feat(pacstall): add `-y` flag variant (#312) * Add openSUSE MicroOS support (#315) * Adds notify-send timeout of 10s (#318) * Don't run yum when rpm-ostree is available (#313) * don't run yum when rpm-ostree is available * Clippy fix * rpm-ostree: set default value to true * Fixes if loop error * Fixes gem update --system requires sudo now (#317) * Fixes gem update --system requires sudo now * rubygem: Adds arg -EH to sudo * Use fixed nala path instead of which(nala) (#314) * Adds notify-send bug warning when topgrade is run (#324) * Adds notify-send bug warning when topgrade is run * fix typo + clippy * notify-send warning respects skip_notify flag * nix: Adds additional arguments support (#325) * Adds pip-review and pipupgrade support (#316) * Adds pip-review and pipupgrade support * Python: fixes pip_review and pipupgrade * v10.2.5 patch (#329) * WSL: Adds new wsl --update flags (#327) * wsl: Updates available flags * Clippy fix * Add WslUpdate runner * wsl: Code Typo * wsl: Code Typos * wsl: Code Typos * wsl: Code Typo * Adds AM Package Manager (#328) * Adds AM Package Manager * Clippy fixes * Cargo fmt * Moves am to linux only in main file --------- Co-authored-by: Guilherme Silva <626206+guihkx@users.noreply.github.com> Co-authored-by: Gabriel Augendre <gabriel@augendre.info> Co-authored-by: Cat Core <34719527+arthurbambou@users.noreply.github.com> Co-authored-by: Hugo Haas <hugoh@hugoh.net> Co-authored-by: Baptiste <32563450+BapRx@users.noreply.github.com> Co-authored-by: bbx0 <39773919+bbx0@users.noreply.github.com> Co-authored-by: Sourajyoti Basak <wiz28@protonmail.com>
46 lines
993 B
Rust
46 lines
993 B
Rust
use std::borrow::Cow;
|
|
|
|
pub enum StepResult {
|
|
Success,
|
|
Failure,
|
|
Ignored,
|
|
Skipped(String),
|
|
}
|
|
|
|
impl StepResult {
|
|
pub fn failed(&self) -> bool {
|
|
match self {
|
|
StepResult::Success | StepResult::Ignored | StepResult::Skipped(_) => false,
|
|
StepResult::Failure => true,
|
|
}
|
|
}
|
|
}
|
|
|
|
type CowString<'a> = Cow<'a, str>;
|
|
type ReportData<'a> = Vec<(CowString<'a>, StepResult)>;
|
|
pub struct Report<'a> {
|
|
data: ReportData<'a>,
|
|
}
|
|
|
|
impl<'a> Report<'a> {
|
|
pub fn new() -> Self {
|
|
Self { data: Vec::new() }
|
|
}
|
|
|
|
pub fn push_result<M>(&mut self, result: Option<(M, StepResult)>)
|
|
where
|
|
M: Into<CowString<'a>>,
|
|
{
|
|
if let Some((key, success)) = result {
|
|
let key = key.into();
|
|
|
|
debug_assert!(!self.data.iter().any(|(k, _)| k == &key), "{key} already reported");
|
|
self.data.push((key, success));
|
|
}
|
|
}
|
|
|
|
pub fn data(&self) -> &ReportData<'a> {
|
|
&self.data
|
|
}
|
|
}
|