reqwest_cross

Enum DataState

Source
pub enum DataState<T, E: ErrorBounds = Error> {
    None,
    AwaitingResponse(Awaiting<T, E>),
    Present(T),
    Failed(DataStateError<E>),
}
Expand description

Used to store a type that is not always available and we need to keep polling it to get it ready

Variants§

§

None

Represent no data present and not pending

§

AwaitingResponse(Awaiting<T, E>)

Represents data has been requested and awaiting it being available

§

Present(T)

Represents data that is available for use

§

Failed(DataStateError<E>)

Represents an error that Occurred

Implementations§

Source§

impl<T, E: ErrorBounds> DataState<T, E>

Source

pub fn egui_get<F>( &mut self, ui: &mut Ui, retry_msg: Option<&str>, fetch_fn: F, ) -> CanMakeProgress
where F: FnOnce() -> Awaiting<T, E>,

Attempts to load the data and displays appropriate UI if applicable. Some branches lead to no UI being displayed, in particular when the data or an error is received (On the expectation it will show next frame). When in an error state the error messages will show as applicable. If called an already has data present this function does nothing and returns [CanMakeProgress::UnableToMakeProgress]

If a retry_msg is provided then it overrides the default

Note see Self::get for more info.

Source

pub fn get<F>(&mut self, fetch_fn: F) -> CanMakeProgress
where F: FnOnce() -> Awaiting<T, E>,

Attempts to load the data and returns if it is able to make progress.

Note: F needs to return AwaitingType<T> and not T because it needs to be able to be pending if T is not ready.

Source

pub fn await_data(rx: &mut Awaiting<T, E>) -> Option<Self>

Checks to see if the data is ready and if it is returns a new Self otherwise None.

Source

pub fn is_present(&self) -> bool

Returns true if the data state is Present.

Source

pub fn is_none(&self) -> bool

Returns true if the data state is None.

Trait Implementations§

Source§

impl<T, E: ErrorBounds> AsMut<DataState<T, E>> for DataState<T, E>

Source§

fn as_mut(&mut self) -> &mut DataState<T, E>

Converts this type into a mutable reference of the (usually inferred) input type.
Source§

impl<T, E: ErrorBounds> AsRef<DataState<T, E>> for DataState<T, E>

Source§

fn as_ref(&self) -> &DataState<T, E>

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl<T: Debug, E: Debug + ErrorBounds> Debug for DataState<T, E>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<T, E: ErrorBounds> Default for DataState<T, E>

Source§

fn default() -> DataState<T, E>

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<T, E> Freeze for DataState<T, E>
where T: Freeze, E: Freeze,

§

impl<T, E = Error> !RefUnwindSafe for DataState<T, E>

§

impl<T, E> Send for DataState<T, E>
where T: Send,

§

impl<T, E> Sync for DataState<T, E>
where T: Sync + Send,

§

impl<T, E> Unpin for DataState<T, E>
where T: Unpin, E: Unpin,

§

impl<T, E = Error> !UnwindSafe for DataState<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> 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
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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T

Source§

impl<T> ValidReturn for T
where T: Send + 'static,