Skip to main content

GroupRow

Struct GroupRow 

pub struct GroupRow {
    pub groups: Vec<WindowGroup>,
    /* private fields */
}

Fields§

§groups: Vec<WindowGroup>

Implementations§

§

impl GroupRow

pub fn draw_capture_targets( &mut self, capture: &LiveCapture<'_>, ctx: &mut PaintCtx<'_>, presence: &PresenceCtx, ) -> Vec<Rect>

Paint selected active app surfaces without the row’s viewport clip.

The ordinary desktop pass clips the continuous strip to the physical output. Capture cannot reuse that pass for FullApp/WholeStrip: an app may be partly or wholly beyond the monitor while still having live layout and pixels. This method deliberately calls the owning group directly, preserving its real app draw path and geometry while omitting only the output clip.

pub fn new(groups: Vec<WindowGroup>) -> GroupRow

pub fn set_external_navigation(&mut self, external: bool)

Set (or clear) the transient fullscreen override, driven by the shell each frame from compositor state. (None, false) restores normal tiling exactly.

pub fn hold_sibling_fade_at(&mut self, elapsed: Duration) -> bool

Freeze the sibling fade at elapsed along durations.fast. Offscreen paints cost more wall time than the 130 ms curve, so a capture harness stepping frames only ever sees the endpoints — this poses production draw at a chosen point. Not gated on debug_assertions: shots ships in release.

pub fn clear_sibling_fade_hold(&mut self)

pub fn set_fullscreen(&mut self, fullscreen_group: Option<u64>, hidden: bool)

pub fn is_fullscreen(&self) -> bool

pub fn group_resize_rect(&self, group_id: u64) -> Option<Rect>

Visible screen-space edge grip, using ordinary widget dispatch geometry. The viewport clips grips, and promoted or hidden groups have none.

pub fn set_promotion_keeps_gutter(&mut self, keeps: bool)

Whether the group promoted by Self::set_fullscreen stops at its lane’s leading gutter (a maximize, beside the wheel) or covers it (a client fullscreen).

pub fn with_leading_inset(self, px: f64) -> GroupRow

Reserve a canvas-x gutter before the first group so it pans with scroll_x too (set to the wheel-disc width). On a strip partitioned across displays only the leading lane carries it.

pub fn leading_inset(&self) -> f64

pub fn set_leading_inset(&mut self, px: f64)

pub fn set_output_spans(&mut self, spans: &[OutputSpan])

Passing an empty slice restores the fallback in Self::usable_at.

pub fn output_spans(&self) -> &[OutputSpan]

pub fn set_lanes(&mut self, lanes: &[StripLane], assignment: &HashMap<u64, u32>)

Partition this strip across displays: one lane per display, left to right, and the display each group belongs to (assignment, by group id → StripLane::output). Fewer than two lanes restores the one continuous row. A lane keeps its pan across calls as long as its display stays, so re-pushing the same partition every frame is free.

The groups must already be ordered lane by lane (every group of the first lane, then every group of the second, …); the shell’s reconciliation keeps them so.

pub fn lanes(&self) -> Vec<StripLane>

The lanes this strip is partitioned into; empty for one continuous row.

pub fn is_partitioned(&self) -> bool

Whether the strip is partitioned across displays.

pub fn group_under_cursor(&self) -> Option<u64>

The shown group a left press at the remembered cursor lands in; mouse buttons carry no position of their own.

pub fn covers(&self, p: Point) -> bool

Whether logical point p is over this strip: inside one of its lanes when it is partitioned, else within its row’s band.

pub fn lane_of_group(&self, group_id: u64) -> Option<usize>

The lane group_id is laid out in; None when the strip is one continuous row or the group isn’t in it.

pub fn output_of_group(&self, group_id: u64) -> Option<u32>

The display group_id is laid out on, when the strip is partitioned.

pub fn assigned_output_of_group(&self, group_id: u64) -> Option<u32>

The display a group was explicitly placed on in this row: by the shell’s partition, or by a tab dropped onto that display.

pub fn lane_at(&self, p: Point) -> Option<usize>

The lane under logical point p, else the lane nearest to it horizontally. None for one continuous row.

pub fn set_focus_output(&mut self, output: u32)

Point keyboard-driven panning (direct strip pans, the visible span launches consult) at the lane of display output.

pub fn output_pan(&self, output: u32) -> Option<&Pan>

The pan of display output’s lane, when the strip is partitioned.

pub fn usable_at(&self, x: f64) -> f64

Usable width a group at canvas-x x should resolve its WindowWidth fraction against. x is canvas, not screen: panning must not resize windows, so a group keeps the basis of the display it’s laid out on regardless of scroll. Falls back to the row’s own width minus the leading gutter, then DEFAULT_STRIP_USABLE_PX before any layout has run.

pub fn usable_per_group(&self) -> Vec<f64>

Per-group usable width, in strip order. Depends only on the groups’ own stored widths and the pushed output spans or lanes, never on a previous frame’s layout, so it’s stable on the very first frame.

pub fn group_canvas_spans(&self) -> Vec<(u64, f64, f64)>

Each group’s (id, left, right) extent in unscrolled canvas space. Derived the same way as Self::usable_per_group, so a group spliced in this frame already has a span without waiting for taffy. On a partitioned strip each lane’s canvas starts at its own display’s left edge.

pub fn onscreen_group_ids(&self) -> Vec<u64>

Ids of groups currently visible. Reads laid-out rects, not canvas spans: “can I see it” is a question about pixels, so a group with no rect yet just reads as not-on-screen for that one frame.

pub fn visible_canvas_span(&self) -> (f64, f64)

The visible viewport shifted by the pan, in the same space as Self::group_canvas_spans. On a partitioned strip, the focused display’s lane.

pub fn group_ids_on(&self, output: u32) -> Vec<u64>

Ids of the groups laid out on display output, in order. Every group when the strip is one continuous row.

pub fn group_ids(&self) -> Vec<u64>

Used by the shell’s resync_strips_from_tree to diff against the persisted shell::state::Strip::window_groups, preserving existing groups’ host state across an unrelated revision bump.

