use masonry::widgets;
use crate::core::{MessageContext, Mut, ViewMarker};
use crate::{MessageResult, Pod, View, ViewCtx};
pub fn spinner() -> Spinner {
Spinner
}
#[must_use = "View values do nothing unless provided to Xilem."]
pub struct Spinner;
impl ViewMarker for Spinner {}
impl<State, Action> View<State, Action, ViewCtx> for Spinner {
type Element = Pod<widgets::Spinner>;
type ViewState = ();
fn build(&self, ctx: &mut ViewCtx, _: &mut State) -> (Self::Element, Self::ViewState) {
(ctx.create_pod(widgets::Spinner::new()), ())
}
fn rebuild(
&self,
_: &Self,
(): &mut Self::ViewState,
_: &mut ViewCtx,
_: Mut<'_, Self::Element>,
_: &mut State,
) {
}
fn teardown(&self, (): &mut Self::ViewState, _: &mut ViewCtx, _: Mut<'_, Self::Element>) {}
fn message(
&self,
(): &mut Self::ViewState,
message: &mut MessageContext,
_element: Mut<'_, Self::Element>,
_: &mut State,
) -> MessageResult<Action> {
tracing::error!(
?message,
"Message arrived in Spinner::message, but Spinner doesn't consume any messages, this is a bug"
);
MessageResult::Stale
}
}