mirror of
https://github.com/eyre-rs/eyre.git
synced 2025-09-28 21:41:58 +00:00
30 lines
607 B
Rust
30 lines
607 B
Rust
mod drop;
|
|
|
|
use self::drop::{DetectDrop, Flag};
|
|
use eyre::ErrReport;
|
|
use std::marker::Unpin;
|
|
use std::mem;
|
|
|
|
#[test]
|
|
fn test_error_size() {
|
|
assert_eq!(mem::size_of::<ErrReport>(), mem::size_of::<usize>());
|
|
}
|
|
|
|
#[test]
|
|
fn test_null_pointer_optimization() {
|
|
assert_eq!(mem::size_of::<Result<(), ErrReport>>(), mem::size_of::<usize>());
|
|
}
|
|
|
|
#[test]
|
|
fn test_autotraits() {
|
|
fn assert<E: Unpin + Send + Sync + 'static>() {}
|
|
assert::<ErrReport>();
|
|
}
|
|
|
|
#[test]
|
|
fn test_drop() {
|
|
let has_dropped = Flag::new();
|
|
drop(ErrReport::new(DetectDrop::new(&has_dropped)));
|
|
assert!(has_dropped.get());
|
|
}
|