pub fn insert_group(&mut self, group: WindowGroup, idx: usize)

Inserting anywhere but the end pushes later groups along; the motion is armed here and measured by the next layout pass, see Self::shift_offset_for. Closing and reordering arm it too.

pub fn reorder_group_by_id(&mut self, id: u64, idx: usize) -> bool

Move one existing group to its persisted strip position without publishing a user drag. Shell reconciliation uses this after a remote/document revision changes the order: keeping the original WindowGroup instance preserves its tab hosts, focus and in-flight presentation state.

pub fn shift_offset_for(&self, group_id: u64) -> f64

How far right of its laid-out position group_id should be painted this frame (negative = left). The stored rect is always the final one, so hit-testing and the app’s configure size are never mid-flight — same choice the per-group spawn fade makes.

pub fn hold_shift_at(&mut self, elapsed: Duration) -> bool

Freeze the in-flight slide at elapsed, reporting whether there was one to freeze. The curve runs on wall time, but an offscreen render costs far more wall time per frame than the curve lasts, so a capture harness stepping frames would only see start and end — this lets it request a specific point (still production draw, not a reconstruction). Not gated on debug_assertions: shots walks scenario timelines through this and ships in release.

pub fn remove_group_by_id(&mut self, id: u64) -> bool

pub fn scroll_x(&self) -> f64

How far the row is panned. On a partitioned strip, the leading lane’s pan — the one the wheel disc rides along with; see Self::output_pan for any other display.

pub fn set_scroll_quantum(&mut self, quantum: Option<f64>)

Select the presenter’s strip-pan precision: the drawn pan lands on multiples of quantum layout pixels (1 / scale puts it on whole device pixels), or exactly where the gesture put it with None, the default. A quantum that is not finite and positive is ignored.

pub fn drawn_scroll_x(&self) -> f64

The pan used by layout, input geometry and the presenter’s canvas.

pub fn drawn_bounds(viewport: Rect) -> Rect

Where a strip whose viewport is viewport draws: the viewport and a 16 px pad above and below it that keeps shadow and glow sprites (ambient_pad=50, bloom_pad=120, see TileHost::draw_steady_state) intact at the top and bottom.

pub fn canvas_shift(&self) -> f64

How far a retained draw moves the row into canvas coordinates (crate::retained_present::unbake_scroll): the drawn pan plus the canvas’s padding while it lies within the canvas, zero outside a retained draw.

pub fn canvas_pad(&self) -> f64

Room a retained canvas keeps left of the content and right of the furthest pan, in layout pixels.

pub fn set_drawn_apart(&mut self, apart: bool)

Have the parent’s draw skip this row, recording only its transform, so its owner draws it into a scene of its own with Self::draw_apart: a presenter that pans each strip on its own needs each strip’s drawing apart from the others’.

pub fn draw_apart( &mut self, scene: &mut Scene, tr: &mut TextRenderer, theme: &Theme, presence: &PresenceCtx, ) -> bool

Draw the row into scene with the transform its parent’s draw passed, once that draw skipped it (Self::set_drawn_apart). false, drawing nothing, when the parent did not draw it.

pub fn pan_to(&mut self, requested: f64) -> bool

Set the real strip viewport to an absolute finite offset. Browser and other external navigation controllers use this narrow seam instead of synthesizing wheel input or moving rendered output independently.

pub fn inherit_viewport(&mut self, previous: &GroupRow)

Carry peer-local viewport presentation through a retained hierarchy rebuild. The next layout still validates/clamps against its new geometry.

pub fn group_for_focus_target( &self, target: NodeId, tree: &TaffyTree, ) -> Option<u64>

Resolve an admitted keyboard owner through its actual layout ancestry. Stored layout identities prevent stale child indices after a splice.

pub fn group_layout_is_current(&self) -> bool

Whether the stored geometry still belongs to the current group order. A splice/reorder must complete layout before a host frames its selection.

pub fn handle_count(&self) -> usize

pub fn handle_at(&self, idx: usize) -> Option<&ResizeHandle>

pub fn group_at_for_test(&self, idx: usize) -> Option<&WindowGroup>

debug_assertions gated so it’s available to crates/sdk/ui-core/tests but not shipped in release.

pub fn content_width(&self) -> f64

0.0 before the first layout pass. On a partitioned strip, the focused lane’s.

pub fn max_scroll_x(&self) -> f64

pub fn pan_max_scroll_x(&self) -> f64

Furthest legal resting offset for direct strip panning. Unlike the content-tight focus bound, this leaves a deliberate glimpse of canvas after the final app. Content which already fits stays pinned at home.

pub fn begin_strip_pan(&mut self)

Rebase total-travel updates onto the strip’s current visual position. A fresh axis lock calls this even if a prior stream lost its End at a lock/session boundary, preventing stale gesture state from jumping. On a partitioned strip only the focused display’s lane pans.

pub fn update_strip_pan(&mut self, travel: f64) -> bool

Track a three-finger horizontal gesture in direct-manipulation space. travel is total signed scroll travel since Begin (positive moves toward later groups). Legal canvas tracks 1:1; beyond either end the shared iOS-style curve supplies continuously increasing resistance.

pub fn end_strip_pan(&mut self, now: Instant) -> bool

Release/cancel direct manipulation. In-range positions remain exactly where the fingers left them; only elastic overpull settles to an end.

pub fn group_is_laid_out(&self, group_id: u64) -> bool

A group focused the same frame it was spliced in hasn’t been through a layout pass yet, so its rect is degenerate and any pan on it is a no-op.

pub fn scroll_group_into_view(&mut self, group_id: u64) -> bool

Pan group_id’s run (the row, or its display’s lane) so the group is fully inside the viewport (Niri’s “focused column follows into view”). Must be called after a layout pass (uses the group’s live rect). Cancels any in-flight wheel-snap so this isn’t immediately overridden by a snap-back.

pub fn scroll_group_into_view_animated( &mut self, group_id: u64, now: Instant, ) -> bool

