Skip to main content

AsyncSearch

Struct AsyncSearch 

Source
pub struct AsyncSearch<'a, T, E> { /* private fields */ }
Expand description

A text edit widget that debounces input and automatically triggers an asynchronous search.

AsyncSearch listens to changes in a query string and waits for a specified debounce threshold before launching the background task. It shows a spinner while the search is in flight and displays results in a floating dropdown portal.

Implementations§

Source§

impl<'a, T, E> AsyncSearch<'a, T, E>

Source

pub fn new(bind: &'a mut Bind<Vec<T>, E>, query: &'a mut String) -> Self

Creates a new AsyncSearch bound to the provided query string and results bind.

Source

pub const fn debounce_secs(self, secs: f64) -> Self

Sets the debounce timer threshold (in seconds) before making an async search call.

Source

pub fn hint_text(self, text: impl Into<String>) -> Self

Sets the placeholder text for the search box.

Source

pub const fn retain_previous_results(self, retain: bool) -> Self

If set to true (default), the widget will display the results of the previous successful search while the user is typing the next query and while the next query is pending.

Source

pub const fn wrap_results(self, wrap: bool) -> Self

Determines if the returned text inside the result rows should wrap or truncate. Default is false (truncate).

Source

pub const fn width(self, width: f32) -> Self

Explicitly forces the width of the input box.

Source

pub const fn popup_width(self, width: f32) -> Self

Sets a fixed width for the search results popup. If not provided, it will automatically match the width of the text input.

Source

pub fn show<Fut>( self, ui: &mut Ui, fetch: impl FnOnce(String) -> Fut, ) -> (Response, Option<T>)
where Fut: Future<Output = Result<Vec<T>, E>> + MaybeSend + 'static, T: MaybeSend + Clone + Display + 'static, E: MaybeSend + 'static,

Renders the search box and processes background fetch logic.

Returns the text edit response, and an Option<T> containing the selected item if the user just clicked one.

Auto Trait Implementations§

§

impl<'a, T, E> Freeze for AsyncSearch<'a, T, E>

§

impl<'a, T, E> !RefUnwindSafe for AsyncSearch<'a, T, E>

§

impl<'a, T, E> Send for AsyncSearch<'a, T, E>
where E: Send, T: Send,

§

impl<'a, T, E> Sync for AsyncSearch<'a, T, E>
where E: Sync + Send, T: Sync + Send,

§

impl<'a, T, E> Unpin for AsyncSearch<'a, T, E>

§

impl<'a, T, E> UnsafeUnpin for AsyncSearch<'a, T, E>

§

impl<'a, T, E> !UnwindSafe for AsyncSearch<'a, T, E>

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

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

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

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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

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

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

Performs the conversion.
Source§

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

Source§

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

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

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

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> MaybeSend for T
where T: Send,