pub struct GutterOpts<G> {
pub total_lines: usize,
pub viewport_height: u32,
pub gutter_fn: G,
}Expand description
Options for Context::scrollable_with_gutter.
Carries the bookkeeping arguments together so call sites become readable:
// 90% case — automatic line numbers.
ui.scrollable_with_gutter(
&mut scroll,
GutterOpts::line_numbers(120, 24),
|ui, line| { ui.text(format!("line {line}")); },
);
// Custom gutter labels.
ui.scrollable_with_gutter(
&mut scroll,
GutterOpts::new(120, 24, |i| if i == 7 { "!".to_string() } else { String::new() }),
|ui, line| { ui.text(format!("line {line}")); },
);Fields§
§total_lines: usizeTotal number of content lines.
viewport_height: u32Viewport height in rows.
gutter_fn: GClosure that returns the gutter label for a given absolute line index.
Implementations§
Source§impl<G> GutterOpts<G>
impl<G> GutterOpts<G>
Source§impl GutterOpts<fn(usize) -> String>
impl GutterOpts<fn(usize) -> String>
Sourcepub fn line_numbers(total_lines: usize, viewport_height: u32) -> Self
pub fn line_numbers(total_lines: usize, viewport_height: u32) -> Self
Shortcut for the 90% case: render 1-based line numbers in the gutter.
Equivalent to GutterOpts::new(total, viewport, |i| format!("{}", i + 1))
but uses a function pointer to avoid forcing the caller to name the
closure type.
Auto Trait Implementations§
impl<G> Freeze for GutterOpts<G>where
G: Freeze,
impl<G> RefUnwindSafe for GutterOpts<G>where
G: RefUnwindSafe,
impl<G> Send for GutterOpts<G>where
G: Send,
impl<G> Sync for GutterOpts<G>where
G: Sync,
impl<G> Unpin for GutterOpts<G>where
G: Unpin,
impl<G> UnsafeUnpin for GutterOpts<G>where
G: UnsafeUnpin,
impl<G> UnwindSafe for GutterOpts<G>where
G: UnwindSafe,
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
Mutably borrows from an owned value. Read more