pub(crate) struct SidecarSlot {
pub(crate) name: Ident,
pub(crate) r_name: String,
ty: Type,
vis: Visibility,
is_public: bool,
pub(crate) kind: SlotKind,
access: SidecarAccess,
prop_doc: Option<String>,
setter_invisible: Option<bool>,
}Expand description
Information about a single #[r_data]-annotated sidecar slot field.
Collected during struct field parsing and used to generate FFI getter/setter functions and R wrapper code for each public slot.
Fields§
§name: IdentRust identifier of the field (e.g., count, name). The C symbols,
the R_CallMethodDef statics and the Rust accessors are named by it.
r_name: StringThe field’s R name: #[r_data(name = "...")], else the Rust
identifier (#1891). Every R-facing string uses it: .rdata_fields_T,
the $ switch labels, the R6 binding / S7 property, the standalone
T_get_<name>() / T_set_<name>() and the setter’s message. A
Sidecar field’s save slot is named by it too (SIDECAR_NAMES, the
name the accessors and __mx_visit_sidecars pass, #2215).
ty: TypeRust type of the field, used in conversion-based getter/setter codegen.
vis: VisibilityThe field’s visibility, which its generated Rust accessors take.
is_public: boolWhether the field is pub. Only public fields get R accessor functions.
kind: SlotKindDetermines the codegen strategy for reading/writing this slot.
access: SidecarAccessThe Rust accessors of a Sidecar<T> field (#[r_data(ref | mut)]);
unused by the other kinds.
prop_doc: Option<String>Optional documentation string for the S7 @prop tag.
Sourced from #[r_data(prop_doc = "...")]. None means no doc was supplied;
a default fallback string is used at emit time.
setter_invisible: Option<bool>Explicit setter visibility; each generated setter keeps its default when absent.
Auto Trait Implementations§
impl !Send for SidecarSlot
impl !Sync for SidecarSlot
impl Freeze for SidecarSlot
impl RefUnwindSafe for SidecarSlot
impl Unpin for SidecarSlot
impl UnsafeUnpin for SidecarSlot
impl UnwindSafe for SidecarSlot
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: 512 bytes