summary refs log tree commit diff
path: root/assertions/Cargo.toml
Commit message (Collapse)AuthorAge
* crosvm: Split sub-crates into independent workspacepaulhsia2019-01-03
| | | | | | | | | | | | | | | | | | | Split sub-crates under crosvm root directory into several independent workspaces for adding ebuild files for those crates. data_model and sys_util could only be built by emerge after creating their ebuilds. BUG=chromium:916921 TEST='emerge-eve crosvm' TEST=Run 'cargo build' under crosvm directory Change-Id: I2dddbbb7c7344e643183a5885e867f134b299591 Reviewed-on: https://chromium-review.googlesource.com/1385972 Commit-Ready: Chih-Yang Hsia <paulhsia@chromium.org> Tested-by: Chih-Yang Hsia <paulhsia@chromium.org> Reviewed-by: Chirantan Ekbote <chirantan@chromium.org> Reviewed-by: Zach Reizner <zachr@chromium.org>
* assertions: Add compile-time assertion macroDavid Tolnay2018-12-09
A static assertion is particularly appropriate when unsafe code relies on two types to have the same size, or on some type to have a particular size. This is a pattern I observed in USB code, for example: https://chromium.googlesource.com/chromiumos/platform/crosvm/+/ff7068402e6cff527a8558adf597b1596f075166/devices/src/usb/xhci/xhci_abi_schema.rs#522 EXAMPLE: extern crate assertions; use assertions::const_assert; fn main() { const_assert!(std::mem::size_of::<String>() == 24); } EXAMPLE THAT FAILS TO COMPILE: extern crate assertions; use assertions::const_assert; fn main() { // fails to compile: const_assert!(std::mem::size_of::<String>() == 8); } FAILURE LOOKS LIKE: error[E0271]: type mismatch resolving `<[(); 0] as assertions::Expr>::Value == assertions::True` --> src/main.rs:5:5 | 5 | const_assert!(std::mem::size_of::<String>() == 8); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `assertions::True`, found struct `assertions::False` TEST=`cargo test` the new crate Change-Id: I6abe36d5a6a4bd4acb1a02e3aa7c1ece5357f007 Reviewed-on: https://chromium-review.googlesource.com/1366819 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Tested-by: David Tolnay <dtolnay@chromium.org> Reviewed-by: Dylan Reid <dgreid@chromium.org>