summaryrefslogtreecommitdiffstats
path: root/third_party/rust/core-foundation/tests
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /third_party/rust/core-foundation/tests
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/rust/core-foundation/tests')
-rw-r--r--third_party/rust/core-foundation/tests/use_macro_outside_crate.rs28
1 files changed, 28 insertions, 0 deletions
diff --git a/third_party/rust/core-foundation/tests/use_macro_outside_crate.rs b/third_party/rust/core-foundation/tests/use_macro_outside_crate.rs
new file mode 100644
index 0000000000..ff1c17d4ce
--- /dev/null
+++ b/third_party/rust/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);