1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
use rocket::{fairing::Fairing, Rocket};

/// Attach a fairing iff `condition == true`
pub trait ConditionalAttach {
    fn attach_if(self, condition: bool, fairing: impl Fairing) -> Self;
}

pub mod prelude {
    pub use crate::ConditionalAttach;
}

impl ConditionalAttach for Rocket {
    #[inline]
    fn attach_if(self, condition: bool, fairing: impl Fairing) -> Self {
        if condition {
            self.attach(fairing)
        } else {
            self
        }
    }
}