mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-14 16:03:17 +00:00
34 lines
618 B
Rust
34 lines
618 B
Rust
//@ check-pass
|
|
|
|
mod ffi {
|
|
use super::*;
|
|
|
|
extern "C" {
|
|
pub fn DomPromise_AddRef(promise: *const Promise);
|
|
pub fn DomPromise_Release(promise: *const Promise);
|
|
}
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[allow(unused)]
|
|
pub struct Promise {
|
|
private: [u8; 0],
|
|
__nosync: ::std::marker::PhantomData<::std::rc::Rc<u8>>,
|
|
}
|
|
|
|
pub unsafe trait RefCounted {
|
|
unsafe fn addref(&self);
|
|
unsafe fn release(&self);
|
|
}
|
|
|
|
unsafe impl RefCounted for Promise {
|
|
unsafe fn addref(&self) {
|
|
ffi::DomPromise_AddRef(self)
|
|
}
|
|
unsafe fn release(&self) {
|
|
ffi::DomPromise_Release(self)
|
|
}
|
|
}
|
|
|
|
fn main() {}
|