pub struct Updater { /* private fields */ }Expand description
The app-level updater: an UpdateConfig plus the parts only the UI side
needs — the poll cadence, the update window’s title, and hooks for posting a
notification and for saving state before the app restarts.
let updater = Updater::github("Acme", env!("CARGO_PKG_VERSION"), "acme/acme")
.codesign_requirement("anchor apple generic and certificate leaf[subject.OU] = XJDC46F35X")
.before_restart(|cx| save_session(cx));
guise::update::start(updater, cx);Implementations§
Source§impl Updater
impl Updater
Sourcepub fn new(
app: impl Into<String>,
version: impl Into<String>,
source: UpdateSource,
) -> Self
pub fn new( app: impl Into<String>, version: impl Into<String>, source: UpdateSource, ) -> Self
An updater for app at version, checking source.
Sourcepub fn github(
app: impl Into<String>,
version: impl Into<String>,
repo: impl Into<String>,
) -> Self
pub fn github( app: impl Into<String>, version: impl Into<String>, repo: impl Into<String>, ) -> Self
An updater reading a GitHub repo’s releases/latest, given owner/repo.
Sourcepub fn from_config(config: UpdateConfig) -> Self
pub fn from_config(config: UpdateConfig) -> Self
Wrap an existing UpdateConfig.
Sourcepub fn require_checksum(self, require: bool) -> Self
pub fn require_checksum(self, require: bool) -> Self
See UpdateConfig::require_checksum — recommended for Linux installs,
which have no signature to fall back on.
Sourcepub fn codesign_requirement(self, requirement: impl Into<String>) -> Self
pub fn codesign_requirement(self, requirement: impl Into<String>) -> Self
See UpdateConfig::codesign_requirement — required for macOS installs.
Sourcepub fn user_agent(self, user_agent: impl Into<String>) -> Self
pub fn user_agent(self, user_agent: impl Into<String>) -> Self
Override the User-Agent sent with every request.
Sourcepub fn slug(self, slug: impl Into<String>) -> Self
pub fn slug(self, slug: impl Into<String>) -> Self
Override the filesystem-safe name used for staging paths.
Sourcepub fn poll_every(self, every: Duration) -> Self
pub fn poll_every(self, every: Duration) -> Self
How often super::start re-checks while the app runs (default one hour).
Sourcepub fn window_title(self, title: impl Into<SharedString>) -> Self
pub fn window_title(self, title: impl Into<SharedString>) -> Self
Title for the windows super::check_now opens (default
“Software Update”, the platform convention).
Sourcepub fn on_notify(self, notify: impl Fn(&str, &str) + 'static) -> Self
pub fn on_notify(self, notify: impl Fn(&str, &str) + 'static) -> Self
Called with (title, body) when the install starts, finishes without a
window to restart into, or fails. guise never posts an OS notification
itself — that needs an app’s own bundle identity and permission state.
Sourcepub fn before_restart(self, hook: impl Fn(&mut App) + 'static) -> Self
pub fn before_restart(self, hook: impl Fn(&mut App) + 'static) -> Self
Called immediately before the app restarts into the new version — the place to persist a session, since the restart never goes through the normal quit path where an app would usually save.
Sourcepub fn config(&self) -> &UpdateConfig
pub fn config(&self) -> &UpdateConfig
The Send half, for the background check and install.
Sourcepub fn title(&self) -> &SharedString
pub fn title(&self) -> &SharedString
The update window’s title.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for Updater
impl !Send for Updater
impl !Sync for Updater
impl !UnwindSafe for Updater
impl Freeze for Updater
impl Unpin for Updater
impl UnsafeUnpin for Updater
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more