diff options
Diffstat (limited to 'examples/t-cfg-resources.rs')
-rw-r--r-- | examples/t-cfg-resources.rs | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/examples/t-cfg-resources.rs b/examples/t-cfg-resources.rs new file mode 100644 index 00000000..a8efe79e --- /dev/null +++ b/examples/t-cfg-resources.rs @@ -0,0 +1,36 @@ +//! [compile-pass] check that `#[cfg]` attributes applied on resources work +//! +#![no_main] +#![no_std] + +use panic_halt as _; + +#[rtfm::app(device = lm3s6965)] +const APP: () = { + struct Resources { + // A resource + #[init(0)] + shared: u32, + + // A conditionally compiled resource behind feature_x + #[cfg(feature = "feature_x")] + x: u32, + + dummy: (), + } + + #[init] + fn init(_: init::Context) -> init::LateResources { + init::LateResources { + // The feature needs to be applied everywhere x is defined or used + #[cfg(feature = "feature_x")] + x: 0, + dummy: (), // dummy such that we have at least one late resource + } + } + + #[idle] + fn idle(_cx: idle::Context) -> ! { + loop {} + } +}; |