summaryrefslogtreecommitdiffstats
path: root/vendor/core-foundation/tests
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-30 03:59:35 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-30 03:59:35 +0000
commitd1b2d29528b7794b41e66fc2136e395a02f8529b (patch)
treea4a17504b260206dec3cf55b2dca82929a348ac2 /vendor/core-foundation/tests
parentReleasing progress-linux version 1.72.1+dfsg1-1~progress7.99u1. (diff)
downloadrustc-d1b2d29528b7794b41e66fc2136e395a02f8529b.tar.xz
rustc-d1b2d29528b7794b41e66fc2136e395a02f8529b.zip
Merging upstream version 1.73.0+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/core-foundation/tests')
-rw-r--r--vendor/core-foundation/tests/use_macro_outside_crate.rs28
1 files changed, 28 insertions, 0 deletions
diff --git a/vendor/core-foundation/tests/use_macro_outside_crate.rs b/vendor/core-foundation/tests/use_macro_outside_crate.rs
new file mode 100644
index 000000000..ff1c17d4c
--- /dev/null
+++ b/vendor/core-foundation/tests/use_macro_outside_crate.rs
@@ -0,0 +1,28 @@
+#[macro_use]
+extern crate core_foundation;
+
+use core_foundation::base::{CFComparisonResult, TCFType};
+use std::os::raw::c_void;
+
+// sys equivalent stuff that must be declared
+
+#[repr(C)]
+pub struct __CFFooBar(c_void);
+
+pub type CFFooBarRef = *const __CFFooBar;
+
+extern "C" {
+ pub fn CFFooBarGetTypeID() -> core_foundation::base::CFTypeID;
+ pub fn fake_compare(
+ this: CFFooBarRef,
+ other: CFFooBarRef,
+ context: *mut c_void,
+ ) -> CFComparisonResult;
+}
+
+// Try to use the macros outside of the crate
+
+declare_TCFType!(CFFooBar, CFFooBarRef);
+impl_TCFType!(CFFooBar, CFFooBarRef, CFFooBarGetTypeID);
+impl_CFTypeDescription!(CFFooBar);
+impl_CFComparison!(CFFooBar, fake_compare);