pub struct App {Show 31 fields
pub tasks: Vec<Task>,
pub categories: Vec<Category>,
pub labels: Vec<Label>,
pub settings: Settings,
pub focus: Focus,
pub mode: Mode,
pub cat_index: usize,
pub task_index: usize,
pub cat_state: ListState,
pub task_state: TableState,
pub view: Vec<usize>,
pub list_rows: Vec<TaskListRow>,
pub searching: bool,
pub search_query: String,
pub input: TextInput,
pub slash_index: usize,
pub form: Option<TaskForm>,
pub category_form: Option<CategoryForm>,
pub label_index: usize,
pub label_editor: Option<LabelEditor>,
pub label_error: Option<String>,
pub settings_index: usize,
pub help_scroll: usize,
pub message: Option<Message>,
pub pending: Option<(Confirm, Instant)>,
pub should_quit: bool,
pub areas: Areas,
pub images: ImageStore,
pub dirty: bool,
pub data_gen: u64,
pub preview_form: Option<TaskForm>,
/* private fields */
}Fields§
§tasks: Vec<Task>§categories: Vec<Category>§labels: Vec<Label>§settings: Settings§focus: Focus§mode: Mode§cat_index: usizeIndex into categories.
task_index: usizeIndex into view.
cat_state: ListStateScroll position of the two panels. Selection is driven by the two indices above; ratatui keeps the offsets in these.
task_state: TableState§view: Vec<usize>Indices into tasks, in display order.
list_rows: Vec<TaskListRow>Table rows including category separators. Parallel to what is drawn;
selection still uses task_index into view.
searching: bool§search_query: String§input: TextInput§slash_index: usizeSelected row in the / palette dropdown.
form: Option<TaskForm>The open task dialog, if any.
category_form: Option<CategoryForm>The open category dialog, if any.
label_index: usizeSelected row in the global label manager.
label_editor: Option<LabelEditor>Inline create/rename editor with an explicit name/color focus.
label_error: Option<String>§settings_index: usize§help_scroll: usizeFirst help content row currently visible.
message: Option<Message>§pending: Option<(Confirm, Instant)>Pending entity-bound destructive action and its deadline.
should_quit: bool§areas: Areas§images: ImageStoreDescription/preview image store.
dirty: boolNeeds a redraw.
data_gen: u64Incremented on task mutation (invalidates preview cache).
preview_form: Option<TaskForm>Cached description editor for the read-only preview pane.
Implementations§
Source§impl App
impl App
pub fn new(version: &str) -> Result<Self, StoreError>
pub fn with_store(version: &str, store: Store) -> Result<Self, StoreError>
pub fn data_dir(&self) -> &Path
Sourcepub fn poll_external_changes(&mut self) -> bool
pub fn poll_external_changes(&mut self) -> bool
Refresh after another process commits. Dialogs deliberately defer the visual refresh: their entity snapshot is checked transactionally when the user saves, so typed work is never replaced under the cursor.
pub fn request_quit(&mut self)
pub fn mark_dirty(&mut self)
pub fn invalidate_preview(&mut self)
Sourcepub fn ensure_preview(&mut self)
pub fn ensure_preview(&mut self)
Rebuild Self::preview_form if the selection or data_gen changed.
pub fn theme(&self) -> Theme
pub fn current_category_id(&self) -> &str
pub fn is_all_view(&self) -> bool
pub fn category_name(&self, id: &str) -> Option<&str>
pub fn label_name(&self, id: &str) -> Option<&str>
Sourcepub fn rebuild_view(&mut self)
pub fn rebuild_view(&mut self)
Recompute which tasks are shown and in what order.
Sort applies inside each category. All Tasks (and search) stack those already-sorted groups in sidebar order; a single category is just one group.
Sourcepub fn selected_visual_row(&self) -> Option<usize>
pub fn selected_visual_row(&self) -> Option<usize>
Visual table row for the selected task, if any.
Sourcepub fn task_at_visual_row(&self, row: usize) -> Option<usize>
pub fn task_at_visual_row(&self, row: usize) -> Option<usize>
view index under a visual table row, or None for a separator.
pub fn task_count(&self) -> usize
pub fn visible_task(&self, pos: usize) -> Option<&Task>
pub fn selected_task(&self) -> Option<&Task>
pub fn done_count(&self) -> usize
pub fn move_task_selection(&mut self, delta: isize)
pub fn select_task(&mut self, pos: usize)
pub fn select_first_task(&mut self)
pub fn select_last_task(&mut self)
Sourcepub fn typeahead_jump(&mut self, c: char)
pub fn typeahead_jump(&mut self, c: char)
Type-to-jump: append c and select the best fuzzy match (list unchanged).
pub fn move_category_selection(&mut self, delta: isize)
↑/↓ stay inside the focused panel. Cross-panel moves use ←/→ or Tab.
pub fn select_category(&mut self, index: usize)
pub fn select_last_category(&mut self)
pub fn toggle_focus(&mut self)
Sourcepub fn set_focus(&mut self, focus: Focus) -> bool
pub fn set_focus(&mut self, focus: Focus) -> bool
Move keyboard focus. A locked search owns the task list until Esc.
pub fn cancel_pending(&mut self)
pub fn toggle_done(&mut self, pos: usize)
Sourcepub fn cycle_importance(&mut self, pos: usize)
pub fn cycle_importance(&mut self, pos: usize)
Steps a task’s importance up, wrapping back to none after three.
Sourcepub fn move_task_order(&mut self, delta: isize) -> bool
pub fn move_task_order(&mut self, delta: isize) -> bool
Reorder the selected task inside its category when using manual sort. In All Tasks, crossing a category section boundary is intentionally blocked; changing category belongs in the task form.
Sourcepub fn open_new_task(&mut self)
pub fn open_new_task(&mut self)
Opens the dialog for a new task, unless the list is full.
Sourcepub fn open_edit_task(&mut self)
pub fn open_edit_task(&mut self)
Opens the dialog on the selected task.
pub fn close_form(&mut self)
Sourcepub fn submit_form(&mut self)
pub fn submit_form(&mut self)
Validates the open form and writes it back to the task list.
Sourcepub fn create_task(&mut self, draft: &TaskDraft) -> Option<String>
pub fn create_task(&mut self, draft: &TaskDraft) -> Option<String>
Creates a task in the chosen category and selects it. A [date]
left in the title is moved into due when due is empty.
pub fn update_task(&mut self, id: &str, draft: &TaskDraft) -> bool
pub fn delete_task(&mut self, pos: usize)
pub fn delete_task_by_id(&mut self, id: &str) -> bool
Sourcepub fn purge(&mut self) -> usize
pub fn purge(&mut self) -> usize
Permanently remove done tasks. In All Tasks → every done task; in a category → only that category’s done tasks. Nothing is archived.
Sourcepub fn purge_candidate_ids(&self) -> Vec<String>
pub fn purge_candidate_ids(&self) -> Vec<String>
Completed task ids in the current purge scope, captured for confirmation.
Sourcepub fn purge_ids(&mut self, ids: &[String]) -> usize
pub fn purge_ids(&mut self, ids: &[String]) -> usize
Purge exactly the confirmed ids; newly completed tasks are never swept in.
Sourcepub fn toggle_hide_done(&mut self) -> Option<bool>
pub fn toggle_hide_done(&mut self) -> Option<bool>
/done — show or hide completed tasks in the list (still on disk).
Sourcepub fn open_new_category(&mut self)
pub fn open_new_category(&mut self)
Opens the dialog for a new category.
Sourcepub fn open_edit_category(&mut self)
pub fn open_edit_category(&mut self)
Opens the dialog on the selected category. “All Tasks” is not a real category and cannot be edited.
pub fn close_category_form(&mut self)
pub fn submit_category_form(&mut self)
Sourcepub fn delete_category(&mut self)
pub fn delete_category(&mut self)
Deletes the category while preserving its tasks as Uncategorized. Category ids are stable UUIDs — no renumbering.
pub fn delete_category_by_id(&mut self, id: &str) -> bool
pub fn open_labels(&mut self)
pub fn open_labels_from_form(&mut self)
pub fn close_labels(&mut self)
pub fn move_label_selection(&mut self, delta: isize)
pub fn begin_new_label(&mut self)
pub fn begin_rename_label(&mut self)
pub fn cancel_label_editor(&mut self)
pub fn submit_label_editor(&mut self)
pub fn selected_label(&self) -> Option<&Label>
pub fn delete_label_by_id(&mut self, id: &str) -> bool
pub fn create_label(&mut self, name: &str) -> Result<String, String>
pub fn set_task_labels( &mut self, task_id: &str, label_ids: Vec<String>, ) -> Result<(), String>
Sourcepub fn move_category_order(&mut self, delta: isize) -> bool
pub fn move_category_order(&mut self, delta: isize) -> bool
Reorder real categories while keeping the virtual All Tasks row fixed.
Sourcepub fn category_progress(&self, id: &str) -> (usize, usize)
pub fn category_progress(&self, id: &str) -> (usize, usize)
(done, total) for a category. All Tasks counts every task.
Sourcepub fn open_slash(&mut self)
pub fn open_slash(&mut self)
Open the / command palette.
Sourcepub fn start_search(&mut self, query: &str)
pub fn start_search(&mut self, query: &str)
Enter live search, optionally with an initial query.
pub fn update_search(&mut self)
Sourcepub fn resume_search(&mut self)
pub fn resume_search(&mut self)
Return keyboard input to an already locked search without rebuilding the view or moving its selected task.
pub fn end_search(&mut self)
pub fn clamp_slash_index(&mut self)
pub fn info(&mut self, text: impl Into<String>)
pub fn error(&mut self, text: impl Into<String>)
Sourcepub fn expire_message(&mut self) -> bool
pub fn expire_message(&mut self) -> bool
Drop expired status messages. Returns true when the UI should redraw.
Sourcepub fn ask_confirm(&mut self, confirm: Confirm, prompt: impl Into<String>)
pub fn ask_confirm(&mut self, confirm: Confirm, prompt: impl Into<String>)
Arm a destructive action for its explicit confirmation step, and say so.
Sourcepub fn awaiting(&self, confirm: Confirm) -> bool
pub fn awaiting(&self, confirm: Confirm) -> bool
Whether confirm is armed and still inside its window.
pub fn pending_confirmation(&self) -> Option<&Confirm>
Sourcepub fn cycle_setting(&mut self, index: usize, delta: isize)
pub fn cycle_setting(&mut self, index: usize, delta: isize)
Step a settings row by delta (+1 forward, −1 back), wrapping.
pub fn setting_value(&self, index: usize) -> String
Auto Trait Implementations§
impl !Freeze for App
impl !RefUnwindSafe for App
impl !Sync for App
impl !UnwindSafe for App
impl Send for App
impl Unpin for App
impl UnsafeUnpin for App
Blanket Implementations§
Source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
replaced by palette::chromatic_adaptation::AdaptIntoUnclamped
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
replaced by palette::chromatic_adaptation::AdaptIntoUnclamped
Source§impl<T, C> AdaptIntoUnclamped<T> for Cwhere
T: AdaptFromUnclamped<C>,
impl<T, C> AdaptIntoUnclamped<T> for Cwhere
T: AdaptFromUnclamped<C>,
Source§type Scalar = <T as AdaptFromUnclamped<C>>::Scalar
type Scalar = <T as AdaptFromUnclamped<C>>::Scalar
Source§fn adapt_into_unclamped_with<M>(self) -> Twhere
M: LmsToXyz<<C as AdaptIntoUnclamped<T>>::Scalar> + XyzToLms<<C as AdaptIntoUnclamped<T>>::Scalar>,
fn adapt_into_unclamped_with<M>(self) -> Twhere
M: LmsToXyz<<C as AdaptIntoUnclamped<T>>::Scalar> + XyzToLms<<C as AdaptIntoUnclamped<T>>::Scalar>,
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
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
Source§impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
angle.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
other into Self, while performing the appropriate scaling,
rounding and clamping.Source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
T.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
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> ⓘ
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> ⓘ
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 moreSource§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
self into T, while performing the appropriate scaling,
rounding and clamping.Source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
try_into_colors fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
OutOfBounds error is returned which contains
the unclamped color. Read more