Same target as Self::scroll_group_into_view, eased on the wheel-snap curve instead of teleporting, so a focus jump reads as motion rather than a cut.

pub fn cut_on_both_edges(&self) -> bool

Whether, in any run, one group is severed by the viewport’s left edge while a different one is severed by its right edge — never allowed in the same frame, though cutting only one is fine.

pub fn groups_cut_by_row_edges(&self) -> Vec<u64>

Ids of groups the viewport edges are cutting through right now. Empty when everything fits; otherwise the ones hanging off the ends, which is normal.

pub fn set_group_active_tab(&mut self, group_id: u64, tab_id: u64) -> bool

Select tab_id inside group_id widget-side. The bar’s active_id is authoritative and the shell’s per-frame harvest mirrors it into the persisted tree, so a tree-only write would be overwritten one frame later.

pub fn tick_snap_at(&mut self, now: Instant)

Split out from apply_layout so headless tests can advance simulated time deterministically without staging a full taffy tree. Advances every run’s snap.

pub fn set_scroll_x_for_test(&mut self, x: f64)

pub fn transfer_tab( &mut self, src: usize, dst: usize, tab_id: u64, target_idx: usize, ) -> bool

Exposed separately from handle_event so tests can drive a transfer without staging a full winit event.

pub fn detach_active_tab(&mut self, group_id: u64) -> bool

Move the active tab out to an adjacent standalone group.

pub fn attach_active_tab(&mut self, group_id: u64, direction: i32) -> bool

Move the active tab into the adjacent group in direction.

pub fn gap_index_for(&self, release_point: Point) -> Option<usize>

Some(gap_idx) if the release landed strictly between two groups (0 before the first, N after the last); None if it landed inside a group’s rect. Deliberately not y-band-restricted: the release comes from our own row’s TabBar, so anywhere that isn’t on a group — including above/below our rendered rect — is a new-window gap.

pub fn split_tab_into_new_group( &mut self, src: usize, tab_id: u64, gap_idx: usize, ) -> bool

Detach tab_id from src into a brand-new WindowGroup at gap_idx, pruning src if that leaves it empty.

pub fn take_pending_topology_change(&mut self) -> Option<Vec<GroupTopology>>

Drain the current row topology after a same-strip tab transfer. Returning the final shape rather than a sequence of move events makes multiple transfers in one frame idempotent at the persistence boundary.

pub fn take_pending_cross_strip_detach(&mut self) -> Option<CrossStripDetach>

pub fn take_pending_group_reorder(&mut self) -> Option<(u64, usize)>

pub fn group_drag_active(&self) -> bool

pub fn group_reorder_target(&self) -> Option<usize>

pub fn tab_drop_target(&self) -> Option<DropTarget>

The target whose indicator is currently on screen for a tab drag.

pub fn cancel_tab_drag(&mut self) -> bool

Cancel owned tab gestures and their in-strip drop feedback.

pub fn tab_drag_active(&self) -> bool

Whether one of this row’s own tab bars currently owns a drag.

pub fn cross_strip_drop_target(&self) -> Option<DropTarget>

The exact destination currently painted for a tab from another strip.

pub fn set_cross_strip_tab_drag_hover(&mut self, cursor: Option<Point>)

Preview a tab arriving from another strip. The stored enum is later consumed verbatim by the shell’s cross-strip commit path.

pub fn set_external_content_drag_hover(&mut self, cursor: Option<Point>)

Drive the same preview for content carried by the compositor rather than by one of this row’s tabs. None retires the indicator when the protocol drag leaves or finishes.

pub fn tab_drop_target_at(&self, p: Point) -> Option<DropTarget>

Resolve one pointer position into the strip’s complete tab-drop grammar. The tab bar wins and keeps its precise pill-gap insertion. In the body, adaptive outer bands make a new group while the remaining interior prepends/appends to the existing group’s tab list. Only space outside every group can otherwise produce a new group.

pub fn accept_cross_strip_drop( &mut self, new_id: u64, desc: TabDescriptor, host: TileHost, target: DropTarget, ) -> bool

Apply the exact target already previewed by this destination row. Returns false for a stale group id so the shell can restore the detached payload to its source without losing its live host.

pub fn restore_cross_strip_detach(&mut self, payload: CrossStripDetach)

Restore a detach whose durable cross-strip transaction was refused. The original group and position win; this path must be visually a no-op.

Trait Implementations§

§

impl CollaborationTopology for GroupRow

§

fn collaboration_children_mut(&mut self) -> Vec<&mut dyn Widget>

§

impl ComponentLifecycle for GroupRow

§

fn close_components(&mut self) -> Vec<ComponentCloseReport>

Capture and close nested components before removing their live trees, transferring all recovery reports to the caller.
§

fn take_component_close_reports(&mut self) -> Vec<ComponentCloseReport>

Drain inert close-report ownership once; never invoke ordinary app callbacks through a closed component.
§

fn unsaved_documents(&self, doc: &AutoCommit) -> Vec<UnsavedDocument>

App-declared external document obligations. An in-memory record set is not evidence that an editable file has been saved.
§

fn checkpoint_components(&mut self) -> Vec<String>

Non-destructive persistence checkpoint. Never closes a wake scope or removes a tree; a failed host close must leave every child usable.
§

fn finish_admitted_close(&mut self) -> Vec<ComponentCloseReport>

Only the host may call this after every checkpoint succeeded, without dispatching another document mutation in between.
§

fn on_window_close_requested(&mut self) -> WindowCloseAdmission

Admit or defer the primary native window’s ordinary close request. Roots that defer must later produce a one-shot close intent.
§

fn take_window_close_intent(&mut self) -> bool

One-shot approval after an earlier deferred ordinary window close.
§

fn take_replacement(&mut self) -> Option<ComponentReplacement>

The component this root’s own component asked to show in its place (AppComponent::take_replacement), for the host that mounted it. A component nested deeper answers to the host that mounted it, so the default reaches no child.
§

fn take_save_status_presentation(&mut self) -> bool

One-shot: the durability of this root’s own component’s record changed since this was last asked, and the root already synced with the new state. A host that asks (an App) presents it with a frame of its own, not a rebuilt tree; one that does not ask sees it through take_structure_dirty.
§

