1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
use glib::Enum;
use gtk::glib;
use crate::shared::flatpak::FlatpakOperationKind;
use crate::shared::task::{FlatpakTaskKind, Task};
#[derive(Copy, Debug, Clone, Eq, PartialEq, Enum)]
#[repr(u32)]
#[enum_type(name = "SkTaskKind")]
#[derive(Default)]
pub enum SkTaskKind {
FlatpakDryRun,
FlatpakInstall,
FlatpakUninstall,
FlatpakUpdate,
FlatpakUpdateInstallation,
Unknown,
#[default]
None,
}
impl SkTaskKind {
pub fn from_task_data(data: &Task) -> Self {
if let Some(flatpak_task) = data.flatpak_task() {
if flatpak_task.dry_run {
return Self::FlatpakDryRun;
} else {
return flatpak_task.kind.into();
}
}
Self::Unknown
}
pub fn targets_single_package(&self) -> bool {
self == &Self::FlatpakInstall
|| self == &Self::FlatpakUninstall
|| self == &Self::FlatpakUpdate
}
}
impl From<FlatpakTaskKind> for SkTaskKind {
fn from(kind: FlatpakTaskKind) -> Self {
match kind {
FlatpakTaskKind::Install => Self::FlatpakInstall,
FlatpakTaskKind::InstallRefFile => Self::FlatpakInstall,
FlatpakTaskKind::InstallBundleFile => Self::FlatpakInstall,
FlatpakTaskKind::Update => Self::FlatpakUpdate,
FlatpakTaskKind::UpdateInstallation => Self::FlatpakUpdateInstallation,
FlatpakTaskKind::Uninstall => Self::FlatpakUninstall,
FlatpakTaskKind::None => Self::None,
}
}
}
impl From<FlatpakOperationKind> for SkTaskKind {
fn from(kind: FlatpakOperationKind) -> Self {
match kind {
FlatpakOperationKind::Install => Self::FlatpakInstall,
FlatpakOperationKind::InstallBundle => Self::FlatpakInstall,
FlatpakOperationKind::Update => Self::FlatpakUpdate,
FlatpakOperationKind::Uninstall => Self::FlatpakUninstall,
FlatpakOperationKind::None => Self::None,
}
}
}