Lines Matching refs:vtable
21 mod vtable;
140 /// Declares or implements a vtable trait.
149 /// `#[vtable]` attribute. Implementers of the trait will then also have to
150 /// annotate the trait with `#[vtable]`. This attribute generates a `HAS_*`
155 /// This is also the case for traits annotated with `#[vtable]`, but in this
158 /// C side vtables. When an optional method is not implemented on a `#[vtable]`
159 /// trait, a `NULL` entry is installed in the vtable. Thus the default
162 /// implementation. This is done to ensure that we call the vtable methods
163 /// through the C vtable, and not through the Rust vtable. Therefore, the
182 /// // Declares a `#[vtable]` trait
183 /// #[vtable]
196 /// // Implements the `#[vtable]` trait
197 /// #[vtable]
211 pub fn vtable(attr: TokenStream, input: TokenStream) -> TokenStream {
213 vtable::vtable(parse_macro_input!(input))
222 /// header file; cases where C calls into Rust via a function pointer in a vtable (such as