File: use_macro_outside_crate.rs

package info (click to toggle)
rust-core-foundation 0.9.1-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 292 kB
  • sloc: makefile: 8
file content (28 lines) | stat: -rw-r--r-- 708 bytes parent folder | download | duplicates (48)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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);