pub struct App {
pub system: SonosSystem,
pub navigation: Navigation,
pub should_quit: bool,
pub dirty: bool,
pub config: Config,
pub theme: Theme,
pub status_message: Option<String>,
pub terminal_width: u16,
pub picker: RefCell<Option<Picker>>,
pub image_loader: ImageLoader,
}Expand description
Top-level TUI state. Owns the SDK handle and all UI state.
Screens read from &App; event handlers write to &mut App.
Fields§
§system: SonosSystem§should_quit: bool§dirty: bool§config: Config§theme: Theme§status_message: Option<String>Inline status message (e.g. errors from speaker actions). Cleared on next key press.
terminal_width: u16Terminal width cached from last render/resize, used for grid navigation.
picker: RefCell<Option<Picker>>Terminal image protocol picker, detected before entering raw mode.
None when album art is disabled or terminal detection failed.
RefCell because new_resize_protocol() requires &mut Picker.
image_loader: ImageLoaderBackground image fetcher and cache for album art.
Implementations§
Auto Trait Implementations§
impl !Freeze for App
impl !RefUnwindSafe for App
impl Send for App
impl !Sync for App
impl Unpin for App
impl UnsafeUnpin for App
impl !UnwindSafe for App
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
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>
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 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>
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