Skip to main content

CallbackInfoRefData

Struct CallbackInfoRefData 

Source
pub struct CallbackInfoRefData<'a> {
    pub layout_window: &'a LayoutWindow,
    pub renderer_resources: &'a RendererResources,
    pub previous_window_state: &'a Option<FullWindowState>,
    pub current_window_state: &'a FullWindowState,
    pub gl_context: &'a OptionGlContextPtr,
    pub current_scroll_manager: &'a BTreeMap<DomId, BTreeMap<NodeHierarchyItemId, ScrollPosition>>,
    pub current_window_handle: &'a RawWindowHandle,
    pub system_callbacks: &'a ExternalSystemCallbacks,
    pub system_style: Arc<SystemStyle>,
    pub ctx: OptionRefAny,
}
Expand description

Information about the callback that is passed to the callback whenever a callback is invoked

§Architecture

CallbackInfo uses a transaction-based system:

  • Read-only pointers: Access to layout data, window state, managers for queries
  • Change vector: All modifications are recorded as CallbackChange items
  • Processing: Changes are applied atomically after callback returns

This design provides clear separation between queries and modifications, makes debugging easier, and allows for future extensibility. Reference data container for CallbackInfo (all read-only fields)

This struct consolidates all readonly references that callbacks need to query window state. By grouping these into a single struct, we reduce the number of parameters to CallbackInfo::new() from 13 to 3, making the API more maintainable and easier to extend.

This is pure syntax sugar - the struct lives on the stack in the caller and is passed by reference.

Fields§

§layout_window: &'a LayoutWindow

Pointer to the LayoutWindow containing all layout results (READ-ONLY for queries)

§renderer_resources: &'a RendererResources

Necessary to query FontRefs from callbacks

§previous_window_state: &'a Option<FullWindowState>

Previous window state (for detecting changes)

§current_window_state: &'a FullWindowState

State of the current window that the callback was called on (read only!)

§gl_context: &'a OptionGlContextPtr

An Rc to the OpenGL context, in order to be able to render to OpenGL textures

§current_scroll_manager: &'a BTreeMap<DomId, BTreeMap<NodeHierarchyItemId, ScrollPosition>>

Immutable reference to where the nodes are currently scrolled (current position)

§current_window_handle: &'a RawWindowHandle

Handle of the current window

§system_callbacks: &'a ExternalSystemCallbacks

Callbacks for creating threads and getting the system time (since this crate uses no_std)

§system_style: Arc<SystemStyle>

Platform-specific system style (colors, spacing, etc.) Arc allows safe cloning in callbacks without unsafe pointer manipulation

§ctx: OptionRefAny

The callable for FFI language bindings (Python, etc.) Cloned from the Callback struct before invocation. Native Rust callbacks have this as None.

Auto Trait Implementations§

§

impl<'a> Freeze for CallbackInfoRefData<'a>

§

impl<'a> !RefUnwindSafe for CallbackInfoRefData<'a>

§

impl<'a> !Send for CallbackInfoRefData<'a>

§

impl<'a> !Sync for CallbackInfoRefData<'a>

§

impl<'a> Unpin for CallbackInfoRefData<'a>

§

impl<'a> !UnwindSafe for CallbackInfoRefData<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<G1, G2> Within<G2> for G1
where G2: Contains<G1>,

Source§

fn is_within(&self, b: &G2) -> bool