| 12345678910111213141516171819202122232425262728293031323334 |
- // SPDX-License-Identifier: GPL-2.0
- //! Static assert.
- /// Static assert (i.e. compile-time assert).
- ///
- /// Similar to C11 [`_Static_assert`] and C++11 [`static_assert`].
- ///
- /// The feature may be added to Rust in the future: see [RFC 2790].
- ///
- /// [`_Static_assert`]: https://en.cppreference.com/w/c/language/_Static_assert
- /// [`static_assert`]: https://en.cppreference.com/w/cpp/language/static_assert
- /// [RFC 2790]: https://github.com/rust-lang/rfcs/issues/2790
- ///
- /// # Examples
- ///
- /// ```
- /// static_assert!(42 > 24);
- /// static_assert!(core::mem::size_of::<u8>() == 1);
- ///
- /// const X: &[u8] = b"bar";
- /// static_assert!(X[1] == b'a');
- ///
- /// const fn f(x: i32) -> i32 {
- /// x + 2
- /// }
- /// static_assert!(f(40) == 42);
- /// ```
- #[macro_export]
- macro_rules! static_assert {
- ($condition:expr) => {
- const _: () = core::assert!($condition);
- };
- }
|