1use stream_cancel::Trigger;
2
3#[allow(clippy::module_name_repetitions)]
4pub struct DisabledTrigger {
5 trigger: Option<Trigger>,
6}
7
8impl DisabledTrigger {
9 #[must_use]
10 pub fn new(t: Trigger) -> Self {
11 Self { trigger: Some(t) }
12 }
13
14 #[must_use]
15 pub fn into_inner(mut self) -> Trigger {
16 self.trigger.take().unwrap_or_else(|| unreachable!())
17 }
18}
19
20impl Drop for DisabledTrigger {
21 fn drop(&mut self) {
22 if let Some(trigger) = self.trigger.take() {
23 trigger.disable();
24 }
25 }
26}
27
28impl From<Trigger> for DisabledTrigger {
29 fn from(t: Trigger) -> Self {
30 Self::new(t)
31 }
32}