9cb9346005
* advance * aligned * borrowed * calculate * debugable * debuggable * declarations * desugaring * documentation * enclave * ignorable * initialized * iterator * kaboom * monomorphization * nonexistent * optimizer * panicking * process * reentrant * rustonomicon * the * uninitialized Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
38 lines
1.0 KiB
Rust
38 lines
1.0 KiB
Rust
use core::asserting::{Capture, TryCaptureGeneric, TryCapturePrintable, Wrapper};
|
|
|
|
macro_rules! test {
|
|
($test_name:ident, $elem:expr, $captured_elem:expr, $output:literal) => {
|
|
#[test]
|
|
fn $test_name() {
|
|
let elem = $elem;
|
|
let mut capture = Capture::new();
|
|
assert!(capture.elem == None);
|
|
(&Wrapper(&elem)).try_capture(&mut capture);
|
|
assert!(capture.elem == $captured_elem);
|
|
assert_eq!(format!("{:?}", capture), $output);
|
|
}
|
|
};
|
|
}
|
|
|
|
#[derive(Debug, PartialEq)]
|
|
struct NoCopy;
|
|
|
|
#[derive(PartialEq)]
|
|
struct NoCopyNoDebug;
|
|
|
|
#[derive(Clone, Copy, PartialEq)]
|
|
struct NoDebug;
|
|
|
|
test!(
|
|
capture_with_non_copyable_and_non_debuggable_elem_has_correct_params,
|
|
NoCopyNoDebug,
|
|
None,
|
|
"N/A"
|
|
);
|
|
|
|
test!(capture_with_non_copyable_elem_has_correct_params, NoCopy, None, "N/A");
|
|
|
|
test!(capture_with_non_debuggable_elem_has_correct_params, NoDebug, None, "N/A");
|
|
|
|
test!(capture_with_copyable_and_debuggable_elem_has_correct_params, 1i32, Some(1i32), "1");
|