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
29
// The contents of this file is licensed by its authors and copyright holders under the Apache
// License (Version 2.0), MIT license, or Mozilla Public License (Version 2.0), at your option. The
// contents of this file may not be copied, modified, or distributed except according to those
// terms. See the COPYRIGHT file at the top-level directory of this distribution for copies of these
// licenses and more information.

// See https://github.com/opensource-apple/objc4/blob/master/runtime/objc.h

extern crate core;
extern crate libc;

use objc_runtime_new;

pub type Class = *mut objc_runtime_new::objc_class;

#[repr(C)] // TODO: should this be repr(transparent)?
pub struct objc_object(Class);

#[allow(non_camel_case_types)]
pub type id = *mut objc_object;

// #[repr(C)]
// pub struct objc_selector;
// pub type SEL = *mut objc_selector;
pub type SEL = *const libc::c_char;

pub type IMP = unsafe extern "C" fn();

pub type Method = *mut objc_runtime_new::method_t;