Skip to main content

Rect

Struct Rect 

pub struct Rect { /* private fields */ }

Implementations§

§

impl Rect

pub fn try_downcast(element: &(dyn ElementExt + 'static)) -> Option<RectElement>

pub fn color(self, color: impl Into<Color>) -> Rect

Set the color of text rendered inside the rect and inherited by its children. See Color.

pub fn font_size(self, font_size: impl Into<FontSize>) -> Rect

Set the size of text rendered inside the rect and inherited by its children. See FontSize.

pub fn overflow<S>(self, overflow: S) -> Rect
where S: Into<Overflow>,

Set whether content overflowing the rect’s bounds is clipped. See Overflow.

pub fn rotate<R>(self, rotation: R) -> Rect
where R: Into<Option<f32>>,

Rotate the rect by the given angle in degrees.

pub fn scale(self, scale: impl Into<Scale>) -> Rect

Scale the rect. See Scale.

pub fn transform_origin( self, transform_origin: impl Into<TransformOrigin>, ) -> Rect

Set the point that the scale and rotation effects pivot around.

Defaults to the element’s center.

pub fn opacity(self, opacity: impl Into<f32>) -> Rect

Set the rect’s opacity, from 0.0 (transparent) to 1.0 (opaque).

pub fn blur(self, blur: impl Into<f32>) -> Rect

Apply a gaussian blur of the given radius to the rect.

Trait Implementations§

§

impl AccessibilityExt for Rect

§

fn get_accessibility_data(&mut self) -> &mut AccessibilityData

Returns a mutable reference to the element’s accessibility data.
§

fn accessibility(self, accessibility: AccessibilityData) -> Self

Replace all of the element’s accessibility data at once. See AccessibilityData.
§

fn a11y_id(self, a11y_id: impl Into<Option<NodeId>>) -> Self

Set an explicit accessibility id instead of an autogenerated one. See AccessibilityId.
§

fn a11y_focusable(self, a11y_focusable: impl Into<Focusable>) -> Self

Set whether the element can receive keyboard focus. See Focusable.
§

fn a11y_auto_focus(self, a11y_auto_focus: impl Into<bool>) -> Self

Request that the element be focused automatically when it is mounted.
§

fn a11y_member_of(self, a11y_member_of: impl Into<NodeId>) -> Self

Mark the element as a member of the group identified by the given AccessibilityId.
§

fn a11y_role(self, a11y_role: impl Into<Role>) -> Self

Set the accessibility role exposed in the accessibility tree. See AccessibilityRole.
§

fn a11y_alt(self, value: impl Into<Box<str>>) -> Self

Set the text label that describes the element in the accessibility tree.
§

fn a11y_builder(self, with: impl FnOnce(&mut Node)) -> Self

Edit the underlying accesskit node directly for advanced accessibility properties.
§

impl ChildrenExt for Rect

§

fn get_children(&mut self) -> &mut Vec<Element>

Returns a mutable reference to the internal children vector. Read more
§

fn children(self, children: impl IntoIterator<Item = Element>) -> Self

Extends the children with an iterable of Elements. Read more
§

fn maybe_child<C>(self, child: Option<C>) -> Self
where C: IntoElement,

Appends a child only when the Option is Some. Read more
§

fn child<C>(self, child: C) -> Self
where C: IntoElement,

Appends a single child element. Read more
§

impl ContainerExt for Rect

§

fn position(self, position: impl Into<Position>) -> Self

Set how the element is placed relative to its parent or the window. See Position.
§

fn padding(self, padding: impl Into<Gaps>) -> Self

Set the inner spacing between the element’s edges and its content. See Gaps.
§

fn margin(self, margin: impl Into<Gaps>) -> Self

Set the outer spacing between the element’s edges and its surroundings. See Gaps.
§

fn min_width(self, minimum_width: impl Into<Size>) -> Self

Set the minimum width the element can shrink to. See Size.
§

fn min_height(self, minimum_height: impl Into<Size>) -> Self

Set the minimum height the element can shrink to. See Size.
§

fn max_width(self, maximum_width: impl Into<Size>) -> Self

Set the maximum width the element can grow to. See Size.
§

fn max_height(self, maximum_height: impl Into<Size>) -> Self

Set the maximum height the element can grow to. See Size.
§

fn visible_width(self, visible_width: impl Into<VisibleSize>) -> Self

Set how much of the measured width is actually used in layout. See VisibleSize.
§

fn visible_height(self, visible_height: impl Into<VisibleSize>) -> Self

Set how much of the measured height is actually used in layout. See VisibleSize.
§

impl ContainerWithContentExt for Rect

§

fn direction(self, direction: Direction) -> Self

Set the axis children are stacked along. See Direction.
§

fn main_align(self, main_align: Alignment) -> Self

Set how children are aligned along the direction axis. See Alignment.
§

fn cross_align(self, cross_align: Alignment) -> Self

Set how children are aligned across the direction axis. See Alignment.
§

fn spacing(self, spacing: impl Into<f32>) -> Self

Set the gap inserted between adjacent children, in pixels.
§

fn content(self, content: Content) -> Self

Set how children share the available space along the direction axis. See Content.
§

fn center(self) -> Self

Center children on both axes. Shorthand for main_align and cross_align set to Alignment::Center.
§

fn offset_x(self, offset_x: impl Into<f32>) -> Self

Shift the element’s children horizontally by the given pixels.
§

fn offset_y(self, offset_y: impl Into<f32>) -> Self

Shift the element’s children vertically by the given pixels.
§

fn vertical(self) -> Self

Stack children vertically. Shorthand for direction set to Direction::Vertical.
§

fn horizontal(self) -> Self

Stack children horizontally. Shorthand for direction set to Direction::Horizontal.
§

impl EffectExt for Rect

§

fn get_effect(&mut self) -> &mut EffectData

Returns a mutable reference to the element’s effect data.
§

fn effect(self, effect: EffectData) -> Self

Replace all of the element’s effect data at once. See EffectData.
§

fn overflow(self, overflow: impl Into<Overflow>) -> Self

Set whether content overflowing the element’s bounds is clipped. See Overflow.
§

fn blur(self, blur: impl Into<f32>) -> Self

Apply a gaussian blur of the given radius to the element.
§

fn rotation(self, rotation: impl Into<f32>) -> Self

Rotate the element by the given angle in degrees.
§

fn opacity(self, opacity: impl Into<f32>) -> Self

Set the element’s opacity, from 0.0 (transparent) to 1.0 (opaque).
§

fn scale(self, scale: impl Into<Scale>) -> Self

Scale the element. See Scale.
§

fn transform_origin(self, transform_origin: impl Into<TransformOrigin>) -> Self

Set the point that the scale and rotation effects pivot around. Read more
§

impl EventHandlersExt for Rect

§

fn get_event_handlers( &mut self, ) -> &mut HashMap<EventName, EventHandlerType, FxBuildHasher>

Returns a mutable reference to the element’s event handler map.
§

fn with_event_handlers( self, event_handlers: HashMap<EventName, EventHandlerType, FxBuildHasher>, ) -> Self

Replace all of this element’s event handlers with the given map.
§

fn on_mouse_down( self, on_mouse_down: impl Into<EventHandler<Event<MouseEventData>>>, ) -> Self

Fires when a mouse button is pressed down over the element.
§

fn on_mouse_up( self, on_mouse_up: impl Into<EventHandler<Event<MouseEventData>>>, ) -> Self

Fires when a mouse button is released over the element.
§

fn on_mouse_move( self, on_mouse_move: impl Into<EventHandler<Event<MouseEventData>>>, ) -> Self

Fires when the cursor moves over the element.
§

fn on_global_pointer_press( self, on_global_pointer_press: impl Into<EventHandler<Event<PointerEventData>>>, ) -> Self

Fires when a pointer (mouse or touch) is pressed anywhere, even outside the element.
§

fn on_global_pointer_down( self, on_global_pointer_down: impl Into<EventHandler<Event<PointerEventData>>>, ) -> Self

Fires when a pointer (mouse or touch) goes down anywhere, even outside the element.
§

fn on_global_pointer_move( self, on_global_pointer_move: impl Into<EventHandler<Event<PointerEventData>>>, ) -> Self

Fires when a pointer (mouse or touch) moves anywhere, even outside the element.
§

fn on_capture_global_pointer_move( self, on_capture_global_pointer_move: impl Into<EventHandler<Event<PointerEventData>>>, ) -> Self

Like on_global_pointer_move, but fires during the top-down capture phase.
§

fn on_capture_global_pointer_press( self, on_capture_global_pointer_press: impl Into<EventHandler<Event<PointerEventData>>>, ) -> Self

Like on_global_pointer_press, but fires during the top-down capture phase.
§

fn on_key_down( self, on_key_down: impl Into<EventHandler<Event<KeyboardEventData>>>, ) -> Self

Fires when a key is pressed down while the element is focused.
§

fn on_key_up( self, on_key_up: impl Into<EventHandler<Event<KeyboardEventData>>>, ) -> Self

Fires when a key is released while the element is focused.
§

fn on_global_key_down( self, on_global_key_down: impl Into<EventHandler<Event<KeyboardEventData>>>, ) -> Self

Fires when a key is pressed down, regardless of which element is focused.
§

fn on_global_key_up( self, on_global_key_up: impl Into<EventHandler<Event<KeyboardEventData>>>, ) -> Self

Fires when a key is released, regardless of which element is focused.
§

fn on_wheel( self, on_wheel: impl Into<EventHandler<Event<WheelEventData>>>, ) -> Self

Fires when the scroll wheel is used over the element.
§

fn on_touch_cancel( self, on_touch_cancel: impl Into<EventHandler<Event<TouchEventData>>>, ) -> Self

Fires when an ongoing touch is cancelled by the system.
§

fn on_touch_start( self, on_touch_start: impl Into<EventHandler<Event<TouchEventData>>>, ) -> Self

Fires when a touch point is placed on the element.
§

fn on_touch_move( self, on_touch_move: impl Into<EventHandler<Event<TouchEventData>>>, ) -> Self

Fires when a touch point moves across the element.
§

fn on_touch_end( self, on_touch_end: impl Into<EventHandler<Event<TouchEventData>>>, ) -> Self

Fires when a touch point is lifted from the element.
§

fn on_pointer_press( self, on_pointer_press: impl Into<EventHandler<Event<PointerEventData>>>, ) -> Self

Fires when the element is pressed and released by a pointer (mouse or touch).
§

fn on_pointer_down( self, on_pointer_down: impl Into<EventHandler<Event<PointerEventData>>>, ) -> Self

Fires when a pointer (mouse or touch) goes down over the element.
§

fn on_pointer_move( self, on_pointer_move: impl Into<EventHandler<Event<PointerEventData>>>, ) -> Self

Fires when a pointer (mouse or touch) moves over the element.
§

fn on_pointer_enter( self, on_pointer_enter: impl Into<EventHandler<Event<PointerEventData>>>, ) -> Self

Fires when a pointer enters the element.
§

fn on_pointer_leave( self, on_pointer_leave: impl Into<EventHandler<Event<PointerEventData>>>, ) -> Self

Fires when a pointer leaves the element.
§

fn on_pointer_over( self, on_pointer_over: impl Into<EventHandler<Event<PointerEventData>>>, ) -> Self

Fires when a pointer is over the element, including over its children.
§

fn on_pointer_out( self, on_pointer_out: impl Into<EventHandler<Event<PointerEventData>>>, ) -> Self

Fires when a pointer leaves the element or one of its children.
§

fn on_file_drop( self, on_file_drop: impl Into<EventHandler<Event<FileEventData>>>, ) -> Self

Fires when a file is dropped onto the element.
§

fn on_global_file_hover( self, on_global_file_hover: impl Into<EventHandler<Event<FileEventData>>>, ) -> Self

Fires when a dragged file hovers anywhere over the window.
§

fn on_global_file_hover_cancelled( self, on_global_file_hover_cancelled: impl Into<EventHandler<Event<FileEventData>>>, ) -> Self

Fires when a dragged file stops hovering over the window.
§

fn on_ime_preedit( self, on_ime_preedit: impl Into<EventHandler<Event<ImePreeditEventData>>>, ) -> Self

Fires while text is being composed through an input method editor (IME).
§

fn on_sized( self, on_sized: impl Into<EventHandler<Event<SizedEventData>>>, ) -> Self
where Self: LayoutExt,

Fires when the element’s measured size or position changes.
§

fn on_press( self, on_press: impl Into<EventHandler<Event<PressEventData>>>, ) -> Self

This is generally the best event in which to run “press” logic, this might be called onClick, onActivate, or onConnect in other platforms. Read more
§

fn on_secondary_down( self, on_secondary_down: impl Into<EventHandler<Event<PressEventData>>>, ) -> Self

Also called the context menu click in other platforms. Gets triggered when: Read more
§

fn on_all_press( self, on_press: impl Into<EventHandler<Event<PressEventData>>>, ) -> Self

Gets triggered when: Read more
§

fn on_focus_press( self, on_focus_press: impl Into<EventHandler<Event<FocusPressEventData>>>, ) -> Self

Gets triggered when: Read more
§

impl From<Rect> for Element

§

fn from(value: Rect) -> Element

Converts to this type from the input type.
§

impl InteractiveExt for Rect

§

fn get_effect(&mut self) -> &mut EffectData

Returns a mutable reference to the element’s effect data.
§

fn interactive(self, interactive: impl Into<Interactive>) -> Self

Set whether the element receives pointer events. See Interactive.
§

impl KeyExt for Rect

§

fn write_key(&mut self) -> &mut DiffKey

Returns a mutable reference to the element’s diff key.
§

fn key(self, key: impl Hash) -> Self

Assign a key derived from any hashable value, used to reconcile elements in dynamic lists.
§

impl LayerExt for Rect

§

fn get_layer(&mut self) -> &mut Layer

Returns a mutable reference to the element’s layer.
§

fn layer(self, layer: impl Into<Layer>) -> Self

Set the painting layer of the element. See Layer.
§

impl LayoutExt for Rect

§

fn get_layout(&mut self) -> &mut LayoutData

Returns a mutable reference to the element’s layout data.
§

fn layout(self, layout: LayoutData) -> Self

Replace all of the element’s layout data at once. See LayoutData.
§

impl MaybeExt for Rect

§

fn maybe(self, bool: impl Into<bool>, then: impl FnOnce(Self) -> Self) -> Self

Apply then to the element only when the condition is true.
§

fn map<T>(self, data: Option<T>, then: impl FnOnce(Self, T) -> Self) -> Self

Apply then to the element only when the Option is Some, passing the inner value.
Source§

impl NativeRouterExt for Rect

Source§

fn native_router(self) -> Rect

Wire native back/forward mouse buttons to router navigation.
Source§

impl RectThemeExt for Rect

§

impl ScrollableExt for Rect

§

fn get_effect(&mut self) -> &mut EffectData

Returns a mutable reference to the element’s effect data.
§

fn scrollable(self, scrollable: impl Into<bool>) -> Self

Mark this element as scrollable. You are probably looking for the ScrollView component instead.
§

impl StyleExt for Rect

§

fn get_style(&mut self) -> &mut StyleState

Returns a mutable reference to the element’s style data.
§

fn background<S>(self, background: S) -> Self
where S: Into<Color>,

Set the background to a solid Color.
§

fn background_conic_gradient<S>(self, background: S) -> Self
where S: Into<ConicGradient>,

Paint the background with a ConicGradient.
§

fn background_linear_gradient<S>(self, background: S) -> Self
where S: Into<LinearGradient>,

Paint the background with a LinearGradient.
§

fn background_radial_gradient<S>(self, background: S) -> Self
where S: Into<RadialGradient>,

Paint the background with a RadialGradient.
§

fn background_shader(self, background: impl Into<ShaderFill>) -> Self

Paint the background with a custom shader. See ShaderFill.
§

fn border(self, border: impl Into<Option<Border>>) -> Self

Add an outline around the element. See Border.
§

fn shadow(self, shadow: impl Into<Shadow>) -> Self

Add a shadow cast by the element. See Shadow.
§

fn corner_radius(self, corner_radius: impl Into<CornerRadius>) -> Self

Round the element’s corners. See CornerRadius.
§

impl TextStyleExt for Rect

§

fn get_text_style_data(&mut self) -> &mut TextStyleData

Returns a mutable reference to the element’s text style data.
§

fn text_style(self, data: TextStyleData) -> Self

Replace all of the element’s text style data at once. See TextStyleData.
§

fn color(self, color: impl Into<Color>) -> Self

Set the text color to a solid Color.
§

fn color_conic_gradient<S>(self, color: S) -> Self
where S: Into<ConicGradient>,

Paint the text with a ConicGradient.
§

fn color_linear_gradient<S>(self, color: S) -> Self
where S: Into<LinearGradient>,

Paint the text with a LinearGradient.
§

fn color_radial_gradient<S>(self, color: S) -> Self
where S: Into<RadialGradient>,

Paint the text with a RadialGradient.
§

fn color_shader(self, color: impl Into<ShaderFill>) -> Self

Paint the text with a custom shader. See ShaderFill.
§

fn text_align(self, text_align: impl Into<TextAlign>) -> Self

Set the horizontal alignment of the text. See TextAlign.
§

fn font_size(self, font_size: impl Into<FontSize>) -> Self

Set the text size in pixels. See FontSize.
§

fn font_family(self, font_family: impl Into<Cow<'static, str>>) -> Self

Add a font family to try, in order of preference.
§

fn font_slant(self, font_slant: impl Into<FontSlant>) -> Self

Set the slant (style) of the font. See FontSlant.
§

fn font_weight(self, font_weight: impl Into<FontWeight>) -> Self

Set the thickness of the font. See FontWeight.
§

fn font_width(self, font_width: impl Into<FontWidth>) -> Self

Set the horizontal width of the font. See FontWidth.
§

fn text_height(self, text_height: impl Into<TextHeightBehavior>) -> Self

Set how the leading of the first and last lines is handled. See TextHeightBehavior.
§

fn text_overflow(self, text_overflow: impl Into<TextOverflow>) -> Self

Set how text that does not fit its bounds is truncated. See TextOverflow.
§

fn text_shadow(self, text_shadow: impl Into<TextShadow>) -> Self

Add a shadow cast behind the text. See TextShadow.
§

fn text_decoration(self, text_decoration: impl Into<TextDecoration>) -> Self

Set a line drawn through, under or over the text. See TextDecoration.
§

impl WindowDragExt for Rect

§

fn window_drag(self) -> Rect

Auto Trait Implementations§

§

impl Freeze for Rect

§

impl !RefUnwindSafe for Rect

§

impl !Send for Rect

§

impl !Sync for Rect

§

impl Unpin for Rect

§

impl UnsafeUnpin for Rect

§

impl !UnwindSafe for Rect

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
§

impl<T> ContainerSizeExt for T
where T: ContainerExt,

§

fn width(self, width: impl Into<Size>) -> Self

Set the element’s width. See Size.
§

fn height(self, height: impl Into<Size>) -> Self

Set the element’s height. See Size.
§

fn expanded(self) -> Self

Expand both width and height using Size::fill().
§

impl<T> CornerRadiusExt for T
where T: StyleExt,

§

fn with_corner_radius(self, corner_radius: f32) -> T

Round all four corners to the given radius in pixels.
§

fn rounded_none(self) -> Self

Shortcut for corner_radius(0.) - removes border radius.
§

fn rounded(self) -> Self

Shortcut for corner_radius(6.) - default border radius.
§

fn rounded_sm(self) -> Self

Shortcut for corner_radius(4.) - small border radius.
§

fn rounded_md(self) -> Self

Shortcut for corner_radius(6.) - medium border radius.
§

fn rounded_lg(self) -> Self

Shortcut for corner_radius(8.) - large border radius.
§

fn rounded_xl(self) -> Self

Shortcut for corner_radius(12.) - extra large border radius.
§

fn rounded_2xl(self) -> Self

Shortcut for corner_radius(16.) - extra large border radius.
§

fn rounded_3xl(self) -> Self

Shortcut for corner_radius(24.) - extra large border radius.
§

fn rounded_4xl(self) -> Self

Shortcut for corner_radius(32.) - extra large border radius.
§

fn rounded_full(self) -> Self

Shortcut for corner_radius(99.) - fully rounded (pill shape).
§

impl<T> DebugExt for T
where T: StyleExt,

§

fn debug(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.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

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> IntoElement for T
where T: Into<Element>,

§

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, 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> 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
Source§

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

Source§

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

§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,