struct MethodInfo {
name: Ident,
has_self: bool,
is_mut: bool,
param_types: Vec<Type>,
param_names: Vec<Ident>,
return_type: Option<Type>,
skip: bool,
r_name: Option<String>,
}Expand description
Information extracted from a trait method for code generation.
Collects everything needed to generate vtable shims, view methods,
and extra trait bounds for a single method in a #[miniextendr] trait.
Fields§
§name: IdentMethod name (Rust identifier).
has_self: boolWhether the method has a self receiver (instance method). False for static/associated methods.
is_mut: boolWhether receiver is &mut self (vs &self). Only meaningful if has_self is true.
param_types: Vec<Type>Parameter types (excluding the self receiver).
param_names: Vec<Ident>Parameter names (excluding the self receiver). Uses arg{i} for unnamed patterns.
return_type: Option<Type>Return type. None when the method returns () (unit type or no return annotation).
skip: boolWhether method is marked #[miniextendr(skip)], excluding it from codegen.
r_name: Option<String>Override the R-facing method name (from #[miniextendr(r_name = "...")]).
When set, R wrappers and TPIE metadata use this name instead of the Rust ident.
Trait Implementations§
Auto Trait Implementations§
impl !Send for MethodInfo
impl !Sync for MethodInfo
impl Freeze for MethodInfo
impl RefUnwindSafe for MethodInfo
impl Unpin for MethodInfo
impl UnsafeUnpin for MethodInfo
impl UnwindSafe for MethodInfo
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> SizeHint for Twhere
T: ?Sized,
impl<T> SizeHint for Twhere
T: ?Sized,
Source§default fn lower_bound(&self) -> usize
default fn lower_bound(&self) -> usize
core_io_internals)[u8; 12] could return any value between 0 and
12 inclusively as a correct implementation. Read moreSource§impl<T> SizedTypeProperties for T
impl<T> SizedTypeProperties for T
Source§#[doc(hidden)]const SIZE: usize = _
#[doc(hidden)]const SIZE: usize = _
sized_type_properties)Source§#[doc(hidden)]const ALIGN: usize = _
#[doc(hidden)]const ALIGN: usize = _
sized_type_properties)Source§#[doc(hidden)]const ALIGNMENT: Alignment = _
#[doc(hidden)]const ALIGNMENT: Alignment = _
ptr_alignment_type)Source§#[doc(hidden)]const IS_ZST: bool = _
#[doc(hidden)]const IS_ZST: bool = _
sized_type_properties)Source§#[doc(hidden)]const LAYOUT: Layout = _
#[doc(hidden)]const LAYOUT: Layout = _
sized_type_properties)Source§#[doc(hidden)]const MAX_SLICE_LEN: usize = _
#[doc(hidden)]const MAX_SLICE_LEN: usize = _
sized_type_properties)[Self]. Read moreLayout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 432 bytes