pub struct SignalBool(/* private fields */);
Implementations§
Source§impl SignalBool
impl SignalBool
Sourcepub fn new(signals: &[Signal], flag: Flag) -> Result<Self>
pub fn new(signals: &[Signal], flag: Flag) -> Result<Self>
Register an array of signals to set the internal flag to true when received. A signal
registered with multiple SignalBool
s will interfere with each other.
Examples found in repository?
examples/sigint.rs (lines 7-9)
6fn main() {
7 let mut sb = signalbool::SignalBool::new(
8 &[signalbool::Signal::SIGINT], signalbool::Flag::Interrupt,
9 ).unwrap();
10 let mut count = 0;
11
12 loop {
13 sleep(10);
14 if sb.caught() {
15 println!("Caught SIGINT.");
16 count += 1;
17 sb.reset();
18 if count == 3 {
19 break;
20 }
21 }
22 }
23}
More examples
examples/crossplatform.rs (lines 7-9)
6fn main() {
7 let mut sb = signalbool::SignalBool::new(
8 &[signalbool::Signal::SIGINT], signalbool::Flag::Restart,
9 ).unwrap();
10 let mut count = 0;
11
12 loop {
13 sleep(Duration::from_millis(100));
14 if sb.caught() {
15 println!("Caught SIGINT.");
16 count += 1;
17 sb.reset();
18 if count == 3 {
19 break;
20 }
21 }
22 }
23}
Sourcepub fn reset(&mut self)
pub fn reset(&mut self)
Reset the internal flag to false.
Examples found in repository?
examples/sigint.rs (line 17)
6fn main() {
7 let mut sb = signalbool::SignalBool::new(
8 &[signalbool::Signal::SIGINT], signalbool::Flag::Interrupt,
9 ).unwrap();
10 let mut count = 0;
11
12 loop {
13 sleep(10);
14 if sb.caught() {
15 println!("Caught SIGINT.");
16 count += 1;
17 sb.reset();
18 if count == 3 {
19 break;
20 }
21 }
22 }
23}
More examples
examples/crossplatform.rs (line 17)
6fn main() {
7 let mut sb = signalbool::SignalBool::new(
8 &[signalbool::Signal::SIGINT], signalbool::Flag::Restart,
9 ).unwrap();
10 let mut count = 0;
11
12 loop {
13 sleep(Duration::from_millis(100));
14 if sb.caught() {
15 println!("Caught SIGINT.");
16 count += 1;
17 sb.reset();
18 if count == 3 {
19 break;
20 }
21 }
22 }
23}
Sourcepub fn caught(&self) -> bool
pub fn caught(&self) -> bool
Check whether we’ve caught a registered signal.
Examples found in repository?
examples/sigint.rs (line 14)
6fn main() {
7 let mut sb = signalbool::SignalBool::new(
8 &[signalbool::Signal::SIGINT], signalbool::Flag::Interrupt,
9 ).unwrap();
10 let mut count = 0;
11
12 loop {
13 sleep(10);
14 if sb.caught() {
15 println!("Caught SIGINT.");
16 count += 1;
17 sb.reset();
18 if count == 3 {
19 break;
20 }
21 }
22 }
23}
More examples
examples/crossplatform.rs (line 14)
6fn main() {
7 let mut sb = signalbool::SignalBool::new(
8 &[signalbool::Signal::SIGINT], signalbool::Flag::Restart,
9 ).unwrap();
10 let mut count = 0;
11
12 loop {
13 sleep(Duration::from_millis(100));
14 if sb.caught() {
15 println!("Caught SIGINT.");
16 count += 1;
17 sb.reset();
18 if count == 3 {
19 break;
20 }
21 }
22 }
23}
Auto Trait Implementations§
impl Freeze for SignalBool
impl RefUnwindSafe for SignalBool
impl Send for SignalBool
impl Sync for SignalBool
impl Unpin for SignalBool
impl UnwindSafe for SignalBool
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