pub struct ScrollArea { /* private fields */ }Expand description
Add vertical and/or horizontal scrolling to a contained Ui.
By default, scroll bars only show up when needed, i.e. when the contents
is larger than the container.
This is controlled by Self::scroll_bar_visibility.
There are two flavors of scroll areas: solid and floating.
Solid scroll bars use up space, reducing the amount of space available
to the contents. Floating scroll bars float on top of the contents, covering it.
You can change the scroll style by changing the crate::style::Spacing::scroll.
§Coordinate system
- content: size of contents (generally large; that’s why we want scroll bars)
- outer: size of scroll area including scroll bar(s)
- inner: excluding scroll bar(s). The area we clip the contents to. Includes
content_margin.
If the floating scroll bars settings is turned on then inner == outer.
§Example
egui::ScrollArea::vertical().show(ui, |ui| {
// Add a lot of widgets here.
});You can scroll to an element using crate::Response::scroll_to_me, Ui::scroll_to_cursor and Ui::scroll_to_rect.
§See also
If you want to allow zooming, use crate::Scene.
Implementations§
Source§impl ScrollArea
impl ScrollArea
Sourcepub fn horizontal() -> ScrollArea
pub fn horizontal() -> ScrollArea
Create a horizontal scroll area.
Sourcepub fn vertical() -> ScrollArea
pub fn vertical() -> ScrollArea
Create a vertical scroll area.
Sourcepub fn both() -> ScrollArea
pub fn both() -> ScrollArea
Create a bi-directional (horizontal and vertical) scroll area.
Sourcepub fn neither() -> ScrollArea
pub fn neither() -> ScrollArea
Create a scroll area where both direction of scrolling is disabled. It’s unclear why you would want to do this.
Sourcepub fn new(direction_enabled: impl Into<Vec2b>) -> ScrollArea
pub fn new(direction_enabled: impl Into<Vec2b>) -> ScrollArea
Create a scroll area where you decide which axis has scrolling enabled.
For instance, ScrollArea::new([true, false]) enables horizontal scrolling.
Sourcepub fn max_width(self, max_width: f32) -> ScrollArea
pub fn max_width(self, max_width: f32) -> ScrollArea
The maximum width of the outer frame of the scroll area.
Use f32::INFINITY if you want the scroll area to expand to fit the surrounding Ui (default).
See also Self::auto_shrink.
Sourcepub fn max_height(self, max_height: f32) -> ScrollArea
pub fn max_height(self, max_height: f32) -> ScrollArea
The maximum height of the outer frame of the scroll area.
Use f32::INFINITY if you want the scroll area to expand to fit the surrounding Ui (default).
See also Self::auto_shrink.
Sourcepub fn min_scrolled_width(self, min_scrolled_width: f32) -> ScrollArea
pub fn min_scrolled_width(self, min_scrolled_width: f32) -> ScrollArea
The minimum width of a horizontal scroll area which requires scroll bars.
The ScrollArea will only become smaller than this if the content is smaller than this
(and so we don’t require scroll bars).
Default: 64.0.
Sourcepub fn min_scrolled_height(self, min_scrolled_height: f32) -> ScrollArea
pub fn min_scrolled_height(self, min_scrolled_height: f32) -> ScrollArea
The minimum height of a vertical scroll area which requires scroll bars.
The ScrollArea will only become smaller than this if the content is smaller than this
(and so we don’t require scroll bars).
Default: 64.0.
Sourcepub fn scroll_bar_visibility(
self,
scroll_bar_visibility: ScrollBarVisibility,
) -> ScrollArea
pub fn scroll_bar_visibility( self, scroll_bar_visibility: ScrollBarVisibility, ) -> ScrollArea
Set the visibility of both horizontal and vertical scroll bars.
With ScrollBarVisibility::VisibleWhenNeeded (default), the scroll bar will be visible only when needed.
Sourcepub fn scroll_bar_rect(self, scroll_bar_rect: Rect) -> ScrollArea
pub fn scroll_bar_rect(self, scroll_bar_rect: Rect) -> ScrollArea
Specify within which screen-space rectangle to show the scroll bars.
This can be used to move the scroll bars to a smaller region of the ScrollArea,
for instance if you are painting a sticky header on top of it.
Sourcepub fn id_source(self, id_salt: impl Hash) -> ScrollArea
👎Deprecated: Renamed id_salt
pub fn id_source(self, id_salt: impl Hash) -> ScrollArea
Renamed id_salt
A source for the unique Id, e.g. .id_source("second_scroll_area") or .id_source(loop_index).
Sourcepub fn id_salt(self, id_salt: impl Hash) -> ScrollArea
pub fn id_salt(self, id_salt: impl Hash) -> ScrollArea
A source for the unique Id, e.g. .id_salt("second_scroll_area") or .id_salt(loop_index).
Sourcepub fn scroll_offset(self, offset: Vec2) -> ScrollArea
pub fn scroll_offset(self, offset: Vec2) -> ScrollArea
Set the horizontal and vertical scroll offset position.
Positive offset means scrolling down/right.
See also: Self::vertical_scroll_offset, Self::horizontal_scroll_offset,
Ui::scroll_to_cursor and
Response::scroll_to_me
Sourcepub fn vertical_scroll_offset(self, offset: f32) -> ScrollArea
pub fn vertical_scroll_offset(self, offset: f32) -> ScrollArea
Set the vertical scroll offset position.
Positive offset means scrolling down.
See also: Self::scroll_offset, Ui::scroll_to_cursor and
Response::scroll_to_me
Sourcepub fn horizontal_scroll_offset(self, offset: f32) -> ScrollArea
pub fn horizontal_scroll_offset(self, offset: f32) -> ScrollArea
Set the horizontal scroll offset position.
Positive offset means scrolling right.
See also: Self::scroll_offset, Ui::scroll_to_cursor and
Response::scroll_to_me
Sourcepub fn on_hover_cursor(self, cursor: CursorIcon) -> ScrollArea
pub fn on_hover_cursor(self, cursor: CursorIcon) -> ScrollArea
Set the cursor used when the mouse pointer is hovering over the ScrollArea.
Only applies if Self::scroll_source() has set ScrollSource::drag to true.
Any changes to the mouse cursor made within the contents of the ScrollArea will
override this setting.
Sourcepub fn on_drag_cursor(self, cursor: CursorIcon) -> ScrollArea
pub fn on_drag_cursor(self, cursor: CursorIcon) -> ScrollArea
Set the cursor used when the ScrollArea is being dragged.
Only applies if Self::scroll_source() has set ScrollSource::drag to true.
Any changes to the mouse cursor made within the contents of the ScrollArea will
override this setting.
Sourcepub fn hscroll(self, hscroll: bool) -> ScrollArea
pub fn hscroll(self, hscroll: bool) -> ScrollArea
Turn on/off scrolling on the horizontal axis.
Sourcepub fn vscroll(self, vscroll: bool) -> ScrollArea
pub fn vscroll(self, vscroll: bool) -> ScrollArea
Turn on/off scrolling on the vertical axis.
Sourcepub fn scroll(self, direction_enabled: impl Into<Vec2b>) -> ScrollArea
pub fn scroll(self, direction_enabled: impl Into<Vec2b>) -> ScrollArea
Turn on/off scrolling on the horizontal/vertical axes.
You can pass in false, true, [false, true] etc.
Sourcepub fn enable_scrolling(self, enable: bool) -> ScrollArea
👎Deprecated: Use `ScrollArea::scroll_source()
pub fn enable_scrolling(self, enable: bool) -> ScrollArea
Use `ScrollArea::scroll_source()
Control the scrolling behavior.
- If
true(default), the scroll area will respond to user scrolling. - If
false, the scroll area will not respond to user scrolling.
This can be used, for example, to optionally freeze scrolling while the user
is typing text in a crate::TextEdit widget contained within the scroll area.
This controls both scrolling directions.
Sourcepub fn drag_to_scroll(self, drag_to_scroll: bool) -> ScrollArea
👎Deprecated: Use `ScrollArea::scroll_source()
pub fn drag_to_scroll(self, drag_to_scroll: bool) -> ScrollArea
Use `ScrollArea::scroll_source()
Can the user drag the scroll area to scroll?
This is useful for touch screens.
If true, the ScrollArea will sense drags.
Default: true.
Sourcepub fn scroll_source(self, scroll_source: ScrollSource) -> ScrollArea
pub fn scroll_source(self, scroll_source: ScrollSource) -> ScrollArea
What sources does the ScrollArea use for scrolling the contents.
Sourcepub fn wheel_scroll_multiplier(self, multiplier: Vec2) -> ScrollArea
pub fn wheel_scroll_multiplier(self, multiplier: Vec2) -> ScrollArea
The scroll amount caused by a mouse wheel scroll is multiplied by this amount.
Independent for each scroll direction. Defaults to Vec2{x: 1.0, y: 1.0}.
This can invert or effectively disable mouse scrolling.
Sourcepub fn auto_shrink(self, auto_shrink: impl Into<Vec2b>) -> ScrollArea
pub fn auto_shrink(self, auto_shrink: impl Into<Vec2b>) -> ScrollArea
For each axis, should the containing area shrink if the content is small?
- If
true, egui will add blank space outside the scroll area. - If
false, egui will add blank space inside the scroll area.
Default: true.
Sourcepub fn animated(self, animated: bool) -> ScrollArea
pub fn animated(self, animated: bool) -> ScrollArea
Should the scroll area animate scroll_to_* functions?
Default: true.
Sourcepub fn content_margin(self, margin: impl Into<Margin>) -> ScrollArea
pub fn content_margin(self, margin: impl Into<Margin>) -> ScrollArea
Extra margin added around the contents.
The scroll bars will be either on top of this margin, or outside of it,
depending on the value of crate::style::ScrollStyle::floating.
Sourcepub fn stick_to_right(self, stick: bool) -> ScrollArea
pub fn stick_to_right(self, stick: bool) -> ScrollArea
The scroll handle will stick to the rightmost position even while the content size changes dynamically. This can be useful to simulate text scrollers coming in from right hand side. The scroll handle remains stuck until user manually changes position. Once “unstuck” it will remain focused on whatever content viewport the user left it on. If the scroll handle is dragged all the way to the right it will again become stuck and remain there until manually pulled from the end position.
Sourcepub fn stick_to_bottom(self, stick: bool) -> ScrollArea
pub fn stick_to_bottom(self, stick: bool) -> ScrollArea
The scroll handle will stick to the bottom position even while the content size changes dynamically. This can be useful to simulate terminal UIs or log/info scrollers. The scroll handle remains stuck until user manually changes position. Once “unstuck” it will remain focused on whatever content viewport the user left it on. If the scroll handle is dragged to the bottom it will again become stuck and remain there until manually pulled from the end position.
Source§impl ScrollArea
impl ScrollArea
Sourcepub fn show<R>(
self,
ui: &mut Ui,
add_contents: impl FnOnce(&mut Ui) -> R,
) -> ScrollAreaOutput<R>
pub fn show<R>( self, ui: &mut Ui, add_contents: impl FnOnce(&mut Ui) -> R, ) -> ScrollAreaOutput<R>
Show the ScrollArea, and add the contents to the viewport.
If the inner area can be very long, consider using Self::show_rows instead.
Sourcepub fn show_rows<R>(
self,
ui: &mut Ui,
row_height_sans_spacing: f32,
total_rows: usize,
add_contents: impl FnOnce(&mut Ui, Range<usize>) -> R,
) -> ScrollAreaOutput<R>
pub fn show_rows<R>( self, ui: &mut Ui, row_height_sans_spacing: f32, total_rows: usize, add_contents: impl FnOnce(&mut Ui, Range<usize>) -> R, ) -> ScrollAreaOutput<R>
Efficiently show only the visible part of a large number of rows.
let text_style = egui::TextStyle::Body;
let row_height = ui.text_style_height(&text_style);
// let row_height = ui.spacing().interact_size.y; // if you are adding buttons instead of labels.
let total_rows = 10_000;
egui::ScrollArea::vertical().show_rows(ui, row_height, total_rows, |ui, row_range| {
for row in row_range {
let text = format!("Row {}/{}", row + 1, total_rows);
ui.label(text);
}
});Sourcepub fn show_viewport<R>(
self,
ui: &mut Ui,
add_contents: impl FnOnce(&mut Ui, Rect) -> R,
) -> ScrollAreaOutput<R>
pub fn show_viewport<R>( self, ui: &mut Ui, add_contents: impl FnOnce(&mut Ui, Rect) -> R, ) -> ScrollAreaOutput<R>
This can be used to only paint the visible part of the contents.
add_contents is given the viewport rectangle, which is the relative view of the content.
So if the passed rect has min = zero, then show the top left content (the user has not scrolled).
Trait Implementations§
Source§impl Clone for ScrollArea
impl Clone for ScrollArea
Source§fn clone(&self) -> ScrollArea
fn clone(&self) -> ScrollArea
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for ScrollArea
impl RefUnwindSafe for ScrollArea
impl Send for ScrollArea
impl Sync for ScrollArea
impl Unpin for ScrollArea
impl UnsafeUnpin for ScrollArea
impl UnwindSafe for ScrollArea
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> CheckedAs for T
impl<T> CheckedAs for T
Source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
Source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&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> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::RequestSource§impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
Source§fn lossless_try_into(self) -> Option<Dst>
fn lossless_try_into(self) -> Option<Dst>
Source§impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
Source§fn lossy_into(self) -> Dst
fn lossy_into(self) -> Dst
Source§impl<T> OverflowingAs for T
impl<T> OverflowingAs for T
Source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
Source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
Source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
Source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> SaturatingAs for T
impl<T> SaturatingAs for T
Source§fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
Source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
Source§fn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
Source§impl<T> StrictAs for T
impl<T> StrictAs for T
Source§fn strict_as<Dst>(self) -> Dstwhere
T: StrictCast<Dst>,
fn strict_as<Dst>(self) -> Dstwhere
T: StrictCast<Dst>,
Source§impl<Src, Dst> StrictCastFrom<Src> for Dstwhere
Src: StrictCast<Dst>,
impl<Src, Dst> StrictCastFrom<Src> for Dstwhere
Src: StrictCast<Dst>,
Source§fn strict_cast_from(src: Src) -> Dst
fn strict_cast_from(src: Src) -> Dst
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.