impl FloatingSurfaceProvider for GroupRow

§

fn on_floating_surface_focus_changed(&mut self, id: Option<&str>, focused: bool)

Route native keyboard focus to the exact presentation instance.
§

fn on_floating_surface_ime_source_changed(&mut self, id: Option<&str>)

Keep the exact secondary presentation’s editor logically focused while the platform deliberately retains text-input focus on its source. Read more
§

fn on_floating_surface_event_source(&mut self, id: Option<&str>)

Identify the native surface delivering the current input event. The host resets this immediately after dispatch; it grants no authority.
§

fn floating_surface_accessibility(&self, id: &str) -> Option<AccessNode>

The retained semantic subtree presented in one secondary window.
§

fn perform_floating_surface_accessibility_action( &mut self, id: &str, target: &str, action: &Action, state: &mut Edits<'_>, path: &ExId, ) -> bool

§

fn floating_surface_ime(&self, id: &str) -> Option<(ImePurpose, Rect)>

IME purpose and desktop-logical caret rect for one secondary window.
§

fn take_floating_surface_request(&mut self) -> Option<FloatingSurfaceRequest>

One-shot request to hand app content to the shared floating-surface host. Shell and in-app hosts consume the same description, so PiP does not require a second rendering/widget API.
§

fn take_capture_studio_request(&mut self) -> Option<CaptureMode>

One-shot request for the session shell’s shared capture/PiP chooser.
§

fn take_floating_surface_source_updates(&mut self) -> Vec<(String, Rect)>

Rising-edge source-geometry updates for an adopted floating surface.
§

fn draw_floating_surfaces( &mut self, scene: &mut Scene, transform: Affine, text_renderer: &mut TextRenderer, theme: &Theme, presence: &PresenceCtx, )

Paint app-owned content whose presentation has moved into shell space.
§

fn draw_floating_surface( &mut self, id: &str, scene: &mut Scene, transform: Affine, text_renderer: &mut TextRenderer, theme: &Theme, presence: &PresenceCtx, ) -> bool

Paint exactly one app-owned presentation into its native window. Read more
§

fn set_floating_surface_bounds(&mut self, bounds: Rect)

Push the shell’s authoritative combined-output bounds into the owner.
§

fn floating_surface_presentations(&self) -> Vec<FloatingSurfacePresentation>

Desktop-space presentations that need a native secondary window.
§

fn active_floating_surface_ids(&self) -> Vec<String>

Stable IDs whose underlying activity still exists.
§

fn on_floating_surface_host_message( &mut self, message: &FloatingSurfaceHostMessage, )

Deliver an acknowledged shell lifecycle edge back to the owner.
§

impl Widget for GroupRow

§

fn test_rects(&self) -> Vec<(String, Rect)>

Publish qualified affordances by group id, plus bare aliases for the leftmost group, so single-group scenarios stay unqualified.

§

fn provide<'a>(&'a self, request: &mut Request<'a, '_>)

Answer a request for a capability this widget takes part in (see capability). Declare capabilities with crate::provides!.
§

fn provide_mut<'a>(&'a mut self, request: &mut RequestMut<'a, '_>)

Exclusive counterpart to Widget::provide.
§

fn modal_capture(&self) -> Option<Rect>

Some(rect) when this subtree holds an open modal, its panel box. While any widget reports Some, the host suppresses its own global focus shortcuts and swallows unhandled pointer presses so nothing behind the modal is clickable. Containers MUST forward (the default does, via first Some among children).
§

fn next_wake_deadline(&self) -> Option<Instant>

Earliest wall-clock deadline at which this subtree needs a sync/redraw even if there is no input. Unlike needs_animation_frame, this keeps the event loop asleep until the requested instant and is appropriate for filesystem/status polling rather than animation.
§

fn set_platform_conventions(&mut self, conventions: PlatformConventions)

Receive host-selected platform conventions. The default propagates to retained children, keeping target-OS branches out of app code.
§

fn set_interaction_environment(&mut self, environment: InteractionEnvironment)

Receive the host’s current input capabilities. The default propagates through retained containers, so app code does not need device branches.
§

