//! [![Banner](https://raw.githubusercontent.com/nvzqz/static-assertions-rs/assets/Banner.png)](https://github.com/nvzqz/static-assertions-rs) //! //!
//! //! Assertions to ensure correct assumptions about constants, types, and more. //! //! _All_ checks provided by this crate are performed at [compile-time]. This //! allows for finding errors quickly and early when it comes to ensuring //! certain features or aspects of a codebase. These macros are especially //! important when exposing a public API that requires types to be the same size //! or implement certain traits. //! //! # Usage //! //! This crate is available [on crates.io][crate] and can be used by adding the //! following to your project's [`Cargo.toml`]: //! //! ```toml //! [dependencies] //! static_assertions = "1.1.0" //! ``` //! //! and this to your crate root (`main.rs` or `lib.rs`): //! //! ``` //! #[macro_use] //! extern crate static_assertions; //! # fn main() {} //! ``` //! //! When using [Rust 2018 edition][2018], the following shorthand can help if //! having `#[macro_use]` is undesirable. //! //! ```edition2018 //! extern crate static_assertions as sa; //! //! sa::const_assert!(true); //! ``` //! //! # Examples //! //! Very thorough examples are provided in the docs for //! [each individual macro](#macros). Failure case examples are also documented. //! //! # Changes //! //! See [`CHANGELOG.md`](https://github.com/nvzqz/static-assertions-rs/blob/master/CHANGELOG.md) //! for an exhaustive list of what has changed from one version to another. //! //! # Donate //! //! This project is made freely available (as in free beer), but unfortunately //! not all beer is free! So, if you would like to buy me a beer (or coffee or //! *more*), then consider supporting my work that's benefited your project //! and thousands of others. //! //! //!