pub struct SingleInstanceOptions { /* private fields */ }Expand description
Options for single-instance mutex acquisition.
This builder is useful when an application wants to keep the single-instance configuration close to startup code while still using the default current-session behavior most of the time.
§Examples
let options = win_desktop_utils::SingleInstanceOptions::new(format!(
"demo-options-{}",
std::process::id()
))
.scope(win_desktop_utils::InstanceScope::CurrentSession);
let guard = win_desktop_utils::single_instance_with_options(&options)?;
assert!(guard.is_some());Implementations§
Source§impl SingleInstanceOptions
impl SingleInstanceOptions
Sourcepub fn new(app_id: impl Into<String>) -> Self
pub fn new(app_id: impl Into<String>) -> Self
Creates options for the current Windows session namespace.
Examples found in repository?
examples/single_instance_options.rs (line 2)
1fn main() -> Result<(), Box<dyn std::error::Error>> {
2 let options = win_desktop_utils::SingleInstanceOptions::new("demo-app-options")
3 .scope(win_desktop_utils::InstanceScope::CurrentSession);
4
5 match options.acquire()? {
6 Some(_guard) => {
7 println!("first instance using options");
8 println!("press Enter to exit");
9 let mut s = String::new();
10 std::io::stdin().read_line(&mut s)?;
11 }
12 None => {
13 println!("already running");
14 }
15 }
16
17 Ok(())
18}Sourcepub fn current_session(app_id: impl Into<String>) -> Self
pub fn current_session(app_id: impl Into<String>) -> Self
Creates options for the current Windows session namespace.
Sourcepub fn global(app_id: impl Into<String>) -> Self
pub fn global(app_id: impl Into<String>) -> Self
Creates options for the global Windows namespace.
Sourcepub fn scope(self, scope: InstanceScope) -> Self
pub fn scope(self, scope: InstanceScope) -> Self
Sets the mutex namespace scope.
Examples found in repository?
examples/single_instance_options.rs (line 3)
1fn main() -> Result<(), Box<dyn std::error::Error>> {
2 let options = win_desktop_utils::SingleInstanceOptions::new("demo-app-options")
3 .scope(win_desktop_utils::InstanceScope::CurrentSession);
4
5 match options.acquire()? {
6 Some(_guard) => {
7 println!("first instance using options");
8 println!("press Enter to exit");
9 let mut s = String::new();
10 std::io::stdin().read_line(&mut s)?;
11 }
12 None => {
13 println!("already running");
14 }
15 }
16
17 Ok(())
18}Sourcepub fn configured_scope(&self) -> InstanceScope
pub fn configured_scope(&self) -> InstanceScope
Returns the configured mutex namespace scope.
Sourcepub fn acquire(&self) -> Result<Option<InstanceGuard>>
pub fn acquire(&self) -> Result<Option<InstanceGuard>>
Attempts to acquire the configured single-instance guard.
Examples found in repository?
examples/single_instance_options.rs (line 5)
1fn main() -> Result<(), Box<dyn std::error::Error>> {
2 let options = win_desktop_utils::SingleInstanceOptions::new("demo-app-options")
3 .scope(win_desktop_utils::InstanceScope::CurrentSession);
4
5 match options.acquire()? {
6 Some(_guard) => {
7 println!("first instance using options");
8 println!("press Enter to exit");
9 let mut s = String::new();
10 std::io::stdin().read_line(&mut s)?;
11 }
12 None => {
13 println!("already running");
14 }
15 }
16
17 Ok(())
18}Trait Implementations§
Source§impl Clone for SingleInstanceOptions
impl Clone for SingleInstanceOptions
Source§fn clone(&self) -> SingleInstanceOptions
fn clone(&self) -> SingleInstanceOptions
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SingleInstanceOptions
impl Debug for SingleInstanceOptions
Source§impl PartialEq for SingleInstanceOptions
impl PartialEq for SingleInstanceOptions
impl Eq for SingleInstanceOptions
impl StructuralPartialEq for SingleInstanceOptions
Auto Trait Implementations§
impl Freeze for SingleInstanceOptions
impl RefUnwindSafe for SingleInstanceOptions
impl Send for SingleInstanceOptions
impl Sync for SingleInstanceOptions
impl Unpin for SingleInstanceOptions
impl UnsafeUnpin for SingleInstanceOptions
impl UnwindSafe for SingleInstanceOptions
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
Mutably borrows from an owned value. Read more