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
use std::hash::Hash;
use flatpak::prelude::*;
use flatpak::{Installation, InstalledRef, Remote};
use gtk::glib;
use serde::{Deserialize, Serialize};
use zbus::zvariant::Type;
use crate::shared::flatpak::info::RemoteInfo;
#[derive(Default, Deserialize, Serialize, Type, Debug, Clone, Eq, PartialEq, Hash, glib::Boxed)]
#[boxed_type(name = "PackageInfo", nullable)]
pub struct PackageInfo {
pub ref_: String,
pub remote: RemoteInfo,
}
impl PackageInfo {
pub fn new(ref_: String, remote: RemoteInfo) -> Self {
Self { ref_, remote }
}
pub fn from_flatpak(
installed_ref: &InstalledRef,
remote: &Remote,
installation: &Installation,
) -> Self {
let ref_ = installed_ref.format_ref().unwrap().to_string();
let remote = RemoteInfo::from_flatpak(remote, installation);
Self { ref_, remote }
}
}