fn mount_native_views(&mut self, host: &NativeViewHost<'_>)

Attach native child views through this owner’s retained lifecycle topology. Read more
§

fn unmount_native_views(&mut self)

Tear native children down while their parent window still exists.
§

fn native_view_frame_start(&mut self)

Begin a native-view frame through this owner’s retained lifecycle topology.
§

fn children(&self) -> Vec<&dyn Widget>

§

fn children_mut(&mut self) -> Vec<&mut dyn Widget>

§

fn for_each_child(&self, visitor: &mut dyn FnMut(&dyn Widget))

Allocation-free read-only child traversal. Existing custom containers inherit a compatibility adapter over Self::children; toolkit containers override this to walk their retained storage directly.
§

fn as_any(&self) -> Option<&(dyn Any + 'static)>

Downcast to the concrete widget, for hosts and tests that reach a known widget through dyn Widget. Default None (a widget may borrow and so not be 'static); a widget opts in with Some(self), and a Decorator answers itself.
§

fn as_any_mut(&mut self) -> Option<&mut (dyn Any + 'static)>

§

fn sync(&mut self, state: &(dyn Any + 'static), root: &(dyn Any + 'static))

Pull model state into this widget before layout. The default syncs the children Widget::children_mut returns; a widget overrides it only to read state of its own, or to sync children it does not expose there.
§

fn update( &mut self, state: &(dyn Any + 'static), root: &(dyn Any + 'static), ) -> bool

Notice, between frames, state that lives outside the document (a chrome revision, a momentum scroll still ticking) and report whether anything changed. The default updates every child Widget::children_mut returns, without short-circuiting, so a container never freezes its descendants at build-time state; a widget overrides it to check state of its own and then forward.
§

fn build_layout( &mut self, taffy: &mut TaffyTree, theme: &Theme, node_map: &mut HashMap<NodeId, *mut dyn Widget>, ) -> NodeId

§

fn apply_layout(&mut self, taffy: &TaffyTree, node: NodeId, origin: Point)

Take the geometry layout gave this node. The default keeps none, for widgets that neither draw nor hit-test.
§

fn draw( &mut self, scene: &mut Scene, transform: Affine, tr: &mut TextRenderer, theme: &Theme, presence: &PresenceCtx, )

Paint into scene. The default paints nothing.
§

fn handle_event(&mut self, event: &WindowEvent, ctx: &mut EventCtx<'_>)

Handle one input event with the runtime services for this retained node.
§

fn name(&self) -> &'static str

§

fn accessibility(&self) -> Option<AccessNode>

Role, name/description/value, and AccessState. Default None means presentational: the node is skipped and children reparent onto the parent. State must be derived, not stored so it can’t drift from draw; names must already be i18n!-resolved.
§

fn get_rect(&self) -> Rect

The rectangle this widget occupies. The default, for widgets that keep no geometry, is empty.
§

fn wants_pointer_capture(&self) -> bool

§

fn cursor_shape(&self, point: Point) -> Option<CursorIcon>

point is logical coords, same space as Widget::get_rect; None defers to the default arrow. The host hit-tests the whole tree via node_map and picks the smallest-area claim, so containers need not override this.
§

fn needs_redraw(&self) -> bool

Default true (dirty every frame). Opt into incremental redraw by tracking a dirty: bool, setting it in handle_event/sync, and clearing it in mark_drawn(). Containers MUST forward: dirty iff any descendant is.
§

fn mark_drawn(&mut self)

Called after this widget’s scene lands in the composed frame, to clear a dirty flag. Default forwards to children.
§

fn needs_animation_frame(&self) -> bool

App polls this in Event::AboutToWait; without it a curve would freeze partway until an unrelated event woke it again.
§

fn take_structure_dirty(&mut self) -> bool

True if this subtree’s structural composition (children inserted/removed) changed since the last frame; the App rebuilds the taffy tree when so. Reading clears it. The default drains every retained child (no short-circuit, so no child keeps a stale flag) and reports whether any was dirty; a leaf has no children and reports false. A container that changes its own child list sets its own flag and ORs it with this traversal.
§

fn native_input_snapshot( &self, _state: &(dyn Any + 'static), _path: &(dyn Any + 'static), ) -> Option<Value>

Read-only state evidence for opt-in scheduled native input diagnostics. Called only around diagnostic inputs, never during ordinary input or paint. Keep this inexpensive and root-local; snapshots may be logged verbatim. This verifies widget state, not rendered pixels or display presentation.
§

fn view_only_scroll(&self, _event: &WindowEvent) -> bool

Opt in only when this wheel event changes scroll geometry and nothing else: no document edit, focus/selection, action availability, resource declaration, pending command or work that requires sync. The runner still lays out, paints and refreshes accessibility geometry. Unknown handlers stay on the full synchronization/publication path.
§

fn primary_vertical_scroll(&self) -> Option<PrimaryScrollRegion>

Explicit app-owned region; never search secondary children implicitly.
§

fn apply_primary_vertical_scroll( &mut self, _action: PrimaryScrollAction, ) -> PrimaryScrollResult

§

fn callback_binding(&self) -> Option<CallbackBinding>

Runtime binding inherited by descendants in a matching layout topology.
§

fn has_separate_document_owner(&self) -> bool

Whether this widget introduces a document owner distinct from the runner’s outer State. This is a compatibility check, never identity or authority for history access or restore. Read more
§

fn history_owner(&self) -> Option<HistoryOwner>

Opaque actual custody for framework History source registration.
§

fn record_owners(&self) -> Vec<HistoryOwner>

Records this widget keeps open beside the document it shows, each synced on its own route: a framework app’s records in the person’s own room (crate::record::person). They take no part in this widget’s history or controls.
§

fn settle(&mut self, edits: &mut Edits<'_>, path: &ExId)

Apply, after the sync pass, what the widget took up there and must write: a worker’s answer, a chooser’s file, an event a child queued. Writes go only through typed actions on edits (a resource’s dispatcher); the host syncs again when the document changed. The default settles the children Widget::children_mut returns.
§

fn measure( &mut self, _known: Size<Option<f32>>, _available: Size<AvailableSpace>, _text_renderer: &mut TextRenderer, ) -> Size<f32>

§

fn layout_info(&self) -> Option<LayoutInfo>

Read-only resolved decisions for widgets with an explicit layout policy. None means the widget has no such policy; ordinary manual widgets remain valid. Values are available after build/settlement and carry real origins.
§

fn adjust_layout_style( &mut self, _taffy: &mut TaffyTree, _node: NodeId, _text: &mut TextRenderer, ) -> bool

Adjust this node’s style using its allocated size, before final geometry is applied. Return true only when the style changed (or an inherited decision child hooks read). An override may measure its owned children through ordinary references, entering their callback binding when present. Never reenter descendants through the raw node map while borrowing their parent, change topology, or build another layout tree. The shared host solver visits every registered widget, repeats layout at most eight times and skips a frame that does not settle.
§

fn observe_physical_input(&mut self, _input: PhysicalInput)

Observe this app’s ordinary foreground physical input before framework shortcuts consume it. Keep feedback ephemeral; this is not an input grant.
§

fn local_resource_operation_handlers(&self) -> &'static [&'static str]

Effect/view operation type ids this widget can actually dispatch. Read more
§

fn resource_operation_handlers(&self) -> HashSet<String>

§

fn test_id(&self) -> Option<&str>

Stable id for the e2e test harness; None falls back to a path-based key. Must be unique across the live tree — the registry resolves on first match, so a duplicate shadows the second occurrence.
§

fn reveal_descendant(&mut self, target: *const dyn Widget) -> bool

Reveal a newly keyboard-focused descendant inside any enclosing viewport. Containers override this to scroll; ordinary widgets simply recurse toward the target and report whether it was found.
§

fn child_clip_rect(&self) -> Option<Rect>

Absolute logical clip applied to ordinary children during painting and pointer routing. Inspectors and enclosing scroll regions must respect this boundary instead of treating clipped descendants as visible extent.
§

fn take_action_palette_request(&mut self) -> Option<ActionAddress>

One-shot request to open the host’s action palette directly at a typed resource action. Parameter collection and permission checks remain host policy; widgets only name an address already present in resources().
§

fn take_search_request(&mut self) -> bool

One-shot request to open the host’s search palette, the same one the platform search shortcut opens. An app’s own search button latches it so search stays one shared host surface rather than an app overlay.
§

fn claims_raw_touch(&self, _point: Point) -> bool

Opt out of touch-to-pointer emulation for contacts that begin at point (logical coords, same space as Widget::get_rect). Read more
§

fn tooltip(&self) -> Option<&str>

Revealed after a dwell over the widget’s rect, via the toolkit’s one tooltip mechanism (crate::widget::tooltip::TooltipHost), hit-tested like cursor_shape so containers need not forward it. An icon-only control should also use this as its accessible name.
§

fn tooltip_side(&self) -> TooltipSide

Which side of the control its tooltip goes: below by default, beside it for a control in a vertical rail.
§

fn tooltip_target_at(&self, point: Point) -> Option<(Rect, String)>

§

fn is_focusable(&self) -> bool

§

fn is_default_keyboard_focus(&self) -> bool

Preferred control when its app is explicitly activated without a valid saved control. Hosts still enforce visibility, enabled state and scope.
§

fn keyboard_input_scope(&self) -> Option<u64>

Exact app instance whose non-text shortcuts this subtree owns when activation has no control target. Unbound desktop chrome may declare the active tab; component boundaries default to their captured owner.
§

fn set_focus(&mut self, _focused: bool)

§

fn set_invalid(&mut self, _invalid: bool)

The form’s validation verdict for this control, set by Field::with_error: an invalid control edges itself in danger ink and reports invalid to assistive technology. Controls without a field face ignore it.
§

fn focus_requested(&mut self, target: Option<NodeId>, tree: &TaffyTree)

An explicit runner focus request, after resolving the actual keyboard owner. Retained flags and layout restoration are not user gestures. Containers can observe this to reveal the owning viewport.
§

fn is_focused(&self) -> bool

§

fn wants_tab_input(&self) -> bool

Whether a focused widget owns Tab instead of the host’s focus traversal. This is deliberately opt-in: ordinary form fields and controls retain platform-standard Tab/Shift+Tab navigation, while a code editor or terminal can receive the key for indentation or completion.
§

fn ime_cursor_rect(&self) -> Option<Rect>

Caret rectangle for the platform input method, in window-logical coordinates. Returning Some enables IME for the focused widget and positions its candidate window; non-text controls keep the default None and therefore disable IME.
§

fn traps_focus(&self) -> bool

While any widget answers true, the host restricts Tab/directional focus to this subtree (wrapping at the ends) and restores the prior focus once it goes back to false. Default false.
§

fn synthetic_accessibility_rect(&self, _path: &[usize]) -> Option<Rect>

Geometry for an immediate-mode semantic child from AccessNode::children. The path is its child-index path beneath this widget’s accessibility node. Returning a rect lets AccessKit activation inject the same click as pointer input.
§

fn focus_synthetic_accessibility(&mut self, _path: &[usize]) -> bool

Move this widget’s own immediate-mode focus to a synthetic semantic child. Retained widgets continue to use the ordinary taffy focus path.
§

fn accessibility_child_parent(&self, _child_index: usize) -> Option<usize>

Reparent one retained children entry beneath a synthetic child returned by accessibility. The returned index addresses AccessNode::children for this frame. Collections use this to place a real interactive row delegate inside its virtual ListItem/TreeItem instead of exporting a duplicate.
§

fn accessibility_child_path(&self, child_index: usize) -> Option<Vec<usize>>

Reparent one retained children entry beneath a nested path of synthetic children returned by accessibility. Read more
§

fn accessibility_represents_child(&self, _child_index: usize) -> bool

Whether one retained children entry is already represented in this widget’s own synthetic accessibility tree, so the bridge must not export it a second time. A host that publishes a child’s semantics itself (to add its own controls inside the same dialog) answers true for that child; assistive technology then sees one copy, not two.
§

fn perform_action( &mut self, _action: &Action, _key_path: &[u64], _state: &mut Edits<'_>, _path: &(dyn Any + 'static), ) -> bool

Perform an accessibility Action on this widget, or on one of its synthetic accessibility nodes. May mutate the CRDT like handle_event. Read more
§

fn perform_semantic_action( &mut self, target: &str, action: &Action, state: &mut Edits<'_>, path: &(dyn Any + 'static), ) -> bool

Handle an action addressed to a synthetic accessibility child created by this widget. target is the opaque stable value supplied through AccessNode::with_action_target. Read more
§

fn is_enabled(&self) -> bool

A disabled (false) widget is excluded from focus traversal, must reject input in handle_event, and renders dimmed (see DISABLED_ALPHA).
§

fn ime_requires_deferred_ack(&self) -> bool

This field needs a host that consumes deferred receipts. Ordinary native Wayland windows must not advertise it until they have that delivery path.
§

fn start_deferred_text(&mut self) -> Option<Receipt>

Begin one bounded deferred session after explicit host consent, preserving the existing original-field fingerprint. This grants no microphone access.
§

fn commit_deferred_text(&mut self, text: &str) -> Option<Receipt>

A private asynchronous final. None leaves ordinary synchronous IME dispatch to the host. A receipt binds this original field and must be acknowledged before the host releases its private recovery transcript.
§

fn ime_purpose(&self) -> Option<ImePurpose>

The focused widget wants platform text input (Wayland text-input-v3, native IMEs elsewhere). None is intentionally the default: enabling an IME for buttons, canvas tools or games makes the compositor raise an on-screen keyboard over content that cannot accept the committed text. Read more
§

fn ime_multiline(&self) -> bool

Whether the original focused editor accepts line feeds as text. This is field policy, never inferred from a multiline accessibility presentation. Wrappers inherit only one unambiguous child at their active IME caret.
§

fn ime_edit_fingerprint(&self, key: &[u8; 32]) -> Option<[u8; 32]>

Opaque local invalidation of deferred input, including selection edits that leave the caret rectangle unchanged. The host supplies an ephemeral secret key; no text or selection is retained in the resulting digest. The default shares the accessibility door and excludes protected or read-only controls. Text controls can override it to avoid cloning text.
§

fn presented(&self) -> bool

Default true; the exception is a widget standing in for a process that has started but not drawn. Must latch: once true, never false again for the same content, or an un-presenting widget would make a window vanish mid-resize. What shows meanwhile is decided by Widget::opening.
§

fn opening(&self) -> bool

True once waiting long enough, while not yet presented, that showing nothing would read as broken. Delayed so a fast open never flashes an indicator.
§

fn text_review(&self) -> Option<(usize, String)>

(caret_byte, text), byte offset on a char boundary. The host diffs this before/after an event so caret-only moves (arrows, Home/End) get announced, not just typing.
§

fn on_external_event( &mut self, _payload: &str, _state: &mut Edits<'_>, _root: &(dyn Any + 'static), )

Delivers an out-of-band string payload from crate::app::UserEvent::External (e.g. a worker thread streaming output into a status log). Default no-op; the App redraws and re-syncs after dispatch, so mutating state here is enough.
§

fn on_nav_gesture( &mut self, dir: NavDirection, state: &(dyn Any + 'static), path: &(dyn Any + 'static), ) -> bool

Global back/forward gesture (swipe/edge-pull), recognised by crate::gesture::NavGestureRecognizer and delivered to the whole tree; return true once consumed. Default forwards to children, so a widget that owns history becomes swipe-navigable for free.
§

fn nav_availability(&self) -> NavAvailability

Which directions Self::on_nav_gesture would consume now. A widget that owns history overrides this beside on_nav_gesture.
§

fn take_focus_reset(&mut self) -> bool

One-shot (reading MUST clear it) signal to move focus to this subtree’s first focusable widget after the next rebuild. Only consulted under crate::app::App::autofocus_on_structure_change; a wizard raises it on step transitions.
§

fn take_accessibility_request(&mut self) -> Option<AccessibilityRequest>

One-shot (reading MUST clear it) request to change the window’s accessibility preferences, raised by a control the person used. The host applies it before the next frame. Default forwards the first request found among the children.
§

fn dev_route(&self) -> Option<RouteSnapshot>

Route history when this widget, or one it contains, is a Router. Read more
§

fn restore_dev_route(&mut self, route: &RouteSnapshot) -> bool

Put route back. Returns whether a router in this subtree accepted it. Read more
§

fn appearance_intent(&self) -> Option<AppearanceIntent>

Theme/high-contrast/reduced-motion/scale, polled under crate::app::App::appearance_reconcile — how a settings pane re-themes the running app live without a back-channel. Level-triggered; the App recurses Self::children itself, so containers need not forward it. First Some wins.
§

fn set_motion_reduced(&mut self, reduced: bool)

Apply the effective reduced-motion preference before the host asks this subtree whether it needs another animation frame. The default forwards recursively, making the preference a framework policy instead of an optional convention that every container has to remember to implement. Read more
§

fn needs_idle_sync(&self) -> bool

Whether sync still needs to run on idle frames without input or collab events — e.g. waiting out a document-adoption grace window.
§

fn take_committed_action(&mut self) -> Option<Vec<ChangeHash>>

The affordance-driven twin of the Ctrl+K palette: when a widget’s own control dispatches the same tilo_actions action its ActionSpec exports, it reports the document heads captured just before here, so the host can record one undo boundary the same way a palette dispatch does. Rising-edge: reading MUST clear it.
§

fn keeps_undo_step_open(&self) -> bool

Whether the undo step this widget’s last reported boundary opened stays open for the actions that continue it — the rest of a word typed a keystroke at a time. A hosted component then closes the step at the widget’s next boundary, or before an undo, a save or a merge, instead of after this event. Answered by the widget itself, never its children.
§

fn set_undo_status(&mut self, _status: &mut dyn FnMut() -> UndoStatus)

Host → widget: the live state of the undo history, published once per frame to every laid-out widget. Read more
§

fn take_undo_request(&mut self) -> Option<UndoRequest>

Widget → host: an undo or redo the user asked for. Read more
§

fn handle_local_undo_request(&mut self, request: UndoRequest) -> bool

Offer a host keyboard undo/redo shortcut to focused widget-local history before the application document consumes it. Read more
§

fn apply_room_action( &mut self, _doc: &mut Edits<'_>, _type_id: &str, _payload: &[u8], ) -> bool

Apply an action another app in this room published, if this app owns the document — lets an app address a document it doesn’t hold by saying what should happen instead of writing bytes directly, keeping each document to one writer. An unrecognised type_id is silently declined, not an error.
§

fn start_operation( &mut self, op: &ResourceOperation<'_>, doc: &mut Edits<'_>, path: &ExId, ) -> Result<Option<ResourceOperationStart>, String>

Admit an exported effect or view operation: the one entry every handler implements. Document operations never enter it. Read more
§

fn semantic_readers(&self) -> &'static [RegisteredSemanticReader]

Inert immutable-reader registrations owned by this actual widget. Registration alone supplies no qualified owner frame or disclosure.
§

fn poll_resource_operation( &mut self, invocation: InvocationId, cancellation_requested: bool, doc: &AutoCommit, path: &ExId, ) -> Option<InvocationUpdate>

Poll one admitted operation without blocking the UI thread. Read more
§

fn take_structure_change(&mut self) -> StructureChange

Self::take_structure_dirty, saying whether the frame’s damage can still describe the rebuild (StructureChange::Described). Reading clears what take_structure_dirty clears; the two must agree on whether there is a change. The default is the flag, as a StructureChange::Rebuild: only a widget that knows every pixel its change touches lands in its own damage says less, and a container forwards a child’s StructureChange::Described only by overriding this.
§

fn has_pending_visual_work(&self) -> bool

Work already requested by this view whose completion will replace a placeholder. Unlike animations, this can be awaited by still captures.
§

fn has_transient_feedback(&self) -> bool

Temporary feedback currently presented, such as a save acknowledgement. Captures may intentionally include it; scene-invariance checks can wait for it to disappear separately from unfinished placeholder work.
§

fn collect_damage(&self, regions: &mut Vec<Rect>)

Logical-pixel bounds whose visual output differs from the last frame. Read more
§

fn damage_covers_own_box(&self) -> bool

Whether, after this frame’s draw, this widget’s own Self::collect_damage covers every pixel a relayout changed by moving or resizing its layout box: a host that repaints where moved widgets were and are may then leave this widget’s box to it (its children’s boxes still count). A block editor that grew by a paragraph says where its blocks were and are; the default does not claim it.
§

fn release_scene_cache(&mut self)

Release retained encoded-scene storage in this subtree without marking its visual/model state dirty. Outer caches call this after a successful reuse: while the outer display list is authoritative, keeping byte-for-byte descendant encodings only duplicates memory. A later outer rebuild causes descendants to record/cache normally.
§

fn is_layout_dirty(&self) -> bool

Default true; widgets with a fixed intrinsic size should override to false unless a size-affecting mutation landed. Containers MUST forward: layout-dirty iff any descendant is.
§

fn layout_needs_measure(&self) -> bool

Whether a layout_dirty frame needs taffy to re-solve sizes (compute_layout) rather than just reposition already-solved boxes. Scrollable is the motivating override: it translates its origin in apply_layout without changing any taffy size, so re-solving on every scroll frame is pure waste.
§

fn paint_bounds(&self) -> Rect

Everything this widget paints, children included; draw_child skips the draw when it misses the viewport. Override for widgets that paint past their own rect.
§

fn draw_overlay( &mut self, scene: &mut Scene, transform: Affine, text_renderer: &mut TextRenderer, theme: &Theme, presence: &PresenceCtx, )

Top-layer pass, run once after the whole draw recursion, so anything emitted here composites above every sibling regardless of tree order — the toolkit’s overlay mechanism for content that escapes its layout box (an open Dropdown, a popover). Default recurses children_mut.

Auto Trait Implementations§

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
§

impl<T> AudiencePresentationWidgetExt for T
where T: Widget + ?Sized,

§

fn audience_presentation_request(&self) -> Option<AudiencePresentationRequest>

§

fn on_audience_presentation_changed(&mut self, active: bool)

§

fn draw_audience_presentation( &mut self, scene: &mut Scene, transform: Affine, text_renderer: &mut TextRenderer, theme: &Theme, rect: Rect, ) -> bool

§

fn handle_audience_presentation_event( &mut self, event: &WindowEvent, state: &mut Edits<'_>, path: &ExId, ) -> bool

§

fn on_audience_presentation_closed(&mut self)

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
§

impl<T> CompleteContentWidgetExt for T
where T: Widget + ?Sized,

§

fn complete_content_size(&self) -> Option<Size>

§

fn draw_complete_content( &mut self, scene: &mut Scene, bounds: Rect, transform: Affine, text_renderer: &mut TextRenderer, theme: &Theme, presence: &PresenceCtx, ) -> bool

§

impl<T> Downcast<T> for T

§

fn downcast(&self) -> &T

§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> FloatingSurfaceWidgetExt for T
where T: Widget + ?Sized,

§

fn on_floating_surface_focus_changed(&mut self, id: Option<&str>, focused: bool)

§

fn on_floating_surface_ime_source_changed(&mut self, id: Option<&str>)

§

fn on_floating_surface_event_source(&mut self, id: Option<&str>)

§

fn floating_surface_accessibility(&self, id: &str) -> Option<AccessNode>

§

fn perform_floating_surface_accessibility_action( &mut self, id: &str, target: &str, action: &Action, state: &mut Edits<'_>, path: &ExId, ) -> bool

§

fn floating_surface_ime(&self, id: &str) -> Option<(ImePurpose, Rect)>

§

fn take_floating_surface_request(&mut self) -> Option<FloatingSurfaceRequest>

§

fn take_capture_studio_request(&mut self) -> Option<CaptureMode>

§

fn take_floating_surface_source_updates(&mut self) -> Vec<(String, Rect)>

§

fn draw_floating_surfaces( &mut self, scene: &mut Scene, transform: Affine, text_renderer: &mut TextRenderer, theme: &Theme, presence: &PresenceCtx, )

§

fn draw_floating_surface( &mut self, id: &str, scene: &mut Scene, transform: Affine, text_renderer: &mut TextRenderer, theme: &Theme, presence: &PresenceCtx, ) -> bool

§

fn floating_surface_presentations(&self) -> Vec<FloatingSurfacePresentation>

§

fn active_floating_surface_ids(&self) -> Vec<String>

§

fn set_floating_surface_bounds(&mut self, bounds: Rect)

§

fn on_floating_surface_host_message( &mut self, message: &FloatingSurfaceHostMessage, )

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FullscreenWidgetExt for T
where T: Widget + ?Sized,

Source§

impl<W> HostDelivery for W
where W: Widget + ?Sized,

Source§

fn start_encoded( &mut self, kind: OperationKind, type_id: &str, payload: &[u8], doc: &mut AutoCommit, path: &ExId, ) -> Result<Option<Effected>, String>

Start the encoded operation (type_id, payload) of kind. Read more
Source§

fn deliver_control( &mut self, kind: OperationKind, control: &str, doc: &mut AutoCommit, path: &ObjId, ) -> Result<Option<Effected>, String>

Hand back the invocation of the toolkit control control (its id, as its tilo.control: resource names it). Read more
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T, S> SimdFrom<T, S> for T
where S: Simd,

§

fn simd_from(_simd: S, value: T) -> T

§

impl<F, T, S> SimdInto<T, S> for F
where T: SimdFrom<F, S>, S: Simd,

§

fn simd_into(self, simd: S) -> T

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.
§

impl<T> Upcast<T> for T

§

fn upcast(&self) -> Option<&T>

§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,