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
//! Provider-agnostic release model and the [`ReleaseProvider`] trait.
//!
//! The self-updater talks to a release backend only through this trait. To use
//! a different source (GitLab, a self-hosted index, a mirror), implement
//! `ReleaseProvider` and swap the constructor in [`super::provider`]. Everything
//! downstream (status computation, download, checksum, swap) is backend-neutral
//! — it only consumes [`LatestRelease`]/[`Asset`] and their plain URLs.
use UpdateError;
/// A single downloadable release artifact (binary, archive, or checksums file).
/// The newest stable app release and everything needed to download it.
/// Source of release information for the self-updater. Implement this and swap
/// the constructor in [`super::provider`] to change backends without touching
/// any caller.